Commit 375ba106 by mReturn

工单sop改造

parent 3b2f9716
Showing with 1089 additions and 227 deletions
...@@ -19,6 +19,11 @@ ...@@ -19,6 +19,11 @@
<activity <activity
android:name="com.dayu.base.ui.activity.ImgGalleryActivty" android:name="com.dayu.base.ui.activity.ImgGalleryActivty"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name="com.dayu.base.ui.activity.VideoPreviewActivty"
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
/>
<activity android:name="com.dayu.base.ui.activity.CameraActivity" /> <activity android:name="com.dayu.base.ui.activity.CameraActivity" />
</application> </application>
......
...@@ -54,5 +54,12 @@ public class BaseApiFactory { ...@@ -54,5 +54,12 @@ public class BaseApiFactory {
return part; return part;
} }
public static MultipartBody.Part packPhoto(String imageUrl) {
File file = new File(imageUrl);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData("fileUpload", file.getName(), requestFile);
return part;
}
} }
...@@ -21,7 +21,6 @@ import com.cjt2325.cameralibrary.util.DeviceUtil; ...@@ -21,7 +21,6 @@ import com.cjt2325.cameralibrary.util.DeviceUtil;
import com.cjt2325.cameralibrary.util.FileUtil; import com.cjt2325.cameralibrary.util.FileUtil;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.utils.ToastUtils;
import java.io.File; import java.io.File;
...@@ -42,11 +41,16 @@ public class CameraActivity extends AppCompatActivity { ...@@ -42,11 +41,16 @@ public class CameraActivity extends AppCompatActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_camera); if (getIntent().hasExtra(Constants.IS_SOP_VIDEO)){
setContentView(R.layout.activity_camera_sop);
}else {
setContentView(R.layout.activity_camera);
}
jCameraView = (JCameraView) findViewById(R.id.jcameraview); jCameraView = (JCameraView) findViewById(R.id.jcameraview);
//设置视频保存路径 //设置视频保存路径
jCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath() + File.separator + VIDEO_PATH); jCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath() + File.separator + VIDEO_PATH);
jCameraView.setMediaQuality(JCameraView.MEDIA_QUALITY_HIGH); jCameraView.setMediaQuality(JCameraView.MEDIA_QUALITY_HIGH);
if (getIntent().hasExtra(Constants.ONLY_VIDEO)) { if (getIntent().hasExtra(Constants.ONLY_VIDEO)) {
jCameraView.setTip(getResources().getString(R.string.moment_take_video)); jCameraView.setTip(getResources().getString(R.string.moment_take_video));
jCameraView.setFeatures(jCameraView.BUTTON_STATE_ONLY_RECORDER); jCameraView.setFeatures(jCameraView.BUTTON_STATE_ONLY_RECORDER);
......
package com.dayu.base.ui.activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.dayu.baselibrary.R;
import com.dayu.baselibrary.databinding.AcitivityPreviewBinding;
import com.dayu.common.Constants;
import com.dayu.utils.GlideImageLoader;
import java.util.ArrayList;
import cn.jzvd.JzvdStd;
/**
* 视频预览页
*/
public class VideoPreviewActivty extends DataBindingActivity<AcitivityPreviewBinding> {
private MyPageAdapter adapter;
private Context mContext;
public ArrayList<String> mInfos = new ArrayList<>();
@Override
public int getLayoutId() {
return R.layout.acitivity_preview;
}
@Override
public void initView() {
mContext = this;
mInfos = getIntent().getStringArrayListExtra(Constants.BUNDLE_KEY_ID);
adapter = new MyPageAdapter(mInfos);
mBind.vpPreview.setAdapter(adapter);
mBind.vpPreview.setCurrentItem(getIntent().getIntExtra(Constants.BUNDLE_KEY_ID, 0));
mBind.titileBack.setOnClickListener(o -> finish());
}
@Override
public void onPause() {
super.onPause();
JzvdStd.goOnPlayOnPause();
}
@Override
public void onResume() {
super.onResume();
JzvdStd.goOnPlayOnResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
JzvdStd.releaseAllVideos();
}
class MyPageAdapter extends PagerAdapter {
private ArrayList<String> listViews;
public MyPageAdapter(ArrayList<String> listViews) {
this.listViews = listViews;
}
public int getCount() {
return listViews.size();
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
JzvdStd jzvdStd = new JzvdStd(mContext);
GlideImageLoader.load(mContext, jzvdStd.thumbImageView,listViews.get(position),-1);
jzvdStd.setUp(listViews.get(position),"");
container.addView(jzvdStd);
return jzvdStd;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
}
...@@ -11,7 +11,8 @@ import android.view.ViewGroup; ...@@ -11,7 +11,8 @@ import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import com.dayu.base.ui.activity.PreviewActivty; import com.dayu.base.ui.activity.ImgGalleryActivty;
import com.dayu.base.ui.activity.VideoPreviewActivty;
import com.dayu.baselibrary.R; import com.dayu.baselibrary.R;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.utils.GlideImageLoader; import com.dayu.utils.GlideImageLoader;
...@@ -35,12 +36,19 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -35,12 +36,19 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
private int videoLength = 30; private int videoLength = 30;
private int requestCode = PictureConfig.CHOOSE_REQUEST; private int requestCode = PictureConfig.CHOOSE_REQUEST;
private OnItemClickListener<MediaChooseAdapter.Holder, Integer> listener; private OnItemClickListener<MediaChooseAdapter.Holder, Integer> listener;
private boolean addEmpty;
public MediaChooseAdapter( Activity context,ArrayList<String> list) { AdapterListener adapterListener;
public void setAdapterListener(AdapterListener adapterListener) {
this.adapterListener = adapterListener;
}
public MediaChooseAdapter(Activity context, ArrayList<String> list) {
mIvSize = (UtilsScreen.getScreenWidth(context) - UtilsScreen.dip2px(context, 20)) / 5; mIvSize = (UtilsScreen.getScreenWidth(context) - UtilsScreen.dip2px(context, 20)) / 5;
this.context = context; this.context = context;
this.list = list; this.list = list;
if (list.size()<maxCount) if (list.size() < maxCount && !list.contains("add"))
list.add("add"); list.add("add");
} }
...@@ -50,7 +58,18 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -50,7 +58,18 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
this.list = list; this.list = list;
this.maxCount = maxCount; this.maxCount = maxCount;
this.mimeType = mimeType; this.mimeType = mimeType;
if (list.size()<maxCount) if (list.size() < maxCount && !list.contains("add"))
list.add("add");
}
public MediaChooseAdapter(Activity context, ArrayList<String> list, int maxCount, int mimeType, boolean addEmpty) {
mIvSize = (UtilsScreen.getScreenWidth(context) - UtilsScreen.dip2px(context, 20)) / 5;
this.context = context;
this.list = list;
this.maxCount = maxCount;
this.mimeType = mimeType;
this.addEmpty = addEmpty;
if (list.size() < maxCount && !list.contains("add"))
list.add("add"); list.add("add");
} }
...@@ -66,15 +85,24 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -66,15 +85,24 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
this.requestCode = requestCode; this.requestCode = requestCode;
} }
public void setVideoLength(int videoLength) {
this.videoLength = videoLength;
}
public void setData(ArrayList<String> list) { public void setData(ArrayList<String> list) {
this.list = list; this.list = list;
if (list.size()<maxCount) if (list.size() < maxCount && !list.contains("add"))
list.add("add"); list.add("add");
notifyDataSetChanged(); notifyDataSetChanged();
} }
public void setDataNoChange(ArrayList<String> list) {
this.list = list;
}
public ArrayList<String> getData() { public ArrayList<String> getData() {
return this.list; ArrayList<String> results = new ArrayList<>(list);
results.remove("add");
return results;
} }
...@@ -90,9 +118,20 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -90,9 +118,20 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
@Override @Override
public void onBindViewHolder(@NonNull Holder holder, int position) { public void onBindViewHolder(@NonNull Holder holder, int position) {
if (list.get(position).equals("add")) { if (list.get(position).equals("add")) {
holder.picture.setImageResource(R.drawable.icon_submit_photo); if (addEmpty) {
holder.picture.setImageResource(R.drawable.ic_add_img);
} else {
holder.picture.setImageResource(R.drawable.icon_submit_photo);
}
holder.delete.setVisibility(View.GONE); holder.delete.setVisibility(View.GONE);
holder.picture.setOnClickListener(v -> showPicDialog()); holder.picture.setOnClickListener(v ->{
if (list.size() == 1 && adapterListener != null){
adapterListener.onFirstAddClick();
}else {
showPicDialog();
}
});
} else { } else {
GlideImageLoader.load(context, list.get(position), holder.picture); GlideImageLoader.load(context, list.get(position), holder.picture);
holder.delete.setVisibility(View.VISIBLE); holder.delete.setVisibility(View.VISIBLE);
...@@ -101,7 +140,7 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -101,7 +140,7 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
ArrayList temp = new ArrayList(); ArrayList temp = new ArrayList();
temp.addAll(list); temp.addAll(list);
temp.remove("add"); temp.remove("add");
dumpPic(temp); dumpPic(temp,position);
}); });
} }
} }
...@@ -139,7 +178,7 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -139,7 +178,7 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
public void showPicDialog() { public void showPicDialog() {
int size; int size;
size = maxCount+1 - list.size(); size = maxCount + 1 - list.size();
PictureSelectionModel selector = PictureSelector.create(context) PictureSelectionModel selector = PictureSelector.create(context)
.openGallery(mimeType)//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo() .openGallery(mimeType)//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.maxSelectNum(size)// 最大图片选择数量 int .maxSelectNum(size)// 最大图片选择数量 int
...@@ -173,10 +212,17 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter. ...@@ -173,10 +212,17 @@ public class MediaChooseAdapter extends RecyclerView.Adapter<MediaChooseAdapter.
return path; return path;
} }
private void dumpPic(ArrayList<String> list) { private void dumpPic(ArrayList<String> list, int position) {
Intent intent = new Intent(context, PreviewActivty.class); if (mimeType == PictureMimeType.ofVideo()){
intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list); Intent intent = new Intent(context, VideoPreviewActivty.class);
int DELETECODE = 0; intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list);
context.startActivityForResult(intent, DELETECODE); context.startActivity(intent);
}else {
ImgGalleryActivty.launch(context,list.get(position));
}
}
public interface AdapterListener {
void onFirstAddClick();
} }
} }
...@@ -35,6 +35,7 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold ...@@ -35,6 +35,7 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
private Activity context; private Activity context;
private ArrayList<String> list; private ArrayList<String> list;
private OnItemClickListener<PhotoViewAdapter.Holder, Integer> listener; private OnItemClickListener<PhotoViewAdapter.Holder, Integer> listener;
private boolean addEmpty; //空白添加图片
private boolean canDelete = true; //是否可以删除 private boolean canDelete = true; //是否可以删除
...@@ -47,6 +48,12 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold ...@@ -47,6 +48,12 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
this.context = context; this.context = context;
this.list = list; this.list = list;
} }
public PhotoViewAdapter(ArrayList<String> list, Activity context,boolean addEmpty) {
mIvSize = (UtilsScreen.getScreenWidth(context) - UtilsScreen.dip2px(context, 20)) / 5;
this.context = context;
this.list = list;
this.addEmpty = addEmpty;
}
public void setData(ArrayList<String> list) { public void setData(ArrayList<String> list) {
this.list = list; this.list = list;
...@@ -65,7 +72,11 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold ...@@ -65,7 +72,11 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
@Override @Override
public void onBindViewHolder(@NonNull Holder holder, int position) { public void onBindViewHolder(@NonNull Holder holder, int position) {
if (list.get(position).equals("add")) { if (list.get(position).equals("add")) {
holder.picture.setImageResource(R.drawable.icon_submit_photo); if (addEmpty){
holder.picture.setImageResource(R.drawable.ic_add_img);
}else {
holder.picture.setImageResource(R.drawable.icon_submit_photo);
}
holder.delete.setVisibility(View.GONE); holder.delete.setVisibility(View.GONE);
holder.picture.setOnClickListener(v -> showPicDialog()); holder.picture.setOnClickListener(v -> showPicDialog());
} else { } else {
......
...@@ -42,18 +42,18 @@ public class Constants { ...@@ -42,18 +42,18 @@ public class Constants {
/** /**
* dev环境配置. * dev环境配置.
*/ */
// public static String ENVIROMENT = "debug"; public static String ENVIROMENT = "debug";
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL; public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static String BASE_URL = "http://47.94.101.239:3112"; public static String BASE_URL = "http://47.94.101.239:3112";
// public static String WEB_SOP = "http://47.94.101.239:9004/#/sop"; public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult"; public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop"; public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
// public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail"; public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
// public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail"; public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"; public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video"; public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
// public static final boolean IS_DEBUG = true; public static final boolean IS_DEBUG = true;
// public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live) public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
/** /**
...@@ -77,18 +77,18 @@ public class Constants { ...@@ -77,18 +77,18 @@ public class Constants {
/** /**
* 正式环境. * 正式环境.
*/ */
public static String ENVIROMENT = "release"; // public static String ENVIROMENT = "release";
public static int LOG_LEVEL = LogUtils.LEVEL_OFF; // public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
public static String BASE_URL = "https://mobile.kf.ai"; // public static String BASE_URL = "https://mobile.kf.ai";
public static String WEB_SOP = "https://sop.kf.ai/#/sop"; // public static String WEB_SOP = "https://sop.kf.ai/#/sop";
public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail"; // public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail"; // public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult"; // public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop"; // public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"; // public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video"; // public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
public static final boolean IS_DEBUG = false; // public static final boolean IS_DEBUG = false;
public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live) // public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
/** /**
...@@ -201,6 +201,8 @@ public class Constants { ...@@ -201,6 +201,8 @@ public class Constants {
public final static String DETAIL = "detail"; public final static String DETAIL = "detail";
public final static String UMENG_DEVICE_TOKEN = "umeng_device_token"; public final static String UMENG_DEVICE_TOKEN = "umeng_device_token";
public final static String ORDER_POSTION = "order_position"; public final static String ORDER_POSTION = "order_position";
public final static String SOP_RID = "sop_rid";
public final static String IS_SOP_VIDEO = "is_sop_video";
//是否显示去设置alipay账户de对话框 //是否显示去设置alipay账户de对话框
public final static String IS_SHOW_ALIPAY_DILAOG = "is_show_alipay_dialog"; public final static String IS_SHOW_ALIPAY_DILAOG = "is_show_alipay_dialog";
//上个版本号 //上个版本号
...@@ -258,7 +260,7 @@ public class Constants { ...@@ -258,7 +260,7 @@ public class Constants {
public static final int CAMERA_CODE = 100; public static final int CAMERA_CODE = 100;
public static final int CAMERA_IMG = 101; public static final int CAMERA_IMG = 101;
public static final int CAMERA_VIDEO = 102; public static final int CAMERA_VIDEO = 102;
public static final int MINIMUM_COMPRESSSIZE = 4*1024; //图片压缩大小临界值 public static final int MINIMUM_COMPRESSSIZE = 10*1024; //图片压缩大小临界值
public static final HashMap<Integer,List<TreeAddressBean>> treeAddressMap = new HashMap<>(); //地址数据 public static final HashMap<Integer,List<TreeAddressBean>> treeAddressMap = new HashMap<>(); //地址数据
/** /**
......
...@@ -36,6 +36,7 @@ import java.text.SimpleDateFormat; ...@@ -36,6 +36,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import cn.jzvd.JzvdStd; import cn.jzvd.JzvdStd;
...@@ -109,6 +110,26 @@ public class CommonUtils { ...@@ -109,6 +110,26 @@ public class CommonUtils {
} }
/** /**
* 是否是网络链接
*/
public static boolean isNetUrl(String str) {
return str.contains("http");
}
/**
* 是否是视频
* @param name
* @return
*/
public static boolean isVideo(String name){
// String reg = "(mp4|flv|avi|rm|rmvb|wmv)";
String reg = "(mp4|flv|avi|rmvb)";
Pattern p = Pattern.compile(reg);
return p.matcher(name).find();
}
/**
* 计算并设置时间 * 计算并设置时间
*/ */
public static String getTimeDesc(Context context, String time) { public static String getTimeDesc(Context context, String time) {
...@@ -225,6 +246,25 @@ public class CommonUtils { ...@@ -225,6 +246,25 @@ public class CommonUtils {
} }
/** /**
* 网络链接string转list并且过滤掉空字符串
*
* @param str
* @return
*/
public static List<String> string2ListUrl(String str) {
List<String> list = new ArrayList<>();
if (!TextUtils.isEmpty(str) && str.contains("http")) {
String[] strArr = str.split(",");
for (int i = 0; i < strArr.length; i++) {
if (!TextUtils.isEmpty(strArr[i])) {
list.add(strArr[i]);
}
}
}
return list;
}
/**
* 获取订单状态描述 * 获取订单状态描述
* *
* @return * @return
......
...@@ -38,7 +38,7 @@ public class GlideImageLoader { ...@@ -38,7 +38,7 @@ public class GlideImageLoader {
public static void load(Context context, String imageRes, ImageView view) { public static void load(Context context, String imageRes, ImageView view) {
RequestOptions options = new RequestOptions() RequestOptions options = new RequestOptions()
.centerCrop() .centerCrop()
.placeholder(R.drawable.camera) .placeholder(R.drawable.icon_video_default)
.diskCacheStrategy(DiskCacheStrategy.ALL); .diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(context) Glide.with(context)
.load(imageRes) .load(imageRes)
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.cjt2325.cameralibrary.JCameraView
android:id="@+id/jcameraview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:duration_max="31000"
app:iconLeft="@drawable/ic_back"
app:iconMargin="20dp"
app:iconRight="@null"
app:iconSize="30dp"
app:iconSrc="@drawable/ic_camera" />
</LinearLayout>
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<ImageView <ImageView
android:id="@+id/iv_picture" android:id="@+id/iv_picture"
android:scaleType="centerCrop"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
......
...@@ -968,9 +968,12 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ ...@@ -968,9 +968,12 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
<string name="business_choose_scene">请选择自己可开展销售的业务场景:</string> <string name="business_choose_scene">请选择自己可开展销售的业务场景:</string>
<string name="business_choose_type">请选择自己能提供服务的产品类型:</string> <string name="business_choose_type">请选择自己能提供服务的产品类型:</string>
<string name="pls_set_business_choose_type">请设置自己能提供服务的产品类型</string> <string name="pls_set_business_choose_type">请设置自己能提供服务的产品类型</string>
<string name="licence_haved">已获认证资质</string> <!--<string name="licence_haved">已获认证资质</string>-->
<string name="licence_all">全部认证资质</string> <string name="licence_haved">已获认证</string>
<string name="licence_self">师傅自传</string> <!--<string name="licence_all">全部认证资质</string>-->
<string name="licence_all">申请认证</string>
<!--<string name="licence_self">师傅自传</string>-->
<string name="licence_self">上传资质</string>
<string name="licence_apply_str">申请</string> <string name="licence_apply_str">申请</string>
<string name="week_str"></string> <string name="week_str"></string>
<string name="month_str"></string> <string name="month_str"></string>
...@@ -1022,6 +1025,7 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ ...@@ -1022,6 +1025,7 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
<string name="confirm_pub">确认发布</string> <string name="confirm_pub">确认发布</string>
<string name="limit_10_words">限10个字</string> <string name="limit_10_words">限10个字</string>
<string name="limit_100_words">限100字</string> <string name="limit_100_words">限100字</string>
<string name="limit_100_words_remark">输入备注信息(限100字)</string>
<string name="course_detail">课程详情</string> <string name="course_detail">课程详情</string>
<string name="course_puber">发布方:</string> <string name="course_puber">发布方:</string>
<string name="moment_take_photo">轻触拍照, 按住摄像</string> <string name="moment_take_photo">轻触拍照, 按住摄像</string>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<!-- Customize your theme here. --> <!-- Customize your theme here. -->
<item name="colorPrimary">@color/cl_white</item> <item name="colorPrimary">@color/cl_white</item>
<item name="colorPrimaryDark">@color/cl_line</item> <item name="colorPrimaryDark">@color/cl_line</item>
<item name="colorAccent">@color/cl_accent</item> <item name="colorAccent">@color/text_common_blue</item>
<!--<item name="android:statusBarColor" tools:targetApi="lollipop">@color/bar_grey</item>--> <!--<item name="android:statusBarColor" tools:targetApi="lollipop">@color/bar_grey</item>-->
</style> </style>
......
...@@ -33,8 +33,6 @@ import com.cjt2325.cameralibrary.util.LogUtil; ...@@ -33,8 +33,6 @@ import com.cjt2325.cameralibrary.util.LogUtil;
import com.cjt2325.cameralibrary.util.ScreenUtils; import com.cjt2325.cameralibrary.util.ScreenUtils;
import com.cjt2325.cameralibrary.view.CameraView; import com.cjt2325.cameralibrary.view.CameraView;
import java.io.IOException;
/** /**
* ===================================== * =====================================
...@@ -141,9 +139,17 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp ...@@ -141,9 +139,17 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
initView(); initView();
} }
public void setDuration(int duration) {
this.duration = duration;
if (mCaptureLayout != null)
mCaptureLayout.setDuration(duration);
}
private void initData() { private void initData() {
layout_width = ScreenUtils.getScreenWidth(mContext); layout_width = ScreenUtils.getScreenWidth(mContext);
layout_Height= ScreenUtils.getScreenHeight(mContext); layout_Height = ScreenUtils.getScreenHeight(mContext);
//缩放梯度 //缩放梯度
zoomGradient = (int) (layout_width / 16f); zoomGradient = (int) (layout_width / 16f);
LogUtil.i("zoom = " + zoomGradient); LogUtil.i("zoom = " + zoomGradient);
......
...@@ -26,6 +26,7 @@ import com.dayu.order.api.protocol.Tab; ...@@ -26,6 +26,7 @@ import com.dayu.order.api.protocol.Tab;
import com.dayu.order.api.protocol.TranCompanyBean; import com.dayu.order.api.protocol.TranCompanyBean;
import com.dayu.order.api.protocol.bean.ServiceProviderBean; import com.dayu.order.api.protocol.bean.ServiceProviderBean;
import com.dayu.order.api.protocol.bean.ServiceStationBean; import com.dayu.order.api.protocol.bean.ServiceStationBean;
import com.dayu.order.api.protocol.bean.SopListBean;
import com.dayu.order.api.protocol.companyManager; import com.dayu.order.api.protocol.companyManager;
import com.dayu.order.api.protocol.data.AddDialRecordData; import com.dayu.order.api.protocol.data.AddDialRecordData;
import com.dayu.order.api.protocol.data.ReceivePartData; import com.dayu.order.api.protocol.data.ReceivePartData;
...@@ -442,6 +443,18 @@ public interface OrderService { ...@@ -442,6 +443,18 @@ public interface OrderService {
Observable<BaseResponse<List<SopResult>>> getSopItemResult(@Path("itemId") int itemId); Observable<BaseResponse<List<SopResult>>> getSopItemResult(@Path("itemId") int itemId);
/** /**
* 工单sop列表项
*/
@GET(Constants.API_7200+"/ordersRelationSpuItemSop")
Observable<BaseResponse<BasePageBean<SopListBean>>> getSopList(@Query("ordersRelationSpuItemId") int ordersRelationSpuItemId);
/**
* 工单sop列表项
*/
@PUT(Constants.API_7200+"/ordersRelationSpuItemSop")
Observable<BaseResponse<Boolean>> modifySop(@Body SopListBean data);
/**
* 待接单 * 待接单
*/ */
@GET(Constants.API_7500+"/ordersStatistics/satisfiedOrders") @GET(Constants.API_7500+"/ordersStatistics/satisfiedOrders")
......
...@@ -31,6 +31,8 @@ public class Spu implements Serializable, Parcelable { ...@@ -31,6 +31,8 @@ public class Spu implements Serializable, Parcelable {
private int status;//1未完成2已完成 private int status;//1未完成2已完成
private String brandName; private String brandName;
private String sn; private String sn;
private int ordersRelationSpuId;
/** /**
* 处理工单获取信息使用. * 处理工单获取信息使用.
*/ */
...@@ -40,6 +42,14 @@ public class Spu implements Serializable, Parcelable { ...@@ -40,6 +42,14 @@ public class Spu implements Serializable, Parcelable {
private Integer needSerialNumPic;//1需要;2不需要. private Integer needSerialNumPic;//1需要;2不需要.
private String serialNumPicUrl; private String serialNumPicUrl;
public int getOrdersRelationSpuId() {
return ordersRelationSpuId;
}
public void setOrdersRelationSpuId(int ordersRelationSpuId) {
this.ordersRelationSpuId = ordersRelationSpuId;
}
public List<SpuModels> getSpuModels() { public List<SpuModels> getSpuModels() {
return spuModels; return spuModels;
} }
...@@ -301,6 +311,7 @@ public class Spu implements Serializable, Parcelable { ...@@ -301,6 +311,7 @@ public class Spu implements Serializable, Parcelable {
dest.writeList(this.listPic); dest.writeList(this.listPic);
dest.writeValue(this.needSerialNumPic); dest.writeValue(this.needSerialNumPic);
dest.writeString(this.serialNumPicUrl); dest.writeString(this.serialNumPicUrl);
dest.writeInt(this.ordersRelationSpuId);
} }
public Spu() { public Spu() {
...@@ -330,6 +341,7 @@ public class Spu implements Serializable, Parcelable { ...@@ -330,6 +341,7 @@ public class Spu implements Serializable, Parcelable {
in.readList(this.listPic, Pic.class.getClassLoader()); in.readList(this.listPic, Pic.class.getClassLoader());
this.needSerialNumPic = (Integer) in.readValue(Integer.class.getClassLoader()); this.needSerialNumPic = (Integer) in.readValue(Integer.class.getClassLoader());
this.serialNumPicUrl = in.readString(); this.serialNumPicUrl = in.readString();
this.ordersRelationSpuId = in.readInt();
} }
public static final Creator<Spu> CREATOR = new Creator<Spu>() { public static final Creator<Spu> CREATOR = new Creator<Spu>() {
......
package com.dayu.order.api.protocol.bean;
public class SopListBean {
/**
* answerStatus : 0
* description : string
* example : string
* id : 0
* ordersRelationSpuItemId : 0
* photoOption : 0
* photoResult : string
* radioOption : 0
* radioResult : 0
* sortNum : 0
* spuSopId : 0
* status : 0
* textOption : 0
* textResult : string
* type : 0
* typeResult : string
* videoResult : string
*/
private int answerStatus;
private String description;
private String example;
private int id;
private int ordersRelationSpuItemId;
private int photoOption;
private String photoResult;
private int radioOption;
private int radioResult;
private int sortNum;
private int spuSopId;
private int status;
private int textOption;
private String textResult;
private int type;
private String typeResult;
private String videoResult;
public int getAnswerStatus() {
return answerStatus;
}
public void setAnswerStatus(int answerStatus) {
this.answerStatus = answerStatus;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getExample() {
return example;
}
public void setExample(String example) {
this.example = example;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getOrdersRelationSpuItemId() {
return ordersRelationSpuItemId;
}
public void setOrdersRelationSpuItemId(int ordersRelationSpuItemId) {
this.ordersRelationSpuItemId = ordersRelationSpuItemId;
}
public int getPhotoOption() {
return photoOption;
}
public void setPhotoOption(int photoOption) {
this.photoOption = photoOption;
}
public String getPhotoResult() {
return photoResult;
}
public void setPhotoResult(String photoResult) {
this.photoResult = photoResult;
}
public int getRadioOption() {
return radioOption;
}
public void setRadioOption(int radioOption) {
this.radioOption = radioOption;
}
public int getRadioResult() {
return radioResult;
}
public void setRadioResult(int radioResult) {
this.radioResult = radioResult;
}
public int getSortNum() {
return sortNum;
}
public void setSortNum(int sortNum) {
this.sortNum = sortNum;
}
public int getSpuSopId() {
return spuSopId;
}
public void setSpuSopId(int spuSopId) {
this.spuSopId = spuSopId;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getTextOption() {
return textOption;
}
public void setTextOption(int textOption) {
this.textOption = textOption;
}
public String getTextResult() {
return textResult;
}
public void setTextResult(String textResult) {
this.textResult = textResult;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTypeResult() {
return typeResult;
}
public void setTypeResult(String typeResult) {
this.typeResult = typeResult;
}
public String getVideoResult() {
return videoResult;
}
public void setVideoResult(String videoResult) {
this.videoResult = videoResult;
}
}
package com.dayu.order.common;
//取消sop设置
public class FinishSopEvent {
}
package com.dayu.order.common; package com.dayu.order.common;
import com.dayu.order.api.protocol.bean.SopListBean;
import java.util.List;
/** /**
* Created by luofan * Created by luofan
* on 2018/2/8. * on 2018/2/8.
...@@ -199,4 +203,5 @@ public class OrderConstant { ...@@ -199,4 +203,5 @@ public class OrderConstant {
*/ */
public static final String COMMENT_URL = "/api-message/" +"leaveMessage"; public static final String COMMENT_URL = "/api-message/" +"leaveMessage";
public static List<SopListBean> sopListData;
} }
...@@ -220,6 +220,7 @@ public class MultiProcessOrderPresenter extends MultiProcessOrderContract.Presen ...@@ -220,6 +220,7 @@ public class MultiProcessOrderPresenter extends MultiProcessOrderContract.Presen
bundle.putSerializable(OrderConstant.SPU, mSpu); bundle.putSerializable(OrderConstant.SPU, mSpu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus); bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
bundle.putInt(Constants.STATE, mState); bundle.putInt(Constants.STATE, mState);
bundle.putInt(Constants.SOP_RID, mSpu.getOrdersRelationSpuId());
mView.startActivityAndFinish(SopWebViewActivity.class, bundle); mView.startActivityAndFinish(SopWebViewActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop"); MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop");
} }
......
...@@ -175,6 +175,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -175,6 +175,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus); bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0); bundle.putInt(Constants.ORDER_POSTION, 0);
bundle.putInt(OrderConstant.KAADDRESSID, kaId); bundle.putInt(OrderConstant.KAADDRESSID, kaId);
bundle.putInt(Constants.SOP_RID, spu.getOrdersRelationSpuId());
if (spu.getSopStatus() == 1 && spu.getStatus() == 1) { if (spu.getSopStatus() == 1 && spu.getStatus() == 1) {
mView.startActivity(SopWebViewActivity.class, bundle); mView.startActivity(SopWebViewActivity.class, bundle);
} else { } else {
......
...@@ -153,6 +153,7 @@ public class OrderLivenessPresenter extends OrderLivenessContract.Presenter { ...@@ -153,6 +153,7 @@ public class OrderLivenessPresenter extends OrderLivenessContract.Presenter {
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus); bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0); bundle.putInt(Constants.ORDER_POSTION, 0);
bundle.putInt(OrderConstant.KAADDRESSID, kaId); bundle.putInt(OrderConstant.KAADDRESSID, kaId);
bundle.putInt(Constants.SOP_RID, spu.getOrdersRelationSpuId());
if (spu.getSopStatus() == 1 && spu.getStatus() == 1) { if (spu.getSopStatus() == 1 && spu.getStatus() == 1) {
mView.startActivity(SopWebViewActivity.class, bundle); mView.startActivity(SopWebViewActivity.class, bundle);
} else { } else {
......
...@@ -4,7 +4,6 @@ import android.databinding.ObservableField; ...@@ -4,7 +4,6 @@ import android.databinding.ObservableField;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import com.dayu.base.ui.activity.ImgGalleryActivty;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.location.base.BaseMapActivity; import com.dayu.location.base.BaseMapActivity;
import com.dayu.order.R; import com.dayu.order.R;
...@@ -65,6 +64,7 @@ public class OrderServerPresenter extends OrderServerContract.Presenter { ...@@ -65,6 +64,7 @@ public class OrderServerPresenter extends OrderServerContract.Presenter {
} }
bundle.putInt(OrderConstant.CREATEDSOURCE, mDetails.getCreatedSource()); bundle.putInt(OrderConstant.CREATEDSOURCE, mDetails.getCreatedSource());
bundle.putInt(ORDER_STATE, ORDER_SOP_FINISH); bundle.putInt(ORDER_STATE, ORDER_SOP_FINISH);
bundle.putInt(Constants.SOP_RID, 0);
mView.startActivity(SopWebViewActivity.class, bundle); mView.startActivity(SopWebViewActivity.class, bundle);
} }
......
...@@ -328,6 +328,7 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter { ...@@ -328,6 +328,7 @@ public class ProcessOrderPresenter extends ProcessOrderContract.Presenter {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, mOrderId); bundle.putInt(Constants.ORDER_ID, mOrderId);
bundle.putInt(Constants.ORDER_POSTION, mPosition); bundle.putInt(Constants.ORDER_POSTION, mPosition);
bundle.putInt(Constants.SOP_RID, 0);
mView.startActivity(SopWebViewActivity.class, bundle); mView.startActivity(SopWebViewActivity.class, bundle);
MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop"); MobclickAgent.onEvent(BaseApplication.getContext(), "modify_sop");
} }
......
...@@ -87,6 +87,7 @@ public class ServerInfoPresenter extends ServerInfoContract.Presenter { ...@@ -87,6 +87,7 @@ public class ServerInfoPresenter extends ServerInfoContract.Presenter {
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus); bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0); bundle.putInt(Constants.ORDER_POSTION, 0);
bundle.putInt(OrderConstant.KAADDRESSID, mKaId); bundle.putInt(OrderConstant.KAADDRESSID, mKaId);
bundle.putInt(Constants.SOP_RID, spu.getOrdersRelationSpuId());
if (spu.getSopStatus() == 1 && spu.getStatus() == 1) { if (spu.getSopStatus() == 1 && spu.getStatus() == 1) {
mView.startActivity(SopWebViewActivity.class, bundle); mView.startActivity(SopWebViewActivity.class, bundle);
} else { } else {
......
...@@ -64,6 +64,8 @@ public class ServerListActivity extends BaseActivity<ServerListPresenter, Activi ...@@ -64,6 +64,8 @@ public class ServerListActivity extends BaseActivity<ServerListPresenter, Activi
bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus); bundle.putParcelableArrayList(OrderConstant.SPUS, mUnFinishSpus);
bundle.putInt(Constants.ORDER_POSTION, 0); bundle.putInt(Constants.ORDER_POSTION, 0);
intent.putExtra(Constants.BUNDLE, bundle); intent.putExtra(Constants.BUNDLE, bundle);
bundle.putInt(Constants.SOP_RID, item.getOrdersRelationSpuId());
startActivity(intent); startActivity(intent);
}); });
} }
......
package com.dayu.order.ui.activity; package com.dayu.order.ui.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.base.api.BaseApiFactory;
import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.activity.CameraActivity;
import com.dayu.base.ui.adapter.MediaChooseAdapter; import com.dayu.base.ui.adapter.MediaChooseAdapter;
import com.dayu.base.ui.adapter.SpacesItemDecoration; import com.dayu.base.ui.adapter.SpacesItemDecoration;
import com.dayu.base.ui.presenter.SImplePresenter; import com.dayu.base.ui.presenter.SImplePresenter;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.order.R; import com.dayu.order.R;
import com.dayu.order.api.OrderService; import com.dayu.order.api.OrderService;
import com.dayu.order.api.protocol.SopItemBean; import com.dayu.order.api.protocol.Spu;
import com.dayu.order.api.protocol.SopResult; import com.dayu.order.api.protocol.bean.SopListBean;
import com.dayu.order.api.protocol.SopResultDetail; import com.dayu.order.common.FinishSopEvent;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.databinding.ActivitySopLocalBinding; import com.dayu.order.databinding.ActivitySopLocalBinding;
import com.dayu.utils.GsonUtils; import com.dayu.provider.event.OrderState;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.widgets.TextDialog;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureMimeType; import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.LocalMedia;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import okhttp3.MediaType; import io.reactivex.Observable;
import okhttp3.MultipartBody; import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.RequestBody;
public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopLocalBinding> { import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
int mItemId;
// private ArrayList<String> mImages = new ArrayList<>();
// private PhotoViewAdapter mImageAdapter;
BaseQuickAdapter<SopItemBean, BaseViewHolder> itemAdapter; public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopLocalBinding> {
List<SopItemBean> sopItemDatas = new ArrayList<>(); int mSopRid;
private MediaChooseAdapter mAdapter;
private ArrayList<String> mImages = new ArrayList<>();
private ArrayList<String> mVideos = new ArrayList<>();
SopListBean currentSop;
private boolean isChooseImg = true; //拍照是否选择的图片类型
private boolean isSeted; //是否已设置过
private boolean isEdit; //是否编辑过
Bundle mBundle;
HashMap<Integer, ArrayList<String>> uploadedUrlMap = new HashMap<>(); private int step = 1;
HashMap<Integer, MediaChooseAdapter> reslutAdapterMap = new HashMap<>();
@Override @Override
public void setPresenter() { public void setPresenter() {
...@@ -60,166 +70,404 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL ...@@ -60,166 +70,404 @@ public class SopLocalActivity extends BaseActivity<SImplePresenter, ActivitySopL
return R.layout.activity_sop_local; return R.layout.activity_sop_local;
} }
public static void launch(Context context, int mOrderId) { public static void launch(Context context, int rid, Bundle bundle) {
Intent intent = new Intent(context, SopLocalActivity.class); Intent intent = new Intent(context, SopLocalActivity.class);
intent.putExtra(Constants.ORDER_ID, mOrderId); intent.putExtra(Constants.SOP_RID, rid);
intent.putExtra(Constants.BUNDLE, bundle);
context.startActivity(intent);
}
public static void launch(Context context, int rid, int step, Bundle bundle) {
Intent intent = new Intent(context, SopLocalActivity.class);
intent.putExtra(Constants.SOP_RID, rid);
intent.putExtra("step", step);
intent.putExtra(Constants.BUNDLE, bundle);
context.startActivity(intent); context.startActivity(intent);
} }
@Override @Override
public void initView() { public void initView() {
mBind.titleBack.setOnClickListener(view -> dumpBack()); mBundle = getIntent().getBundleExtra(Constants.BUNDLE);
mItemId = getIntent().getIntExtra(Constants.ORDER_ID, 0); mBind.titleBack.setOnClickListener(view -> {
EventBus.getDefault().post(new FinishSopEvent());
});
mBind.btnCancel.setOnClickListener(view -> dumpBack());
mSopRid = getIntent().getIntExtra(Constants.SOP_RID, 0);
if (getIntent().hasExtra("step")) {
step = getIntent().getIntExtra("step", 1);
}
mBind.btnCancel.setText(step == 1 ? "取消" : "上一步");
mBind.rbNo.setChecked(true);
initData(); initData();
mBind.photo.addItemDecoration(new SpacesItemDecoration(10));
mBind.photo.setLayoutManager(new GridLayoutManager(mActivity, 5));
setImgAdapter();
} }
private void initData() { private void setAdapterListener() {
showDialog(); mAdapter.setAdapterListener(() -> {
Api.getService(OrderService.class).getSopItems(mItemId).compose(Api.applySchedulers()) mImages.clear();
.subscribe(mPresenter.baseObserver(datas -> { mVideos.clear();
sopItemDatas = datas; showChooseDailog();
getDetailData(); });
setItemAdapter();
}));
} }
//条目详情数据 private void initData() {
private void getDetailData() { if (OrderConstant.sopListData == null) {
Api.getService(OrderService.class).getSopItemResult(mItemId).compose(Api.applySchedulers()) showDialog();
.subscribe(mPresenter.baseObserver(datas -> { Api.getService(OrderService.class).getSopList(mSopRid).compose(Api.applySchedulers())
for (SopResult sopResult : datas) { .subscribe(mPresenter.baseObserver(datas -> {
SopResultDetail resultDetail = GsonUtils.toBean(sopResult.getResult(), SopResultDetail.class); if (datas != null && datas.getData() != null) {
if (resultDetail != null) { OrderConstant.sopListData = datas.getData();
for (SopItemBean itemBean : sopItemDatas) { setStepData();
if (sopResult.getSpuSopId() == itemBean.getSpuSopId()) {
resultDetail.type = itemBean.getType();
itemBean.setResultDetail(resultDetail);
setItemAdapter();
}
}
} }
} }));
})); } else {
setStepData();
}
} }
//设置条目信息 //填充页面数据
private void setItemAdapter() { private void setStepData() {
if (itemAdapter == null) { if (OrderConstant.sopListData.size() >= step) {
itemAdapter = new BaseQuickAdapter<SopItemBean, BaseViewHolder>(R.layout.item_sop_local, sopItemDatas) { currentSop = OrderConstant.sopListData.get(step - 1);
@Override mBind.tvSort.setText(currentSop.getSortNum() + "");
protected void convert(BaseViewHolder helper, SopItemBean item) { mBind.tvDesc.setText(currentSop.getDescription());
EditText edtRemak = helper.getView(R.id.edt_remark); isSeted = currentSop.getAnswerStatus() == 1;
edtRemak.setVisibility(item.isShowRemark() ? View.VISIBLE : View.GONE); if (!TextUtils.isEmpty(currentSop.getExample())) {
helper.getView(R.id.tv_add_remark).setOnClickListener(v -> { setExapleView(currentSop.getExample());
item.setShowRemark(!item.isShowRemark()); } else {
edtRemak.setVisibility(item.isShowRemark() ? View.VISIBLE : View.GONE); mBind.tvExample.setVisibility(View.GONE);
}); mBind.rlExample.setVisibility(View.GONE);
}
helper.setText(R.id.tv_sort, item.getSortNum() + "."); setAnswerStatuView();
helper.setText(R.id.tv_desc, item.getDescription()); }
setDetailView(helper,item); mBind.btnNext.setOnClickListener(view -> {
preSaveData();
});
}
//根据是否已设置sop判断布局显示
private void setAnswerStatuView() {
if (isSeted && !isEdit) {
if (TextUtils.isEmpty(currentSop.getTextResult())) {
// mBind.tvRemark.setVisibility(View.GONE);
// mBind.edtRemark.setVisibility(View.GONE);
} else {
mBind.tvRemark.setVisibility(View.VISIBLE);
mBind.edtRemark.setVisibility(View.VISIBLE);
mBind.edtRemark.setText(currentSop.getTextResult());
}
mImages = (ArrayList<String>) CommonUtils.string2ListUrl(currentSop.getPhotoResult());
mVideos = (ArrayList<String>) CommonUtils.string2ListUrl(currentSop.getVideoResult());
if (mImages.size() == 0 && mVideos.size() == 0) {
// mBind.photo.setVisibility(View.GONE);
} else {
mBind.photo.setVisibility(View.VISIBLE);
if (mImages.size() > 0) {
setImgAdapter();
} else {
setVideoAdapter();
} }
}; }
mBind.rvSop.setLayoutManager(new LinearLayoutManager(this));
mBind.rvSop.setAdapter(itemAdapter);
} else { } else {
itemAdapter.notifyDataSetChanged(); mBind.tvRemark.setVisibility(View.VISIBLE);
mBind.edtRemark.setVisibility(View.VISIBLE);
mBind.photo.setVisibility(View.VISIBLE);
} }
}
//示例
private void setExapleView(String example) {
mBind.tvExample.setVisibility(View.VISIBLE);
mBind.rlExample.setVisibility(View.VISIBLE);
if (CommonUtils.isVideo(example)) {
mBind.jzVideo.setVisibility(View.VISIBLE);
mBind.ivExample.setVisibility(View.GONE);
mBind.jzVideo.setUp(example, "");
GlideImageLoader.load(this, mBind.jzVideo.thumbImageView, example, -1);
} else {
mBind.jzVideo.setVisibility(View.GONE);
mBind.ivExample.setVisibility(View.VISIBLE);
GlideImageLoader.load(this, example, mBind.ivExample);
}
} }
//设置详情数据 //保存数据
private void setDetailView(BaseViewHolder helper, SopItemBean item) { private void preSaveData() {
RecyclerView rvImg = helper.getView(R.id.rv_image); if (currentSop == null) {
RecyclerView rvVideo = helper.getView(R.id.rv_video); showToast("数据有误,请返回重试");
RadioGroup rgSop = helper.getView(R.id.rg_sop); return;
RadioButton rbYes = helper.getView(R.id.rb_yes); }
RadioButton rbNo = helper.getView(R.id.rb_yes); int radioStatus = mBind.rgSop.getCheckedRadioButtonId() == mBind.rbYes.getId() ? 1 : 2;
rvVideo.setVisibility(item.getType() == 1 ? View.VISIBLE : View.GONE); String remark = mBind.edtRemark.getText().toString();
rgSop.setVisibility(item.getType() == 2 ? View.VISIBLE : View.GONE); currentSop.setRadioResult(radioStatus);
rvImg.setVisibility(item.getType() == 3 ? View.VISIBLE : View.GONE); if (isChooseImg) {
mImages = mAdapter.getData();
} else {
mVideos = mAdapter.getData();
}
//判断是否修改过
if (radioStatus != currentSop.getRadioResult() || !remark.equals(currentSop.getTextResult())
|| mImages.size() != CommonUtils.string2ListUrl(currentSop.getPhotoResult()).size()
|| mVideos.size() != CommonUtils.string2ListUrl(currentSop.getVideoResult()).size())
isEdit = true;
if (isSeted && !isEdit) {
toNext();
} else {
if (TextUtils.isEmpty(remark.trim()) && currentSop.getTextOption() == 2) {
showToast("请输入备注信息");
return;
}
if (mImages.size() == 0 && mVideos.size() == 0 && currentSop.getPhotoOption() == 2) {
showToast("请补全拍照信息");
return;
}
//传"-"后服务器会清空该字段数据
if (isSeted && isEdit && TextUtils.isEmpty(remark.trim())) {
currentSop.setTextResult("-");
}
currentSop.setTextResult(remark);
if (mImages.size() == 0 && mVideos.size() == 0) {
if (isSeted && isEdit) {
currentSop.setPhotoResult("-");
currentSop.setVideoResult("-");
}
saveSop();
} else if (mImages.size() > 0) {
if (isSeted && isEdit)
currentSop.setVideoResult("-");
uploadImgs();
} else if (mVideos.size() > 0) {
if (isSeted && isEdit)
currentSop.setPhotoResult("-");
uploadVideo();
}
}
switch (item.getType()) { }
case 1:
rbYes.setChecked(item.getResultDetail().isSelected); //上传图片(先判断是否包含网络资源)
rbNo.setChecked(!item.getResultDetail().isSelected); private void uploadImgs() {
break; List<String> tempList = new ArrayList<>();
case 2: List<String> localList = new ArrayList<>();
setMediaAdapter(item, rvImg,PictureMimeType.ofVideo()); for (String str : mImages) {
break; if (CommonUtils.isNetUrl(str)){
case 3: tempList.add(str);
setMediaAdapter(item, rvImg,PictureMimeType.ofImage()); }else {
break; localList.add(str);
} }
}
if (tempList.size() == mImages.size()) {
currentSop.setPhotoResult(CommonUtils.list2String(mImages));
saveSop();
} else {
showDialog();
BaseApiFactory.uploadPhoto(BaseApiFactory.packPhoto(localList), Constants.NO_WATERMARK)
.subscribe(mPresenter.baseObserver(imgs -> {
tempList.addAll(imgs);
currentSop.setPhotoResult(CommonUtils.list2String(tempList));
mAdapter.setDataNoChange((ArrayList<String>) tempList);
saveSop();
}));
}
} }
//设置照片or视频数据 //上传视频(先判断是否包含网络资源)
private void setMediaAdapter(SopItemBean item, RecyclerView rvImg, int mediaType) { private void uploadVideo() {
MediaChooseAdapter imgAdapter; String videoPath = mVideos.get(0);
if (reslutAdapterMap.containsKey(item.getSpuSopId())){ if (CommonUtils.isNetUrl(videoPath)) {
imgAdapter = reslutAdapterMap.get(item.getSpuSopId()); currentSop.setVideoResult(videoPath);
imgAdapter.notifyDataSetChanged(); saveSop();
}else { } else {
imgAdapter = new MediaChooseAdapter(this,item.getResultDetail().urls, showDialog();
5,mediaType); BaseApiFactory.uploadVideo(BaseApiFactory.packPhoto(mVideos.get(0)))
imgAdapter.setRequestCode(item.getSpuSopId()); .subscribe(mPresenter.baseObserver(resUrl -> {
reslutAdapterMap.put(item.getSpuSopId(),imgAdapter); currentSop.setVideoResult(resUrl);
rvImg.addItemDecoration(new SpacesItemDecoration(10)); mVideos.clear();
rvImg.setLayoutManager(new GridLayoutManager(this, 4)); mVideos.add(resUrl);
rvImg.setAdapter(imgAdapter); mAdapter.setDataNoChange(mVideos);
saveSop();
}));
} }
} }
private MultipartBody.Part[] packPhoto(int sopSpuId,List<String> sourceList) { //保存sop信息
ArrayList<File> files = new ArrayList<>(); private void saveSop() {
if (sourceList != null && sourceList.size() > 0) { currentSop.setAnswerStatus(1);
for (int i = 0; i < sourceList.size(); i++) { showDialog();
if (sourceList.get(i).contains("http")) { Api.getService(OrderService.class).modifySop(currentSop).compose(Api.applySchedulers())
ArrayList<String> urls = new ArrayList<>(); .subscribe(mPresenter.baseObserver(success -> {
if (uploadedUrlMap.containsKey(sopSpuId)) { toNext();
urls = uploadedUrlMap.get(sopSpuId); }));
} }
urls.add(sourceList.get(i));
uploadedUrlMap.put(sopSpuId,urls); private void toNext() {
} else { isEdit = false;
files.add(new File(sourceList.get(i))); isSeted = true;
} if (step < OrderConstant.sopListData.size()) {
SopLocalActivity.launch(this, mSopRid, step + 1, mBundle);
} else {
int mOrderId = mBundle.getInt(Constants.ORDER_ID, 0);
int mPositon = mBundle.getInt(Constants.ORDER_POSTION, 0);
int mSpuState = mBundle.getInt(Constants.STATE, 0);
Spu mSpu = (Spu) mBundle.getSerializable(OrderConstant.SPU);
ArrayList<Spu> mSpus = mBundle.getParcelableArrayList(OrderConstant.SPUS);
if (mSpu != null) {
Intent intent = new Intent(mActivity, MultiProcessOrderActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable(OrderConstant.SPU, mSpu);
bundle.putParcelableArrayList(OrderConstant.SPUS, mSpus);
bundle.putInt(Constants.ORDER_POSTION, 0);
bundle.putInt(Constants.ORDER_ID, mOrderId);
bundle.putInt(Constants.STATE, mSpuState);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
EventBus.getDefault().post(new FinishSopEvent());
} else {
EventBus.getDefault().post(new OrderState(ORDER_SOP_FINISH, mPositon));
Intent intent = new Intent(mActivity, ProcessOrderActivity.class);
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, mOrderId);
bundle.putInt(Constants.ORDER_POSTION, mPositon);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
EventBus.getDefault().post(new FinishSopEvent());
} }
} }
MultipartBody.Part[] part = new MultipartBody.Part[files.size()];
for (int i = 0; i < files.size(); i++) {
RequestBody requestFile =
RequestBody.create(MediaType.parse("multipart/form-data"), files.get(i));
MultipartBody.Part body =
MultipartBody.Part.createFormData("fileUpload", files.get(i).getName(), requestFile);
part[i] = body;
}
return part;
} }
//选择图片
private void setImgAdapter() {
isChooseImg = true;
mAdapter = new MediaChooseAdapter(this, mImages,
3, PictureMimeType.ofImage(), true);
mAdapter.setRequestCode(1001);
mBind.photo.setAdapter(mAdapter);
setAdapterListener();
}
//选择视频
private void setVideoAdapter() {
isChooseImg = false;
mAdapter = new MediaChooseAdapter(this, mVideos,
1, PictureMimeType.ofVideo(), true);
mAdapter.setRequestCode(1002);
mAdapter.setVideoLength(31);
mBind.photo.setAdapter(mAdapter);
setAdapterListener();
}
//选择视频或图片弹框
private void showChooseDailog() {
List<String> list = new ArrayList<>();
list.add("图片");
list.add("视频");
TextDialog.getInstance().showBottomDialog(mActivity, list, pos -> {
if (pos == 0) {
setImgAdapter();
mAdapter.showPicDialog();
} else {
setVideoAdapter();
showVideoDailog();
}
});
}
//选择视频弹框
private void showVideoDailog() {
List<String> list = new ArrayList<>();
list.add("拍摄");
list.add("从本地选择");
TextDialog.getInstance().showBottomDialog(mActivity, list, pos -> {
if (pos == 0) {
recordVideo();
} else {
mAdapter.showPicDialog();
}
});
}
//录制视频
private void recordVideo() {
String[] mPerArr = new String[]{Manifest.permission.RECORD_AUDIO};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
Observable.timer(1000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
Intent intent = new Intent(SopLocalActivity.this, CameraActivity.class);
intent.putExtra(Constants.ONLY_VIDEO, true);
intent.putExtra(Constants.IS_SOP_VIDEO, true);
startActivityForResult(intent, Constants.CAMERA_CODE);
});
}
@Override
public void onPermissionDenied() {
ToastUtils.showShortToast(R.string.request_permission_failure);
}
});
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
//选择照片或视频后更新数据 //选择照片或视频后更新数据
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
if (reslutAdapterMap.containsKey(requestCode)){ switch (requestCode) {
MediaChooseAdapter mediaAdapter = reslutAdapterMap.get(requestCode); case 1001:
ArrayList<String> mImages = mediaAdapter.getData(); List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
mImages.remove("add"); if (selectList != null && selectList.size() > 0) {
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data); mImages.remove("add");
if (selectList != null && selectList.size() > 0) { for (int a = 0; a < selectList.size(); a++) {
for (int a = 0; a < selectList.size(); a++) { if (!TextUtils.isEmpty(selectList.get(a).getCompressPath())) {
if (!TextUtils.isEmpty(selectList.get(a).getCompressPath())){ mImages.add(selectList.get(a).getCompressPath());
mImages.add(selectList.get(a).getCompressPath()); } else {
}else{ mImages.add(selectList.get(a).getPath());
mImages.add(selectList.get(a).getPath()); }
} }
mAdapter.setData(mImages);
isEdit = true;
} }
} break;
mediaAdapter.setData(mImages); case 1002:
List<LocalMedia> mSelectList = PictureSelector.obtainMultipleResult(data);
if (mSelectList != null) {
String videoPath = mSelectList.get(0).getPath();
File file = new File(videoPath);
if (file.length() > 100 * 1024 * 1024) {
showToast("视频文件不能大于100M");
} else {
mVideos.remove("add");
mVideos.add(videoPath);
mAdapter.setData(mVideos);
isEdit = true;
}
}
break;
} }
} else if (resultCode == Constants.CAMERA_VIDEO) {
mVideos.remove("add");
mVideos.add(data.getStringExtra("videoPath"));
mAdapter.setData(mVideos);
isEdit = true;
} }
} }
@Override
protected void onDestroy() {
super.onDestroy();
if (step == 1)
OrderConstant.sopListData = null;
}
@Subscribe
public void cancleSet(FinishSopEvent event) {
finish();
}
} }
...@@ -32,7 +32,6 @@ import com.github.lzyzsd.jsbridge.CallBackFunction; ...@@ -32,7 +32,6 @@ import com.github.lzyzsd.jsbridge.CallBackFunction;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.LocalMedia;
import com.megvii.idcardlib.util.Constant;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.json.JSONException; import org.json.JSONException;
...@@ -50,7 +49,7 @@ import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH; ...@@ -50,7 +49,7 @@ import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
* on 2017/11/27. * on 2017/11/27.
*/ */
public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWebviewBinding> implements SopContract.View{ public class SopWebViewActivity extends BaseActivity<SopPresenter, ActivitySopWebviewBinding> implements SopContract.View {
private String mToken; private String mToken;
private int mOrderId; private int mOrderId;
private int mPositon; private int mPositon;
...@@ -64,13 +63,17 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb ...@@ -64,13 +63,17 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb
private ArrayList<Spu> mSpus; private ArrayList<Spu> mSpus;
private int mCreatedSource; private int mCreatedSource;
private int mSpuState; private int mSpuState;
private int sopRid;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
Bundle bundle = getIntent().getBundleExtra(Constants.BUNDLE); Bundle bundle = getIntent().getBundleExtra(Constants.BUNDLE);
mOrderId = bundle.getInt(Constants.ORDER_ID, 0); // mOrderId = bundle.getInt(Constants.ORDER_ID, 0);
// SopLocalActivity.launch(this,mOrderId); sopRid = bundle.getInt(Constants.SOP_RID, 0);
// finish(); if (sopRid > 0) {
SopLocalActivity.launch(this, sopRid,bundle);
finish();
}
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
...@@ -81,8 +84,11 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb ...@@ -81,8 +84,11 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb
@Override @Override
public void initView() { public void initView() {
initData(); if (sopRid <= 0) {
initWebView(); initData();
initWebView();
}
} }
private void initData() { private void initData() {
...@@ -358,7 +364,9 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb ...@@ -358,7 +364,9 @@ public class SopWebViewActivity extends BaseActivity<SopPresenter,ActivitySopWeb
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
clearCach(); if (sopRid <= 0) {
clearCach();
}
} }
public void clearCach() { public void clearCach() {
......
...@@ -496,6 +496,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -496,6 +496,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, id); bundle.putInt(Constants.ORDER_ID, id);
bundle.putInt(Constants.ORDER_POSTION, adapterPosition); bundle.putInt(Constants.ORDER_POSTION, adapterPosition);
bundle.putInt(Constants.SOP_RID, 0);
intent.putExtra(Constants.BUNDLE, bundle); intent.putExtra(Constants.BUNDLE, bundle);
mContext.startActivity(intent); mContext.startActivity(intent);
MobclickAgent.onEvent(mContext, "process_sop"); MobclickAgent.onEvent(mContext, "process_sop");
......
...@@ -91,6 +91,7 @@ ...@@ -91,6 +91,7 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.SopLocalActivity" android:name=".ui.activity.SopLocalActivity"
android:windowSoftInputMode="stateHidden|adjustPan"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.ApplyAndRefuseActivity" android:name=".ui.activity.ApplyAndRefuseActivity"
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <RelativeLayout
...@@ -31,18 +32,163 @@ ...@@ -31,18 +32,163 @@
android:visibility="gone" /> android:visibility="gone" />
</RelativeLayout> </RelativeLayout>
<ImageView style="@style/card_line" /> <android.support.v4.widget.NestedScrollView
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_sop"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:overScrollMode="never" /> android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_ee"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tv_sort"
style="@style/common_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_desc"
style="@style/common_text_style"
android:layout_marginTop="5dp"
android:text="123"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_radio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
style="@style/common_text_style"
android:layout_marginLeft="5dp"
android:text="选项:" />
<RadioGroup
android:id="@+id/rg_sop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="是"
android:textSize="13sp" />
<RadioButton
android:id="@+id/rb_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:padding="10dp"
android:text="否"
android:textSize="13sp" />
</RadioGroup>
</LinearLayout>
<TextView
android:id="@+id/tv_remark"
style="@style/common_text_style"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:text="备注:" />
<EditText
android:id="@+id/edt_remark"
style="@style/learn_course_edit"
android:layout_height="100dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:hint="@string/limit_100_words_remark"
android:maxLength="100"
android:padding="5dp" />
<LinearLayout
android:id="@+id/ll_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<TextView
style="@style/common_text_style"
android:text="拍照:" />
<TextView
style="@style/common_text_style"
android:layout_marginLeft="10dp"
android:text="(限3张照片或1个视频)"
android:textColor="@color/color_69" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp" />
<TextView
android:visibility="gone"
android:id="@+id/tv_example"
style="@style/common_text_style"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:text="示例:" />
<RelativeLayout
android:visibility="gone"
android:id="@+id/rl_example"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="5dp">
<cn.jzvd.JzvdStd
android:id="@+id/jz_video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_example"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/icon_video_default"
/>
</RelativeLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="40dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
...@@ -51,24 +197,22 @@ ...@@ -51,24 +197,22 @@
<Button <Button
android:id="@+id/btn_cancel" android:id="@+id/btn_cancel"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="35dp" android:layout_height="match_parent"
android:layout_marginLeft="30dp" android:layout_marginLeft="30dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/tab_gray_react" android:background="@drawable/btn_blue_whitecontent"
android:onClick="onClick"
android:text="@string/cancle" android:text="@string/cancle"
android:textColor="#8b8b8b" /> android:textColor="@color/text_common_blue" />
<Button <Button
android:id="@+id/btn_submit" android:id="@+id/btn_next"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="35dp" android:layout_height="match_parent"
android:layout_marginLeft="30dp" android:layout_marginLeft="30dp"
android:layout_marginRight="30dp" android:layout_marginRight="30dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/tab_blue_react" android:background="@drawable/tab_blue_react"
android:onClick="onClick" android:text="@string/next_step"
android:text="@string/save_str"
android:textColor="@color/white" /> android:textColor="@color/white" />
</LinearLayout> </LinearLayout>
......
...@@ -42,8 +42,8 @@ public class UserLicenceActivity extends BaseActivity<SImplePresenter, ActivityU ...@@ -42,8 +42,8 @@ public class UserLicenceActivity extends BaseActivity<SImplePresenter, ActivityU
mBind.ivAdd.setOnClickListener(v->startActivity(UploadSelfLicenceActivity.class)); mBind.ivAdd.setOnClickListener(v->startActivity(UploadSelfLicenceActivity.class));
mFragments.add(UserLicenceFragment.newInstance(1));
mFragments.add(UserLicenceFragment.newInstance(2)); mFragments.add(UserLicenceFragment.newInstance(2));
mFragments.add(UserLicenceFragment.newInstance(1));
mFragments.add(new SelfLicenceFragment()); mFragments.add(new SelfLicenceFragment());
initBtn(); initBtn();
...@@ -52,19 +52,19 @@ public class UserLicenceActivity extends BaseActivity<SImplePresenter, ActivityU ...@@ -52,19 +52,19 @@ public class UserLicenceActivity extends BaseActivity<SImplePresenter, ActivityU
//初始化tab //初始化tab
public void initBtn() { public void initBtn() {
mBind.btnHave.setSelected(true); mBind.btnAll.setSelected(true);
mBind.btnHave.setTextColor(getResources().getColor(R.color.white)); mBind.btnAll.setTextColor(getResources().getColor(R.color.white));
mBind.btnHave.setOnClickListener((view) -> { mBind.btnHave.setOnClickListener((view) -> {
reSelected(); reSelected();
mBind.btnHave.setSelected(true); mBind.btnHave.setSelected(true);
mBind.btnHave.setTextColor(getResources().getColor(R.color.white)); mBind.btnHave.setTextColor(getResources().getColor(R.color.white));
showHideFragment(0, mPosition); showHideFragment(1, mPosition);
}); });
mBind.btnAll.setOnClickListener((view) -> { mBind.btnAll.setOnClickListener((view) -> {
reSelected(); reSelected();
mBind.btnAll.setSelected(true); mBind.btnAll.setSelected(true);
mBind.btnAll.setTextColor(getResources().getColor(R.color.white)); mBind.btnAll.setTextColor(getResources().getColor(R.color.white));
showHideFragment(1, mPosition); showHideFragment(0, mPosition);
}); });
mBind.btnSelf.setOnClickListener((view) -> { mBind.btnSelf.setOnClickListener((view) -> {
reSelected(); reSelected();
......
...@@ -42,22 +42,22 @@ ...@@ -42,22 +42,22 @@
android:gravity="center"> android:gravity="center">
<Button <Button
android:id="@+id/btn_have" android:id="@+id/btn_all"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="35dp" android:layout_height="35dp"
android:layout_weight="1"
android:background="@drawable/detail_center_selector" android:background="@drawable/detail_center_selector"
android:gravity="center" android:gravity="center"
android:text="@string/licence_haved" /> android:text="@string/licence_all" />
<Button <Button
android:id="@+id/btn_all" android:id="@+id/btn_have"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="35dp"
android:layout_weight="1" android:layout_weight="1"
android:layout_height="35dp"
android:background="@drawable/detail_center_selector" android:background="@drawable/detail_center_selector"
android:gravity="center" android:gravity="center"
android:text="@string/licence_all" /> android:text="@string/licence_haved" />
<Button <Button
android:id="@+id/btn_self" android:id="@+id/btn_self"
android:layout_width="0dp" android:layout_width="0dp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment