Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0f54a19c
authored
Apr 28, 2020
by
mReturn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
收发货&大视频处理&视频录制
parent
be9eb294
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
67 changed files
with
1628 additions
and
274 deletions
app/build.gradle
app/proguard-rules.pro
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
app/src/main/java/com/dayu/bigfish/ui/service/LocationService.java
baseSDK/build.gradle
baseSDK/src/main/java/com/dayu/base/api/Api.java
baseSDK/src/main/java/com/dayu/base/api/BaseApiFactory.java
baseSDK/src/main/java/com/dayu/base/ui/adapter/PhotoViewAdapter.java
baseSDK/src/main/java/com/dayu/common/Constants.java
baseSDK/src/main/java/com/dayu/utils/CommonUtils.java
baseSDK/src/main/java/com/dayu/widgets/JZMediaIjk.java
baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java
baseSDK/src/main/res/values/strings.xml
build.gradle
camera/src/main/java/com/cjt2325/cameralibrary/CameraInterface.java
camera/src/main/java/com/cjt2325/cameralibrary/CaptureButton.java
camera/src/main/java/com/cjt2325/cameralibrary/CaptureLayout.java
camera/src/main/java/com/cjt2325/cameralibrary/JCameraView.java
learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java
learnCenter/src/main/java/com/dayu/learncenter/api/LearnService.java
learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java
learnCenter/src/main/java/com/dayu/learncenter/presenter/pubcourse/PubCoursePresenter.java
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/EditCourseActivity.java
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java
learnCenter/src/main/res/layout/activity_course_detail.xml
learnCenter/src/main/res/layout/activity_pub_course.xml
learnCenter/src/main/res/layout/item_common_learn.xml
learnCenter/src/main/res/values/strings.xml
managercenter/src/main/java/com/dayu/managercenter/ui/activity/CreateOrderActivity.java
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
orderCenter/src/main/java/com/dayu/order/api/protocol/OrderDetail.java
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/OrderPardDeatilBean.java
orderCenter/src/main/java/com/dayu/order/api/protocol/OrderPartBean.java → orderCenter/src/main/java/com/dayu/order/api/protocol/bean/OrderPartBean.java
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/ServiceProviderBean.java
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/ServiceStationBean.java
orderCenter/src/main/java/com/dayu/order/api/protocol/data/ReceivePartData.java
orderCenter/src/main/java/com/dayu/order/api/protocol/data/SendPartData.java
orderCenter/src/main/java/com/dayu/order/common/PartReceiverEvent.java
orderCenter/src/main/java/com/dayu/order/common/PartSendEvent.java
orderCenter/src/main/java/com/dayu/order/presenter/orderpart/OrderPartPresenter.java
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_receive/PartReceiveContract.java
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_receive/PartRecievePresenter.java
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_send/PartSendContract.java
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_send/PartSendPresenter.java
orderCenter/src/main/java/com/dayu/order/ui/activity/MultipleProcessActivity.java
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderDetailsActivity.java
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderPartReceiveActivity.java
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderPartSendActivity.java
orderCenter/src/main/java/com/dayu/order/ui/activity/ProcessOrderActivity.java
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderPartListAdapter.java
orderCenter/src/main/java/com/dayu/order/ui/fragment/ApplicationOrderPartFragment.java
orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java
orderCenter/src/main/release/AndroidManifest.xml
orderCenter/src/main/res/layout/activity_order_details.xml
orderCenter/src/main/res/layout/activity_order_part_receive.xml
orderCenter/src/main/res/layout/activity_order_part_send.xml
orderCenter/src/main/res/layout/fragment_operate_detail.xml
orderCenter/src/main/res/layout/item_order_part_list.xml
orderCenter/src/main/res/values/strings.xml
saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java
saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleInstructionFragment.java
saleCenter/src/main/res/layout/activity_product_details.xml
saleCenter/src/main/res/layout/fragment_sale_instruction.xml
saleCenter/src/main/res/values/strings.xml
app/build.gradle
View file @
0f54a19c
...
...
@@ -23,7 +23,7 @@ android {
}
}
ndk
{
abiFilters
'x86'
,
'armeabi-v7a'
,
'arm64-v8a'
,
'armeabi'
abiFilters
'x86'
,
'armeabi-v7a'
,
'armeabi'
}
}
...
...
app/proguard-rules.pro
View file @
0f54a19c
...
...
@@ -296,9 +296,9 @@ public static final int *;
-keep public class cn.jzvd.demo.CustomMedia.JZMediaIjk {*; }
-keep public class cn.jzvd.demo.CustomMedia.JZMediaSystemAssertFolder {*; }
-keep class tv.danmaku.ijk.media.player.
*
* {*; }
-dontwarn tv.danmaku.ijk.media.player.*
-keep
interface tv.danmaku.ijk.media.player.
*
* { *;
}
#ijkplayer
-keep
class tv.danmaku.ijk.media.
*
* {*;
}
...
...
app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
View file @
0f54a19c
...
...
@@ -486,15 +486,11 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
}
@Override
public
boolean
onKeyDown
(
int
keyCode
,
KeyEvent
event
)
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
if
(!
Jzvd
.
backPress
())
{
// 不退出程序,进入后台
moveTaskToBack
(
true
);
return
true
;
}
public
void
onBackPressed
()
{
if
(!
Jzvd
.
backPress
())
{
// 不退出程序,进入后台
moveTaskToBack
(
true
);
}
return
super
.
onKeyDown
(
keyCode
,
event
);
}
@Subscribe
(
threadMode
=
ThreadMode
.
MAIN
)
...
...
app/src/main/java/com/dayu/bigfish/ui/service/LocationService.java
View file @
0f54a19c
...
...
@@ -24,6 +24,7 @@ import io.reactivex.disposables.Disposable;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
/**
* Created by luofan
* on 2018/7/17.
...
...
@@ -57,6 +58,9 @@ public class LocationService extends Service {
jsonObject
.
put
(
"siteId"
,
mSiteId
);
jsonObject
.
put
(
"longitude"
,
location
.
getLongitude
());
jsonObject
.
put
(
"latitude"
,
location
.
getLatitude
());
jsonObject
.
put
(
"provinceName"
,
location
.
getProvince
());
jsonObject
.
put
(
"cityName"
,
location
.
getCity
());
jsonObject
.
put
(
"districtName"
,
location
.
getDistrict
());
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
...
...
baseSDK/build.gradle
View file @
0f54a19c
...
...
@@ -72,6 +72,10 @@ dependencies {
api
project
(
':pickerview'
)
// api 'cn.jzvd:jiaozivideoplayer:7.2.4'
api
'cn.jzvd:jiaozivideoplayer:7.1.0'
// api 'cn.jzvd:jiaozivideoplayer:7.3.0'
// api 'com.google.android.exoplayer:exoplayer:2.9.6'
api
'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
api
'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4'
api
'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.35'
api
'com.badoo.mobile:android-weak-handler:1.1'
api
'com.youth.banner:banner:1.4.10'
...
...
baseSDK/src/main/java/com/dayu/base/api/Api.java
View file @
0f54a19c
...
...
@@ -76,7 +76,7 @@ public class Api {
.
setDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss"
)
.
create
();
HttpLoggingInterceptor
httpLoggingInterceptor
=
new
HttpLoggingInterceptor
(
m
->
LogUtils
.
i
(
"request"
,
m
));
httpLoggingInterceptor
.
setLevel
(
HttpLoggingInterceptor
.
Level
.
BODY
);
httpLoggingInterceptor
.
setLevel
(
HttpLoggingInterceptor
.
Level
.
HEADERS
);
TokenInterceptord
tokenInterceptord
=
new
TokenInterceptord
();
OkHttpClient
.
Builder
build
=
new
OkHttpClient
.
Builder
()
.
addInterceptor
(
httpLoggingInterceptor
)
...
...
baseSDK/src/main/java/com/dayu/base/api/BaseApiFactory.java
View file @
0f54a19c
package
com
.
dayu
.
base
.
api
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
okhttp3.MediaType
;
import
okhttp3.MultipartBody
;
import
okhttp3.RequestBody
;
/**
* Created by luofan
...
...
@@ -19,6 +23,7 @@ public class BaseApiFactory {
public
static
Observable
<
List
<
String
>>
uploadPhoto
(
MultipartBody
.
Part
part
)
{
return
Api
.
getService
(
APIService
.
class
).
uploadPhoto
(
part
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
String
>
uploadVideo
(
MultipartBody
.
Part
part
)
{
return
Api
.
getService
(
APIService
.
class
).
uploadVideo
(
part
).
compose
(
Api
.
applySchedulers
());
}
...
...
@@ -28,4 +33,23 @@ public class BaseApiFactory {
}
public
static
MultipartBody
.
Part
[]
packPhoto
(
List
<
String
>
imageUrl
)
{
ArrayList
<
File
>
files
=
new
ArrayList
<>();
if
(
imageUrl
!=
null
&&
imageUrl
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
imageUrl
.
size
();
i
++)
{
files
.
add
(
new
File
(
imageUrl
.
get
(
i
)));
}
}
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
;
}
}
baseSDK/src/main/java/com/dayu/base/ui/adapter/PhotoViewAdapter.java
View file @
0f54a19c
...
...
@@ -36,6 +36,12 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
private
ArrayList
<
String
>
list
;
private
OnItemClickListener
<
PhotoViewAdapter
.
Holder
,
Integer
>
listener
;
private
boolean
canDelete
=
true
;
//是否可以删除
public
void
setCanDelete
(
boolean
canDelete
)
{
this
.
canDelete
=
canDelete
;
}
public
PhotoViewAdapter
(
ArrayList
<
String
>
list
,
Activity
context
)
{
mIvSize
=
(
UtilsScreen
.
getScreenWidth
(
context
)
-
UtilsScreen
.
dip2px
(
context
,
20
))
/
5
;
this
.
context
=
context
;
...
...
@@ -63,8 +69,8 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
holder
.
delete
.
setVisibility
(
View
.
GONE
);
holder
.
picture
.
setOnClickListener
(
v
->
showPicDialog
());
}
else
{
holder
.
delete
.
setVisibility
(
canDelete
?
View
.
VISIBLE
:
View
.
GONE
);
GlideImageLoader
.
load
(
context
,
list
.
get
(
position
),
holder
.
picture
);
holder
.
delete
.
setVisibility
(
View
.
VISIBLE
);
holder
.
delete
.
setOnClickListener
(
v
->
removeItem
(
position
));
holder
.
picture
.
setOnClickListener
(
v
->
{
ArrayList
temp
=
new
ArrayList
();
...
...
@@ -124,7 +130,7 @@ public class PhotoViewAdapter extends RecyclerView.Adapter<PhotoViewAdapter.Hold
.
hideBottomControls
(
true
)
// 是否显示uCrop工具栏,默认不显示 true or false
.
compressSavePath
(
getPath
())
//压缩图片保存地址
.
previewEggs
(
true
)
// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
// .minimumCompressSize(100)// 小于100
kb的图片不压缩
.
minimumCompressSize
(
2
*
1024
)
// 小于**
kb的图片不压缩
.
synOrAsy
(
true
);
//同步true或异步false 压缩 默认同步、
// .enableCrop(true)//是否裁剪
// .freeStyleCropEnabled(true)
...
...
baseSDK/src/main/java/com/dayu/common/Constants.java
View file @
0f54a19c
...
...
@@ -35,32 +35,32 @@ public class Constants {
/**
* dev环境配置.
*/
public
static
final
int
LOG_LEVEL
=
LogUtils
.
LEVEL_ALL
;
public
static
final
String
ENVIROMENT
=
"debug"
;
public
static
final
String
BASE_URL
=
"http://47.94.101.239:3112"
;
public
final
static
String
UP_PHOTO
=
"/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"
;
public
final
static
String
UP_VIDEO
=
"/file/uploadVideoOne?targetPath=dev/video"
;
public
final
static
String
WEB_SOP
=
"http://47.94.101.239:9004/#/sop"
;
public
final
static
String
CHECK_MULTI_WEB_SOP
=
"http://47.94.101.239:9004/#/manyServiceResult"
;
public
final
static
String
MULTI_WEB_SOP
=
"http://47.94.101.239:9004/#/manySop"
;
public
final
static
String
WEB_SOP_DETAIL
=
"http://47.94.101.239:9004/#/sopdetail"
;
public
final
static
String
WEB_ZHI_SHI
=
"http://47.94.101.239:9004/#/detail"
;
public
static
final
boolean
IS_DEBUG
=
true
;
//
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
//
public static final String ENVIROMENT = "debug";
//
public static final String BASE_URL = "http://47.94.101.239:3112";
//
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
//
public final static String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
//
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
//
public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
//
public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
//
public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
//
public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
//
public static final boolean IS_DEBUG = true;
/**
* uat测试环境配置.
*/
//
public static final String ENVIROMENT = "uat";
//
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
//
public static final String BASE_URL = "http://47.95.223.6:3112";
//
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
//
public final static String UP_VIDEO = "/file/uploadVideoOne?targetPath=test/video";
//
public final static String WEB_SOP = "http://47.95.223.6:9004/#/sop";
//
public final static String WEB_SOP_DETAIL = "http://47.95.223.6:9004/#/sopdetail";
//
public final static String WEB_ZHI_SHI = "http://47.95.223.6:9004/#/detail";
//
public final static String CHECK_MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manyServiceResult";
//
public final static String MULTI_WEB_SOP = "http://47.95.223.6:9004/#/manySop";
//
public static final boolean IS_DEBUG = true;
public
static
final
String
ENVIROMENT
=
"uat"
;
public
static
final
int
LOG_LEVEL
=
LogUtils
.
LEVEL_ALL
;
public
static
final
String
BASE_URL
=
"http://47.95.223.6:3112"
;
public
final
static
String
UP_PHOTO
=
"/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"
;
public
final
static
String
UP_VIDEO
=
"/file/uploadVideoOne?targetPath=test/video"
;
public
final
static
String
WEB_SOP
=
"http://47.95.223.6:9004/#/sop"
;
public
final
static
String
WEB_SOP_DETAIL
=
"http://47.95.223.6:9004/#/sopdetail"
;
public
final
static
String
WEB_ZHI_SHI
=
"http://47.95.223.6:9004/#/detail"
;
public
final
static
String
CHECK_MULTI_WEB_SOP
=
"http://47.95.223.6:9004/#/manyServiceResult"
;
public
final
static
String
MULTI_WEB_SOP
=
"http://47.95.223.6:9004/#/manySop"
;
public
static
final
boolean
IS_DEBUG
=
true
;
/**
* 正式环境.
...
...
@@ -169,6 +169,7 @@ public class Constants {
public
final
static
String
IDS
=
"ids"
;
public
final
static
String
OPERATE_DETAIL
=
"operate_detail"
;
public
final
static
String
CAN_EDIT
=
"can_edit"
;
//订单详情
public
final
static
String
ORDER_DETAIL
=
"order_detail"
;
//数据返回失败标识
...
...
@@ -237,6 +238,7 @@ public class Constants {
public
static
final
String
IS_FORCE
=
"is_force"
;
public
static
final
String
ONLY_VIDEO
=
"only_video"
;
public
static
final
String
NO_WATERMARK
=
"nowatermark"
;
public
static
final
int
CAMERA_CODE
=
100
;
public
static
final
int
CAMERA_IMG
=
101
;
public
static
final
int
CAMERA_VIDEO
=
102
;
...
...
baseSDK/src/main/java/com/dayu/utils/CommonUtils.java
View file @
0f54a19c
...
...
@@ -23,6 +23,7 @@ import com.umeng.socialize.media.UMImage;
import
com.umeng.socialize.media.UMMin
;
import
com.umeng.socialize.media.UMWeb
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
...
...
@@ -301,4 +302,24 @@ public class CommonUtils {
.
setCallback
(
callBack
).
share
();
}
/**
* 获取年月日 格式日期
*/
public
static
String
getYearData
(
String
dataStr
)
{
if
(
TextUtils
.
isEmpty
(
dataStr
)){
return
UIUtils
.
getString
(
R
.
string
.
unknown
);
}
else
{
SimpleDateFormat
df
=
null
;
Date
sDate
=
null
;
try
{
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
sDate
=
df
.
parse
(
dataStr
);
return
df
.
format
(
sDate
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
return
UIUtils
.
getString
(
R
.
string
.
unknown
);
}
}
}
}
baseSDK/src/main/java/com/dayu/widgets/JZMediaIjk.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
widgets
;
import
android.graphics.SurfaceTexture
;
import
android.media.AudioManager
;
import
android.os.Handler
;
import
android.os.HandlerThread
;
import
android.view.Surface
;
import
java.io.IOException
;
import
cn.jzvd.JZMediaInterface
;
import
cn.jzvd.Jzvd
;
import
tv.danmaku.ijk.media.player.IMediaPlayer
;
import
tv.danmaku.ijk.media.player.IjkMediaPlayer
;
import
tv.danmaku.ijk.media.player.IjkTimedText
;
/**
* Created by Nathen on 2017/11/18.
* ijk兼容SO库:https://github.com/NamHofstadter/IjkPlayerSos
* ijk默认不支持https协议,需要的请自行下载so库
*/
public
class
JZMediaIjk
extends
JZMediaInterface
implements
IMediaPlayer
.
OnPreparedListener
,
IMediaPlayer
.
OnVideoSizeChangedListener
,
IMediaPlayer
.
OnCompletionListener
,
IMediaPlayer
.
OnErrorListener
,
IMediaPlayer
.
OnInfoListener
,
IMediaPlayer
.
OnBufferingUpdateListener
,
IMediaPlayer
.
OnSeekCompleteListener
,
IMediaPlayer
.
OnTimedTextListener
{
IjkMediaPlayer
ijkMediaPlayer
;
public
JZMediaIjk
(
Jzvd
jzvd
)
{
super
(
jzvd
);
}
@Override
public
void
start
()
{
if
(
ijkMediaPlayer
!=
null
)
ijkMediaPlayer
.
start
();
}
@Override
public
void
prepare
()
{
release
();
mMediaHandlerThread
=
new
HandlerThread
(
"JZVD"
);
mMediaHandlerThread
.
start
();
mMediaHandler
=
new
Handler
(
mMediaHandlerThread
.
getLooper
());
//主线程还是非主线程,就在这里
handler
=
new
Handler
();
mMediaHandler
.
post
(()
->
{
ijkMediaPlayer
=
new
IjkMediaPlayer
();
ijkMediaPlayer
.
setAudioStreamType
(
AudioManager
.
STREAM_MUSIC
);
////1为硬解 0为软解
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"mediacodec"
,
0
);
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"mediacodec-auto-rotate"
,
1
);
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"mediacodec-handle-resolution-change"
,
1
);
//使用opensles把文件从java层拷贝到native层
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"opensles"
,
0
);
//视频格式
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"overlay-format"
,
IjkMediaPlayer
.
SDL_FCC_RV32
);
//跳帧处理(-1~120)。CPU处理慢时,进行跳帧处理,保证音视频同步
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"framedrop"
,
1
);
//0为一进入就播放,1为进入时不播放
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"start-on-prepared"
,
0
);
////域名检测
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_FORMAT
,
"http-detect-range-support"
,
0
);
//设置是否开启环路过滤: 0开启,画面质量高,解码开销大,48关闭,画面质量差点,解码开销小
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_CODEC
,
"skip_loop_filter"
,
48
);
//最大缓冲大小,单位kb
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"max-buffer-size"
,
1024
*
1024
);
//某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_PLAYER
,
"enable-accurate-seek"
,
1
);
//是否重连
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_FORMAT
,
"reconnect"
,
1
);
//http重定向https
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_FORMAT
,
"dns_cache_clear"
,
1
);
//设置seekTo能够快速seek到指定位置并播放
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_FORMAT
,
"fflags"
,
"fastseek"
);
//播放前的探测Size,默认是1M, 改小一点会出画面更快
ijkMediaPlayer
.
setOption
(
IjkMediaPlayer
.
OPT_CATEGORY_FORMAT
,
"probesize"
,
1024
*
10
);
ijkMediaPlayer
.
setOnPreparedListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnVideoSizeChangedListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnCompletionListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnErrorListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnInfoListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnBufferingUpdateListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnSeekCompleteListener
(
JZMediaIjk
.
this
);
ijkMediaPlayer
.
setOnTimedTextListener
(
JZMediaIjk
.
this
);
try
{
ijkMediaPlayer
.
setDataSource
(
jzvd
.
jzDataSource
.
getCurrentUrl
().
toString
());
ijkMediaPlayer
.
setAudioStreamType
(
AudioManager
.
STREAM_MUSIC
);
ijkMediaPlayer
.
setScreenOnWhilePlaying
(
true
);
ijkMediaPlayer
.
prepareAsync
();
ijkMediaPlayer
.
setSurface
(
new
Surface
(
jzvd
.
textureView
.
getSurfaceTexture
()));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
});
}
@Override
public
void
pause
()
{
ijkMediaPlayer
.
pause
();
}
@Override
public
boolean
isPlaying
()
{
return
ijkMediaPlayer
.
isPlaying
();
}
@Override
public
void
seekTo
(
long
time
)
{
ijkMediaPlayer
.
seekTo
(
time
);
}
@Override
public
void
release
()
{
if
(
mMediaHandler
!=
null
&&
mMediaHandlerThread
!=
null
&&
ijkMediaPlayer
!=
null
)
{
//不知道有没有妖孽
HandlerThread
tmpHandlerThread
=
mMediaHandlerThread
;
IjkMediaPlayer
tmpMediaPlayer
=
ijkMediaPlayer
;
JZMediaInterface
.
SAVED_SURFACE
=
null
;
mMediaHandler
.
post
(()
->
{
tmpMediaPlayer
.
setSurface
(
null
);
tmpMediaPlayer
.
release
();
tmpHandlerThread
.
quit
();
});
ijkMediaPlayer
=
null
;
}
}
@Override
public
long
getCurrentPosition
()
{
return
ijkMediaPlayer
.
getCurrentPosition
();
}
@Override
public
long
getDuration
()
{
if
(
ijkMediaPlayer
==
null
)
return
0
;
return
ijkMediaPlayer
.
getDuration
();
}
@Override
public
void
setVolume
(
float
leftVolume
,
float
rightVolume
)
{
ijkMediaPlayer
.
setVolume
(
leftVolume
,
rightVolume
);
}
@Override
public
void
setSpeed
(
float
speed
)
{
ijkMediaPlayer
.
setSpeed
(
speed
);
}
@Override
public
void
onPrepared
(
IMediaPlayer
iMediaPlayer
)
{
handler
.
post
(()
->
jzvd
.
onPrepared
());
}
@Override
public
void
onVideoSizeChanged
(
IMediaPlayer
iMediaPlayer
,
int
i
,
int
i1
,
int
i2
,
int
i3
)
{
handler
.
post
(()
->
jzvd
.
onVideoSizeChanged
(
iMediaPlayer
.
getVideoWidth
(),
iMediaPlayer
.
getVideoHeight
()));
}
@Override
public
boolean
onError
(
IMediaPlayer
iMediaPlayer
,
final
int
what
,
final
int
extra
)
{
handler
.
post
(()
->
jzvd
.
onError
(
what
,
extra
));
return
true
;
}
@Override
public
boolean
onInfo
(
IMediaPlayer
iMediaPlayer
,
final
int
what
,
final
int
extra
)
{
handler
.
post
(()
->
{
if
(
what
==
IMediaPlayer
.
MEDIA_INFO_VIDEO_ROTATION_CHANGED
)
{
// 这里返回了视频的旋转角度,根据角度旋转视频到正确角度
jzvd
.
textureView
.
setRotation
(
extra
);
}
else
{
jzvd
.
onInfo
(
what
,
extra
);
}
});
return
false
;
}
@Override
public
void
onBufferingUpdate
(
IMediaPlayer
iMediaPlayer
,
final
int
percent
)
{
handler
.
post
(()
->
jzvd
.
setBufferProgress
(
percent
));
}
@Override
public
void
onSeekComplete
(
IMediaPlayer
iMediaPlayer
)
{
handler
.
post
(()
->
jzvd
.
onSeekComplete
());
}
@Override
public
void
onTimedText
(
IMediaPlayer
iMediaPlayer
,
IjkTimedText
ijkTimedText
)
{
}
@Override
public
void
setSurface
(
Surface
surface
)
{
ijkMediaPlayer
.
setSurface
(
surface
);
}
@Override
public
void
onSurfaceTextureAvailable
(
SurfaceTexture
surface
,
int
width
,
int
height
)
{
if
(
SAVED_SURFACE
==
null
)
{
SAVED_SURFACE
=
surface
;
prepare
();
}
else
{
jzvd
.
textureView
.
setSurfaceTexture
(
SAVED_SURFACE
);
}
}
@Override
public
void
onSurfaceTextureSizeChanged
(
SurfaceTexture
surface
,
int
width
,
int
height
)
{
}
@Override
public
boolean
onSurfaceTextureDestroyed
(
SurfaceTexture
surface
)
{
return
false
;
}
@Override
public
void
onSurfaceTextureUpdated
(
SurfaceTexture
surface
)
{
}
@Override
public
void
onCompletion
(
IMediaPlayer
iMediaPlayer
)
{
handler
.
post
(()
->
jzvd
.
onAutoCompletion
());
}
}
baseSDK/src/main/java/com/dayu/widgets/MyJzvdStd.java
View file @
0f54a19c
...
...
@@ -2,8 +2,10 @@ package com.dayu.widgets;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.util.Log
;
import
com.dayu.baselibrary.R
;
import
com.dayu.utils.ToastUtils
;
import
cn.jzvd.JzvdStd
;
...
...
@@ -92,6 +94,19 @@ public class MyJzvdStd extends JzvdStd {
}
}
public
void
setProgressTimes
(
long
progressTimes
)
{
ToastUtils
.
showShortToast
(
"set ptime: "
+
progressTimes
);
mTouchingProgressBar
=
false
;
dismissProgressDialog
();
dismissVolumeDialog
();
dismissBrightnessDialog
();
mediaInterface
.
seekTo
(
progressTimes
);
long
duration
=
getDuration
();
int
progress
=
(
int
)
(
progressTimes
*
100
/
(
duration
==
0
?
1
:
duration
));
progressBar
.
setProgress
(
progress
);
startProgressTimer
();
}
public
void
setPlayCallBack
(
PlayCallBack
callBack
)
{
this
.
callBack
=
callBack
;
...
...
baseSDK/src/main/res/values/strings.xml
View file @
0f54a19c
...
...
@@ -149,6 +149,8 @@
<string
name=
"notice"
>
提示
</string>
<string
name=
"no_permission"
>
没有此权限将无法使用本app,请在设置中打开权限!
</string>
<string
name=
"login_state_no"
>
登录状态已失效,请重新登录!
</string>
<string
name=
"delete_this_video"
>
确定要删除该视频吗?
</string>
<string
name=
"confirm_str"
>
确认
</string>
<string
name=
"login_again"
>
重新登录
</string>
<string
name=
"submit_again"
>
重新提交
</string>
<string
name=
"go_certification"
>
去认证
</string>
...
...
@@ -1008,7 +1010,7 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
<string
name=
"course_detail"
>
课程详情
</string>
<string
name=
"course_puber"
>
发布方:
</string>
<string
name=
"moment_take_photo"
>
轻触拍照, 按住摄像
</string>
<string
name=
"moment_take_video"
>
按住摄像
</stri
ng>
<string
name=
"moment_take_video"
>
点击开始录制
</string>
<string
name=
"moment_permission_4"
>
应用需要录音权限来拍摄视频
</string>
<string
name=
"request_permission_failure"
>
获取权限失败
</string>
...
...
build.gradle
View file @
0f54a19c
...
...
@@ -5,10 +5,10 @@ buildscript {
ext
.
build_tools_version
=
"27.0.3"
ext
.
min_sdk_version
=
16
ext
.
target_sdk_version
=
26
ext
.
version_code
=
2
47
ext
.
verson_name
=
"2.
4.7
"
ext
.
version_code
=
2
50
ext
.
verson_name
=
"2.
5.0
"
ext
.
gradle_version
=
'3.1.4'
ext
.
isReleaseMinify
=
tru
e
ext
.
isReleaseMinify
=
fals
e
ext
.
isDebugMinify
=
false
ext
.
arouter_api_version
=
'1.3.1'
ext
.
arouter_compiler_version
=
'1.1.4'
...
...
camera/src/main/java/com/cjt2325/cameralibrary/CameraInterface.java
View file @
0f54a19c
...
...
@@ -541,9 +541,9 @@ public class CameraInterface implements Camera.PreviewCallback {
mediaRecorder
.
setAudioEncoder
(
MediaRecorder
.
AudioEncoder
.
AAC
);
int
th
=
10
00
;
if
(
ScreenUtils
.
screenWidth
>
700
)
th
=
ScreenUtils
.
screenWidth
;
int
th
=
8
00
;
//
if (ScreenUtils.screenWidth > 700)
//
th = ScreenUtils.screenWidth;
Camera
.
Size
videoSize
;
if
(
mParams
.
getSupportedVideoSizes
()
==
null
)
{
videoSize
=
CameraParamUtil
.
getInstance
().
getPreviewSize
(
mParams
.
getSupportedPreviewSizes
(),
th
,
...
...
@@ -595,11 +595,12 @@ public class CameraInterface implements Camera.PreviewCallback {
}
if
(
DeviceUtil
.
isHuaWeiRongyao
())
{
mediaRecorder
.
setVideoEncodingBitRate
(
4
*
100000
);
}
else
{
mediaRecorder
.
setVideoEncodingBitRate
(
mediaQuality
);
}
// if (DeviceUtil.isHuaWeiRongyao()) {
// mediaRecorder.setVideoEncodingBitRate(4 * 100000);
// } else {
// mediaRecorder.setVideoEncodingBitRate(mediaQuality);
// }
mediaRecorder
.
setVideoEncodingBitRate
(
mediaQuality
);
mediaRecorder
.
setPreviewDisplay
(
surface
);
videoFileName
=
"video_"
+
System
.
currentTimeMillis
()
+
".mp4"
;
...
...
camera/src/main/java/com/cjt2325/cameralibrary/CaptureButton.java
View file @
0f54a19c
...
...
@@ -107,10 +107,14 @@ public class CaptureButton extends View {
center_Y
=
(
button_size
+
outside_add_size
*
2
)
/
2
;
rectF
=
new
RectF
(
center_X
-
(
button_radius
+
outside_add_size
-
strokeWidth
/
2
),
center_Y
-
(
button_radius
+
outside_add_size
-
strokeWidth
/
2
),
center_X
+
(
button_radius
+
outside_add_size
-
strokeWidth
/
2
),
center_Y
+
(
button_radius
+
outside_add_size
-
strokeWidth
/
2
));
// center_X - (button_radius + outside_add_size - strokeWidth / 2),
// center_Y - (button_radius + outside_add_size - strokeWidth / 2),
// center_X + (button_radius + outside_add_size - strokeWidth / 2),
// center_Y + (button_radius + outside_add_size - strokeWidth / 2));
center_X
-
(
button_radius
-
strokeWidth
/
2
),
center_Y
-
(
button_radius
-
strokeWidth
/
2
),
center_X
+
(
button_radius
-
strokeWidth
/
2
),
center_Y
+
(
button_radius
-
strokeWidth
/
2
));
timer
=
new
RecordCountDownTimer
(
duration
,
duration
/
360
);
//录制定时器
}
...
...
@@ -146,15 +150,22 @@ public class CaptureButton extends View {
public
boolean
onTouchEvent
(
MotionEvent
event
)
{
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
LogUtil
.
i
(
"state = "
+
state
);
if
(
event
.
getPointerCount
()
>
1
||
state
!=
STATE_IDLE
)
break
;
event_Y
=
event
.
getY
();
//记录Y值
state
=
STATE_PRESS
;
//修改当前状态为点击按下
//判断按钮状态是否为可录制状态
if
((
button_state
==
BUTTON_STATE_ONLY_RECORDER
||
button_state
==
BUTTON_STATE_BOTH
))
postDelayed
(
longPressRunnable
,
500
);
//同时延长500启动长按后处理的逻辑Runnable
if
(
button_state
==
BUTTON_STATE_ONLY_RECORDER
&&
state
==
STATE_RECORDERING
)
{
timer
.
cancel
();
//停止计时器
recordEnd
();
//录制结束
}
else
{
LogUtil
.
i
(
"state = "
+
state
);
if
(
event
.
getPointerCount
()
>
1
||
state
!=
STATE_IDLE
)
break
;
event_Y
=
event
.
getY
();
//记录Y值
state
=
STATE_PRESS
;
//修改当前状态为点击按下
//判断按钮状态是否为可录制状态
if
(
button_state
==
BUTTON_STATE_ONLY_RECORDER
)
{
postDelayed
(
longPressRunnable
,
0
);
//同时延长500启动长按后处理的逻辑Runnable
}
else
if
((
button_state
==
BUTTON_STATE_ONLY_RECORDER
||
button_state
==
BUTTON_STATE_BOTH
))
postDelayed
(
longPressRunnable
,
500
);
//同时延长500启动长按后处理的逻辑Runnable
}
break
;
case
MotionEvent
.
ACTION_MOVE
:
if
(
captureLisenter
!=
null
...
...
@@ -165,8 +176,10 @@ public class CaptureButton extends View {
}
break
;
case
MotionEvent
.
ACTION_UP
:
//根据当前按钮的状态进行相应的处理
handlerUnpressByState
();
if
(
button_state
!=
BUTTON_STATE_ONLY_RECORDER
)
{
//根据当前按钮的状态进行相应的处理
handlerUnpressByState
();
}
break
;
}
return
true
;
...
...
@@ -324,7 +337,8 @@ public class CaptureButton extends View {
//启动按钮动画,外圆变大,内圆缩小
startRecordAnimation
(
button_outside_radius
,
button_outside_radius
+
outside_add_size
,
button_outside_radius
,
// button_outside_radius + outside_add_size,
button_inside_radius
,
button_inside_radius
-
inside_reduce_size
);
...
...
camera/src/main/java/com/cjt2325/cameralibrary/CaptureLayout.java
View file @
0f54a19c
...
...
@@ -14,6 +14,7 @@ import android.view.WindowManager;
import
android.widget.FrameLayout
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.cjt2325.cameralibrary.listener.CaptureListener
;
import
com.cjt2325.cameralibrary.listener.ClickListener
;
...
...
@@ -57,12 +58,14 @@ public class CaptureLayout extends FrameLayout {
private
ImageView
iv_custom_left
;
//左边自定义按钮
private
ImageView
iv_custom_right
;
//右边自定义按钮
private
TextView
txt_tip
;
//提示文本
private
TextView
txt_tip2
;
//提示文本
private
int
layout_width
;
private
int
layout_height
;
private
int
button_size
;
private
int
iconLeft
=
0
;
private
int
iconRight
=
0
;
private
Context
mContext
;
private
boolean
isFirst
=
true
;
...
...
@@ -72,6 +75,7 @@ public class CaptureLayout extends FrameLayout {
public
CaptureLayout
(
Context
context
,
AttributeSet
attrs
)
{
this
(
context
,
attrs
,
0
);
mContext
=
context
;
}
public
CaptureLayout
(
Context
context
,
AttributeSet
attrs
,
int
defStyleAttr
)
{
...
...
@@ -165,7 +169,8 @@ public class CaptureLayout extends FrameLayout {
if
(
captureLisenter
!=
null
)
{
captureLisenter
.
recordStart
();
}
startAlphaAnimation
();
iv_custom_left
.
setVisibility
(
GONE
);
// startAlphaAnimation();
}
@Override
...
...
@@ -279,6 +284,14 @@ public class CaptureLayout extends FrameLayout {
txt_tip
.
setGravity
(
Gravity
.
CENTER
);
txt_tip
.
setLayoutParams
(
txt_param
);
txt_tip2
=
new
TextView
(
getContext
());
LayoutParams
txt_param2
=
new
LayoutParams
(
LayoutParams
.
MATCH_PARENT
,
LayoutParams
.
WRAP_CONTENT
);
txt_param2
.
gravity
=
Gravity
.
CENTER
;
txt_param2
.
setMargins
(
0
,
0
,
0
,
0
);
txt_tip2
.
setTextColor
(
0xFFFFFFFF
);
txt_tip2
.
setGravity
(
Gravity
.
CENTER
);
txt_tip2
.
setLayoutParams
(
txt_param2
);
this
.
addView
(
btn_capture
);
this
.
addView
(
btn_cancel
);
this
.
addView
(
btn_confirm
);
...
...
@@ -286,6 +299,7 @@ public class CaptureLayout extends FrameLayout {
this
.
addView
(
iv_custom_left
);
this
.
addView
(
iv_custom_right
);
this
.
addView
(
txt_tip
);
this
.
addView
(
txt_tip2
);
}
...
...
@@ -307,19 +321,20 @@ public class CaptureLayout extends FrameLayout {
public
void
startAlphaAnimation
()
{
if
(
isFirst
)
{
ObjectAnimator
animator_txt_tip
=
ObjectAnimator
.
ofFloat
(
txt_tip
,
"alpha"
,
1
f
,
0
f
);
animator_txt_tip
.
setDuration
(
500
);
animator_txt_tip
.
start
();
isFirst
=
false
;
}
//
if (isFirst) {
//
ObjectAnimator animator_txt_tip = ObjectAnimator.ofFloat(txt_tip, "alpha", 1f, 0f);
//
animator_txt_tip.setDuration(500);
//
animator_txt_tip.start();
//
isFirst = false;
//
}
}
public
void
setTextWithAnimation
(
String
tip
)
{
txt_tip
.
setText
(
tip
);
ObjectAnimator
animator_txt_tip
=
ObjectAnimator
.
ofFloat
(
txt_tip
,
"alpha"
,
0
f
,
1
f
,
1
f
,
0
f
);
animator_txt_tip
.
setDuration
(
2500
);
animator_txt_tip
.
start
();
Toast
.
makeText
(
mContext
,
tip
,
Toast
.
LENGTH_SHORT
).
show
();
// txt_tip2.setText(tip);
// ObjectAnimator animator_txt_tip = ObjectAnimator.ofFloat(txt_tip2, "alpha", 0f, 1f, 1f, 0f);
// animator_txt_tip.setDuration(2500);
// animator_txt_tip.start();
}
public
void
setDuration
(
int
duration
)
{
...
...
camera/src/main/java/com/cjt2325/cameralibrary/JCameraView.java
View file @
0f54a19c
...
...
@@ -194,6 +194,8 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
mSwitchCamera
.
setVisibility
(
INVISIBLE
);
mFlashLamp
.
setVisibility
(
INVISIBLE
);
machine
.
record
(
mVideoView
.
getHolder
().
getSurface
(),
screenProp
);
mCaptureLayout
.
setTip
(
"点击结束录制"
);
mCaptureLayout
.
showTip
();
}
@Override
...
...
@@ -207,11 +209,14 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
machine
.
stopRecord
(
true
,
time
);
}
},
1500
-
time
);
mCaptureLayout
.
setTip
(
"点击开始录制"
);
}
@Override
public
void
recordEnd
(
long
time
)
{
machine
.
stopRecord
(
false
,
time
);
mCaptureLayout
.
setTip
(
"录制完成"
);
}
@Override
...
...
@@ -232,6 +237,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
@Override
public
void
cancel
()
{
machine
.
cancle
(
mVideoView
.
getHolder
(),
screenProp
);
mCaptureLayout
.
setTip
(
"点击开始录制"
);
}
@Override
...
...
@@ -517,7 +523,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
});
mMediaPlayer
.
setLooping
(
true
);
mMediaPlayer
.
prepare
();
}
catch
(
IO
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
learnCenter/src/main/java/com/dayu/learncenter/adapter/LearnAdapter.java
View file @
0f54a19c
...
...
@@ -5,12 +5,11 @@ import android.view.View;
import
com.dayu.base.ui.adapter.CoreAdapter
;
import
com.dayu.learncenter.R
;
import
com.dayu.learncenter.api.bean.CommonLearnBean
;
import
com.dayu.learncenter.api.data.StudyCourseData
;
import
com.dayu.learncenter.databinding.ItemCommonLearnBinding
;
import
com.dayu.learncenter.presenter.common_learn.CommonLearnPresenter
;
import
com.dayu.utils.CommonUtils
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.utils.LogUtils
;
import
com.dayu.widgets.JZMediaIjk
;
import
com.dayu.widgets.MyJzvdStd
;
import
cn.jzvd.JzvdStd
;
...
...
@@ -34,21 +33,22 @@ public class LearnAdapter extends CoreAdapter<CommonLearnBean, ItemCommonLearnBi
holder
.
tvTitle
.
setText
(
item
.
getName
());
holder
.
tvLooks
.
setText
(
item
.
getLearners
()
+
""
);
holder
.
tvLike
.
setText
(
item
.
getPoints
()
+
""
);
if
(
type
==
2
){
holder
.
tvDate
.
setText
(
"发布时间 "
+
CommonUtils
.
getYearData
(
item
.
getCreateTime
()));
if
(
type
==
2
)
{
holder
.
tvProgress
.
setVisibility
(
View
.
VISIBLE
);
holder
.
tvProgress
.
setText
(
mContext
.
getString
(
R
.
string
.
learn_progress
)
+
item
.
getProgressPercentage
()+
"%"
);
holder
.
tvProgress
.
setText
(
mContext
.
getString
(
R
.
string
.
learn_progress
)
+
item
.
getProgressPercentage
()
+
"%"
);
}
holder
.
tvDisable
.
setVisibility
(
type
==
3
&&
item
.
getStatus
()
!=
1
?
View
.
VISIBLE
:
View
.
GONE
);
holder
.
ivLike
.
setImageResource
(
item
.
getPointStatus
()
==
1
?
R
.
drawable
.
icon_like_red
:
R
.
drawable
.
icon_like_gray
);
holder
.
tvDisable
.
setVisibility
(
type
==
3
&&
item
.
getStatus
()
!=
1
?
View
.
VISIBLE
:
View
.
GONE
);
holder
.
jzVideo
.
setUp
(
item
.
getUrl
(),
""
,
JzvdStd
.
SCREEN_NORMAL
);
holder
.
jzVideo
.
setUp
(
item
.
getUrl
(),
""
,
JzvdStd
.
SCREEN_NORMAL
,
JZMediaIjk
.
class
);
CommonUtils
.
setVideoThumb
(
mContext
,
holder
.
jzVideo
,
item
.
getUrl
());
holder
.
jzVideo
.
setPlayCallBack
(
new
MyJzvdStd
.
PlayCallBack
()
{
@Override
public
void
onstart
()
{
if
(
item
.
getPlayStatus
()
==
2
&&
item
.
getProgressTimes
()
>
0
)
{
if
(
item
.
getPlayStatus
()
==
2
&&
item
.
getProgressTimes
()
>
0
)
{
holder
.
jzVideo
.
seekToInAdvance
=
item
.
getProgressTimes
();
}
LogUtils
.
e
(
"videoState start "
+
item
.
getId
());
holder
.
rlCover
.
setVisibility
(
View
.
GONE
);
if
(
item
.
getPlayStatus
()
!=
2
&&
item
.
getPlayStatus
()
!=
3
)
mPresenter
.
studyCourse
(
item
.
getId
(),
0
,
0
,
1
);
...
...
@@ -56,21 +56,18 @@ public class LearnAdapter extends CoreAdapter<CommonLearnBean, ItemCommonLearnBi
@Override
public
void
onPrepare
()
{
LogUtils
.
e
(
"videoState prepa3 "
+
item
.
getId
());
holder
.
rlCover
.
setVisibility
(
View
.
VISIBLE
);
}
@Override
public
void
onPause
()
{
LogUtils
.
e
(
"videoState pause: "
+
item
.
getId
()
+
" "
+
holder
.
jzVideo
.
curProgress
+
" "
+
holder
.
jzVideo
.
curPosition
+
" "
+
holder
.
jzVideo
.
getDuration
());
item
.
setProgressTimes
(
holder
.
jzVideo
.
curPosition
);
if
(
item
.
getPlayStatus
()
!=
3
)
mPresenter
.
studyCourse
(
item
.
getId
(),
holder
.
jzVideo
.
curProgress
,
holder
.
jzVideo
.
curPosition
,
2
);
}
@Override
public
void
onComplete
()
{
LogUtils
.
e
(
"videoState complete"
);
if
(
item
.
getPlayStatus
()
!=
3
)
mPresenter
.
studyCourse
(
item
.
getId
(),
100
,
holder
.
jzVideo
.
getDuration
(),
3
);
}
...
...
learnCenter/src/main/java/com/dayu/learncenter/api/LearnService.java
View file @
0f54a19c
...
...
@@ -67,7 +67,7 @@ public interface LearnService {
* @return
*/
@GET
(
Constants
.
API_7900
+
"/courses/all"
)
Observable
<
BaseResponse
<
BasePageBean
<
CommonLearnBean
>>>
getAllCourse
(
@Query
(
"engin
n
erId"
)
int
enginnerId
,
Observable
<
BaseResponse
<
BasePageBean
<
CommonLearnBean
>>>
getAllCourse
(
@Query
(
"engin
e
erId"
)
int
enginnerId
,
@Query
(
"key"
)
String
key
,
@Query
(
"page"
)
int
page
,
@Query
(
"pageSize"
)
int
pageSize
);
...
...
@@ -79,7 +79,7 @@ public interface LearnService {
* @return
*/
@GET
(
Constants
.
API_7900
+
"/courses/learn"
)
Observable
<
BaseResponse
<
BasePageBean
<
CommonLearnBean
>>>
getLearnedCourse
(
@Query
(
"engin
n
erId"
)
int
enginnerId
,
Observable
<
BaseResponse
<
BasePageBean
<
CommonLearnBean
>>>
getLearnedCourse
(
@Query
(
"engin
e
erId"
)
int
enginnerId
,
@Query
(
"key"
)
String
key
,
@Query
(
"page"
)
int
page
,
@Query
(
"pageSize"
)
int
pageSize
);
...
...
learnCenter/src/main/java/com/dayu/learncenter/api/bean/CommonLearnBean.java
View file @
0f54a19c
...
...
@@ -45,6 +45,25 @@ public class CommonLearnBean {
private
int
status
;
private
int
type
;
private
String
url
;
private
int
pointStatus
;
private
int
firstUrl
;
public
int
getPointStatus
()
{
return
pointStatus
;
}
public
void
setPointStatus
(
int
pointStatus
)
{
this
.
pointStatus
=
pointStatus
;
}
public
int
getFirstUrl
()
{
return
firstUrl
;
}
public
void
setFirstUrl
(
int
firstUrl
)
{
this
.
firstUrl
=
firstUrl
;
}
public
String
getBrief
()
{
return
brief
;
...
...
learnCenter/src/main/java/com/dayu/learncenter/presenter/pubcourse/PubCoursePresenter.java
View file @
0f54a19c
...
...
@@ -52,11 +52,14 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
}
public
void
pubVideo
(
String
videoPath
,
PubCourseData
data
)
{
LogUtil
.
e
(
"pugVideo 00"
);
// ToastUtils.showShortToast("length: "+CommonUtils.getVideoLength(videoPath));
mPubData
=
data
;
if
(!
TextUtils
.
isEmpty
(
data
.
url
))
if
(!
TextUtils
.
isEmpty
(
data
.
url
))
{
videoUrl
=
data
.
url
;
}
if
(
TextUtils
.
isEmpty
(
videoUrl
))
{
LogUtil
.
e
(
"pugVideo 01 "
+
videoPath
);
uploadVideo
(
videoPath
,
false
);
}
else
{
pubCourse
();
...
...
@@ -69,7 +72,13 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
videoUrl
=
videoPath
;
if
(
TextUtils
.
isEmpty
(
videoUrl
))
{
mPubData
.
courseTimes
=
CommonUtils
.
getVideoLength
(
videoPath
);
uploadVideo
(
videoPath
,
true
);
try
{
uploadVideo
(
videoPath
,
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
LogUtil
.
e
(
"pugVideo error "
+
e
.
toString
());
}
}
else
{
modifyCourse
();
}
...
...
@@ -78,9 +87,13 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
private
void
uploadVideo
(
String
videoPath
,
boolean
isModify
)
{
mView
.
showDialog
();
File
file
=
new
File
(
videoPath
);
LogUtil
.
e
(
"pugVideo 02 "
+
file
.
length
()+
" "
+
file
.
getName
());
RequestBody
requestFile
=
RequestBody
.
create
(
MediaType
.
parse
(
"multipart/form-data"
),
file
);
LogUtil
.
e
(
"pugVideo 020 "
+
requestFile
);
MultipartBody
.
Part
body
=
MultipartBody
.
Part
.
createFormData
(
"fileUpload"
,
file
.
getName
(),
requestFile
);
LogUtil
.
e
(
"pugVideo 021 "
+
body
);
BaseApiFactory
.
uploadVideo
(
body
).
subscribe
(
baseObserver
(
data
->
{
LogUtil
.
e
(
"pugVideo 022 "
);
if
(!
TextUtils
.
isEmpty
(
data
))
{
videoUrl
=
data
;
if
(
isModify
){
...
...
@@ -95,6 +108,7 @@ public class PubCoursePresenter extends PubCourseContract.Presenter {
}
private
void
pubCourse
()
{
LogUtil
.
e
(
"pugVideo 03"
);
mView
.
showDialog
();
mPubData
.
url
=
videoUrl
;
Api
.
getService
(
LearnService
.
class
).
pubCourse
(
mPubData
).
compose
(
Api
.
applySchedulers
())
...
...
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/CourseDetailActivity.java
View file @
0f54a19c
package
com
.
dayu
.
learncenter
.
ui
.
activity
;
import
android.annotation.SuppressLint
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.text.TextUtils
;
import
android.view.View
;
...
...
@@ -21,14 +19,15 @@ import com.dayu.learncenter.api.LearnService;
import
com.dayu.learncenter.api.bean.CourseDeatilBean
;
import
com.dayu.learncenter.databinding.ActivityCourseDetailBinding
;
import
com.dayu.utils.CommonUtils
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.utils.ProgressUtil
;
import
com.dayu.widgets.JZMediaIjk
;
import
com.dayu.widgets.KeyboardStateObserver
;
import
java.util.ArrayList
;
import
java.util.List
;
import
cn.jzvd.Jzvd
;
import
cn.jzvd.JzvdStd
;
/**
* 课程详情
...
...
@@ -60,10 +59,23 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
mBind
.
titleBack
.
setOnClickListener
(
v
->
dumpBack
());
mBind
.
ivLike
.
setOnClickListener
(
v
->
pointVideo
());
courseId
=
getBundle
().
getInt
(
Constants
.
ID
,
0
);
showDialog
();
initData
();
getCommentData
();
initCommentAdapter
();
initCommentListener
();
initRefreshView
();
}
//下拉刷新
private
void
initRefreshView
()
{
mBind
.
refreshLayout
.
setEnableLoadMore
(
false
);
mBind
.
refreshLayout
.
setOnRefreshListener
(
refreshLayout
->
{
page
=
1
;
initData
();
});
mBind
.
refreshLayout
.
setOnLoadMoreListener
(
refreshLayout
->
{
initData
();
});
}
//点赞
...
...
@@ -90,6 +102,9 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
private
void
initData
()
{
Api
.
getService
(
LearnService
.
class
).
getCourseDetail
(
courseId
,
mUserId
).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
mPresenter
.
baseObserver
(
data
->
setDetailData
(
data
)));
getCommentData
();
}
private
void
setDetailData
(
CourseDeatilBean
data
)
{
...
...
@@ -99,8 +114,9 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
mBind
.
tvTheme
.
setText
(
data
.
getName
());
mBind
.
tvDesc
.
setText
(
data
.
getBrief
());
mBind
.
tvPuber
.
setText
(
data
.
getCreated
());
mBind
.
jzVideo
.
setUp
(
data
.
getUrl
(),
""
);
mBind
.
jzVideo
.
setUp
(
data
.
getUrl
(),
""
,
JzvdStd
.
SCREEN_NORMAL
,
JZMediaIjk
.
class
);
CommonUtils
.
setVideoThumb
(
mActivity
,
mBind
.
jzVideo
,
data
.
getUrl
());
steVideoListener
();
mBind
.
tvLooks
.
setText
(
data
.
getLearners
()
+
""
);
mBind
.
tvLike
.
setText
(
pointNum
+
""
);
if
(
data
.
getCoursePointsVO
()
!=
null
&&
data
.
getCoursePointsVO
().
getPointStatus
()
==
1
)
{
...
...
@@ -120,6 +136,10 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
}
}
//播放监听
private
void
steVideoListener
()
{
}
private
void
initCommentAdapter
()
{
mCommentAdapter
=
new
CommentAdapter
(
false
);
mCommentAdapter
.
setData
(
commentList
);
...
...
@@ -141,7 +161,7 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
@Override
public
void
onKeyboardHide
()
{
weakHandler
.
postDelayed
(()
->
{
mBind
.
btnComment
.
setVisibility
(
View
.
VISIBLE
);
//
mBind.btnComment.setVisibility(View.VISIBLE);
},
100
);
}
});
...
...
@@ -223,6 +243,12 @@ public class CourseDetailActivity extends BaseActivity<SImplePresenter, Activity
}
@Override
public
void
onPause
()
{
super
.
onPause
();
JzvdStd
.
goOnPlayOnPause
();
}
@Override
public
void
onBackPressed
()
{
if
(!
Jzvd
.
backPress
())
{
super
.
onBackPressed
();
...
...
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/EditCourseActivity.java
View file @
0f54a19c
...
...
@@ -12,15 +12,15 @@ import com.dayu.common.Constants;
import
com.dayu.learncenter.R
;
import
com.dayu.learncenter.api.bean.CourseDeatilBean
;
import
com.dayu.learncenter.api.data.EditCourseData
;
import
com.dayu.learncenter.api.data.PubCourseData
;
import
com.dayu.learncenter.databinding.ActivityPubCourseBinding
;
import
com.dayu.learncenter.presenter.pubcourse.PubCourseContract
;
import
com.dayu.learncenter.presenter.pubcourse.PubCoursePresenter
;
import
com.dayu.utils.CommonUtils
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.utils.MPermissionUtils
;
import
com.dayu.utils.MediaChooseUtils
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.widgets.CustomDialog
;
import
com.dayu.widgets.JZMediaIjk
;
import
com.dayu.widgets.TextDialog
;
import
com.luck.picture.lib.PictureSelector
;
import
com.luck.picture.lib.config.PictureConfig
;
...
...
@@ -32,6 +32,7 @@ import java.util.List;
import
java.util.concurrent.TimeUnit
;
import
cn.jzvd.Jzvd
;
import
cn.jzvd.JzvdStd
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
...
...
@@ -62,6 +63,7 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
setListener
();
courseId
=
getBundle
().
getInt
(
Constants
.
ID
,
0
);
mBind
.
tvTitle
.
setText
(
R
.
string
.
course_detail
);
mBind
.
btnDelete
.
setVisibility
(
View
.
VISIBLE
);
mBind
.
btnCancle
.
setText
(
""
);
setInitState
();
mPresenter
.
getCourseDetail
(
courseId
);
...
...
@@ -70,7 +72,8 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
private
void
setListener
()
{
mBind
.
titleBack
.
setOnClickListener
(
view
->
dumpBack
());
mBind
.
btnCancle
.
setOnClickListener
(
view
->
onCancleClick
());
mBind
.
btnCancle
.
setOnClickListener
(
view
->
changeVideoStatus
(
false
));
mBind
.
btnDelete
.
setOnClickListener
(
view
->
showDeleteDialog
());
mBind
.
btnConfirm
.
setOnClickListener
(
view
->
onConfimClick
());
mBind
.
rlVideo
.
setOnClickListener
(
v
->
{
if
(
canEdit
&&
TextUtils
.
isEmpty
(
videoPath
))
{
...
...
@@ -84,6 +87,22 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
mBind
.
jzVideo
.
setOnClickListener
(
v
->
showToast
(
"click"
));
}
//删除视频提示框
private
void
showDeleteDialog
()
{
CustomDialog
mDialog
=
new
CustomDialog
(
mActivity
,
R
.
style
.
CustomDialog
,
getString
(
com
.
dayu
.
baselibrary
.
R
.
string
.
delete_this_video
)
,
(
dialog
,
confirm
)
->
{
if
(
confirm
)
{
changeVideoStatus
(
true
);
}
dialog
.
dismiss
();
});
mDialog
.
setPositiveButton
(
getString
(
R
.
string
.
confirm_str
))
.
setNegativeButton
(
getString
(
R
.
string
.
cancle
))
.
setOneButton
(
false
);
mDialog
.
show
();
}
//设置控件的基本状态
private
void
setInitState
()
{
...
...
@@ -97,15 +116,19 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
}
}
private
void
onCancleClick
(
)
{
private
void
changeVideoStatus
(
boolean
isDelete
)
{
if
(
canSubmit
()
&&
courseDetail
!=
null
){
Jzvd
.
goOnPlayOnPause
();
EditCourseData
editData
=
new
EditCourseData
(
mUserId
,
theme
,
desc
,
mUserInfo
.
getAccountName
(),
courseDetail
.
getCourseTimes
());
editData
.
id
=
courseId
;
if
(
courseDetail
.
getStatus
()
==
1
){
editData
.
status
=
2
;
if
(
isDelete
){
editData
.
status
=
3
;
}
else
{
editData
.
status
=
1
;
if
(
courseDetail
.
getStatus
()
==
1
){
editData
.
status
=
2
;
}
else
{
editData
.
status
=
1
;
}
}
mPresenter
.
editVideo
(
videoPath
,
editData
);
}
...
...
@@ -163,14 +186,13 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
//录制视频
private
void
recordVideo
()
{
String
[]
mPerArr
=
new
String
[]{
Manifest
.
permission
.
RECORD_AUDIO
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
CAMERA
};
String
[]
mPerArr
=
new
String
[]{
Manifest
.
permission
.
RECORD_AUDIO
};
MPermissionUtils
.
requestPermissionsResult
(
mActivity
,
1
,
mPerArr
,
new
MPermissionUtils
.
OnPermissionListener
()
{
@SuppressLint
(
"CheckResult"
)
@Override
public
void
onPermissionGranted
()
{
Observable
.
timer
(
5
00
,
TimeUnit
.
MILLISECONDS
)
Observable
.
timer
(
10
00
,
TimeUnit
.
MILLISECONDS
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
aLong
->
{
Intent
intent
=
new
Intent
(
EditCourseActivity
.
this
,
CameraActivity
.
class
);
...
...
@@ -238,12 +260,18 @@ public class EditCourseActivity extends BaseActivity<PubCoursePresenter, Activit
}
else
{
mBind
.
ivDelete
.
setVisibility
(
View
.
VISIBLE
);
mBind
.
jzVideo
.
setVisibility
(
View
.
VISIBLE
);
mBind
.
jzVideo
.
setUp
(
videoPath
,
""
);
mBind
.
jzVideo
.
setUp
(
videoPath
,
""
,
JzvdStd
.
SCREEN_NORMAL
,
JZMediaIjk
.
class
);
CommonUtils
.
setVideoThumb
(
mActivity
,
mBind
.
jzVideo
,
videoPath
);
}
}
@Override
public
void
onPause
()
{
super
.
onPause
();
JzvdStd
.
goOnPlayOnPause
();
}
@Override
public
void
onBackPressed
()
{
if
(!
Jzvd
.
backPress
())
{
super
.
onBackPressed
();
...
...
learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PubCourseActivity.java
View file @
0f54a19c
...
...
@@ -35,6 +35,7 @@ import java.util.List;
import
java.util.concurrent.TimeUnit
;
import
cn.jzvd.Jzvd
;
import
cn.jzvd.JzvdStd
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
...
...
@@ -46,6 +47,7 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity
private
String
theme
;
private
String
desc
;
private
String
videoPath
;
private
int
audioPermission
=
11
;
@Override
...
...
@@ -62,6 +64,16 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity
public
void
initView
()
{
initUser
();
setListener
();
String
[]
mPerArr
=
new
String
[]{
Manifest
.
permission
.
RECORD_AUDIO
};
MPermissionUtils
.
requestPermissionsResult
(
mActivity
,
10
,
mPerArr
,
new
MPermissionUtils
.
OnPermissionListener
()
{
@SuppressLint
(
"CheckResult"
)
@Override
public
void
onPermissionGranted
()
{
}
@Override
public
void
onPermissionDenied
()
{
}
});
}
...
...
@@ -100,14 +112,13 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity
//录制视频
private
void
recordVideo
()
{
String
[]
mPerArr
=
new
String
[]{
Manifest
.
permission
.
RECORD_AUDIO
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
CAMERA
};
String
[]
mPerArr
=
new
String
[]{
Manifest
.
permission
.
RECORD_AUDIO
};
MPermissionUtils
.
requestPermissionsResult
(
mActivity
,
1
,
mPerArr
,
new
MPermissionUtils
.
OnPermissionListener
()
{
@SuppressLint
(
"CheckResult"
)
@Override
public
void
onPermissionGranted
()
{
Observable
.
timer
(
5
00
,
TimeUnit
.
MILLISECONDS
)
Observable
.
timer
(
10
00
,
TimeUnit
.
MILLISECONDS
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
aLong
->
{
Intent
intent
=
new
Intent
(
PubCourseActivity
.
this
,
CameraActivity
.
class
);
...
...
@@ -190,6 +201,12 @@ public class PubCourseActivity extends BaseActivity<PubCoursePresenter, Activity
}
@Override
public
void
onPause
()
{
super
.
onPause
();
JzvdStd
.
goOnPlayOnPause
();
}
@Override
public
void
onBackPressed
()
{
if
(!
Jzvd
.
backPress
())
{
super
.
onBackPressed
();
...
...
learnCenter/src/main/java/com/dayu/learncenter/ui/fragment/CommonLearnFragment.java
View file @
0f54a19c
...
...
@@ -131,7 +131,7 @@ public class CommonLearnFragment extends BaseFragment<CommonLearnPresenter, Frag
if
(
jzvd
!=
null
&&
Jzvd
.
CURRENT_JZVD
!=
null
&&
jzvd
.
jzDataSource
.
containsTheUrl
(
Jzvd
.
CURRENT_JZVD
.
jzDataSource
.
getCurrentUrl
()))
{
if
(
Jzvd
.
CURRENT_JZVD
!=
null
&&
Jzvd
.
CURRENT_JZVD
.
screen
!=
Jzvd
.
SCREEN_FULLSCREEN
)
{
Jzvd
.
goOnPlayOnPause
();
Jzvd
.
releaseAllVideos
();
}
}
}
...
...
learnCenter/src/main/res/layout/activity_course_detail.xml
View file @
0f54a19c
...
...
@@ -91,7 +91,7 @@
android:layout_height=
"180dp"
android:layout_marginTop=
"15dp"
>
<c
n.jzvd.
JzvdStd
<c
om.dayu.widgets.My
JzvdStd
android:id=
"@+id/jz_video"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
...
...
@@ -128,18 +128,20 @@
android:paddingLeft=
"5dp"
android:text=
"0"
/>
<Image
View
<Image
Button
android:id=
"@+id/iv_like"
android:layout_width=
"18dp"
android:layout_height=
"18dp"
android:layout_marginLeft=
"10dp"
android:layout_width=
"40dp"
android:layout_height=
"match_parent"
android:layout_marginLeft=
"5dp"
android:background=
"@color/transparent"
android:src=
"@drawable/icon_like_gray"
/>
<TextView
android:id=
"@+id/tv_like"
style=
"@style/common_text_style"
android:layout_marginRight=
"10dp"
android:paddingLeft=
"5dp"
android:layout_height=
"match_parent"
android:gravity=
"center"
android:text=
"0"
/>
</LinearLayout>
...
...
@@ -200,6 +202,7 @@
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<Button
android:visibility=
"gone"
android:id=
"@+id/btn_comment"
android:layout_width=
"match_parent"
android:layout_height=
"40dp"
...
...
learnCenter/src/main/res/layout/activity_pub_course.xml
View file @
0f54a19c
...
...
@@ -162,6 +162,15 @@
android:text=
"@string/cancle"
/>
<Button
android:visibility=
"gone"
android:id=
"@+id/btn_delete"
style=
"@style/btn_common_gray"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_marginLeft=
"25dp"
android:text=
"@string/delete_str"
/>
<Button
android:id=
"@+id/btn_confirm"
android:layout_marginLeft=
"25dp"
style=
"@style/btn_common_blue"
...
...
learnCenter/src/main/res/layout/item_common_learn.xml
View file @
0f54a19c
...
...
@@ -45,7 +45,7 @@
android:layout_centerHorizontal=
"true"
android:layout_marginTop=
"130dp"
android:height=
"36dp"
android:background=
"#
80
ffffff"
android:background=
"#
99
ffffff"
android:gravity=
"center"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
...
...
@@ -55,7 +55,7 @@
android:id=
"@+id/tv_disable"
style=
"@style/common_text_style"
android:height=
"36dp"
android:background=
"#
80
ffffff"
android:background=
"#
99
ffffff"
android:gravity=
"center"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
...
...
learnCenter/src/main/res/values/strings.xml
View file @
0f54a19c
...
...
@@ -12,4 +12,5 @@
<string
name=
"enable_video"
>
上架
</string>
<string
name=
"learn_progress"
>
学习进度
</string>
<string
name=
"already_disable"
>
已下架
</string>
<string
name=
"delete_str"
>
删除
</string>
</resources>
managercenter/src/main/java/com/dayu/managercenter/ui/activity/CreateOrderActivity.java
View file @
0f54a19c
...
...
@@ -506,7 +506,11 @@ public class CreateOrderActivity extends BaseActivity<CreateOrderPresenter, Acti
if
(
selectList
!=
null
&&
selectList
.
size
()
>
0
)
{
mImages
.
remove
(
"add"
);
for
(
int
a
=
0
;
a
<
selectList
.
size
();
a
++)
{
mImages
.
add
(
selectList
.
get
(
a
).
getCompressPath
());
if
(!
TextUtils
.
isEmpty
(
selectList
.
get
(
a
).
getCompressPath
())){
mImages
.
add
(
selectList
.
get
(
a
).
getCompressPath
());
}
else
{
mImages
.
add
(
selectList
.
get
(
a
).
getPath
());
}
}
if
(
mImages
.
size
()
<
10
)
{
mImages
.
add
(
"add"
);
...
...
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
View file @
0f54a19c
...
...
@@ -13,7 +13,8 @@ import com.dayu.order.api.protocol.OperateInfo;
import
com.dayu.order.api.protocol.Order
;
import
com.dayu.order.api.protocol.OrderDetail
;
import
com.dayu.order.api.protocol.OrderPart
;
import
com.dayu.order.api.protocol.OrderPartBean
;
import
com.dayu.order.api.protocol.bean.OrderPardDeatilBean
;
import
com.dayu.order.api.protocol.bean.OrderPartBean
;
import
com.dayu.order.api.protocol.Pay
;
import
com.dayu.order.api.protocol.ServerInstruction
;
import
com.dayu.order.api.protocol.ShipperCompany
;
...
...
@@ -22,7 +23,11 @@ import com.dayu.order.api.protocol.SopResult;
import
com.dayu.order.api.protocol.Spu
;
import
com.dayu.order.api.protocol.Tab
;
import
com.dayu.order.api.protocol.TranCompanyBean
;
import
com.dayu.order.api.protocol.bean.ServiceProviderBean
;
import
com.dayu.order.api.protocol.bean.ServiceStationBean
;
import
com.dayu.order.api.protocol.companyManager
;
import
com.dayu.order.api.protocol.data.ReceivePartData
;
import
com.dayu.order.api.protocol.data.SendPartData
;
import
com.dayu.order.common.OrderConstant
;
import
java.util.List
;
...
...
@@ -443,6 +448,7 @@ public interface OrderService {
/**
* 备件物流列表
* @param sendType 1服务商给师傅发货 2师傅给服务商发货
*/
@GET
(
Constants
.
API_7200
+
"/ordersLogistics"
)
Observable
<
BaseResponse
<
BasePageBean
<
OrderPartBean
>>>
getOrderPartList
(
@Query
(
"orderId"
)
int
orderId
,
...
...
@@ -454,4 +460,34 @@ public interface OrderService {
*/
@GET
(
Constants
.
API_7300
+
"/logisticsTraceInfo/logisticsCode/{code}"
)
Observable
<
BaseResponse
<
TranCompanyBean
>>
getTransCompany
(
@Path
(
"code"
)
String
code
);
/**
* 查询服务商信息
*/
@GET
(
Constants
.
API_7100
+
"/serviceProviderInfo/queryProviderInfo/id/{id}"
)
Observable
<
BaseResponse
<
ServiceProviderBean
>>
getServiceProvider
(
@Path
(
"id"
)
int
siteId
);
/**
* 查询服务站信息
*/
@GET
(
Constants
.
API_7100
+
"/serviceProviderSite/get/{id}"
)
Observable
<
BaseResponse
<
ServiceStationBean
>>
getServiceStation
(
@Path
(
"id"
)
int
providerId
);
/**
* 工单向商家发送备件
*/
@POST
(
Constants
.
API_7200
+
"/ordersLogistics"
)
Observable
<
BaseResponse
<
Boolean
>>
sendPart
(
@Body
SendPartData
data
);
/**
* 备件收货
*/
@PUT
(
Constants
.
API_7200
+
"/ordersLogistics"
)
Observable
<
BaseResponse
<
Boolean
>>
receivePart
(
@Body
ReceivePartData
data
);
/**
* 备件物流详情
*/
@GET
(
Constants
.
API_7200
+
"/ordersLogistics/{id}"
)
Observable
<
BaseResponse
<
OrderPardDeatilBean
>>
getPartDetail
(
@Path
(
"id"
)
int
id
);
}
orderCenter/src/main/java/com/dayu/order/api/protocol/OrderDetail.java
View file @
0f54a19c
...
...
@@ -80,6 +80,15 @@ public class OrderDetail implements Serializable {
private
String
createdProvider
;
private
double
price
;
private
double
subsidyPrice
;
private
int
createProviderId
;
public
int
getCreateProviderId
()
{
return
createProviderId
;
}
public
void
setCreateProviderId
(
int
createProviderId
)
{
this
.
createProviderId
=
createProviderId
;
}
public
double
getSubsidyPrice
()
{
return
subsidyPrice
;
...
...
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/OrderPardDeatilBean.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
api
.
protocol
.
bean
;
import
java.util.List
;
public
class
OrderPardDeatilBean
{
/**
* comment : string
* courierCompany : string
* courierNumber : string
* createTime : 2020-04-26T10:52:12.608Z
* id : 0
* orderId : 0
* pics : [{"id":0,"orderLogisticsId":0,"picUrl":"string"}]
* receiveOrg : string
* receiveTime : 2020-04-26T10:52:12.608Z
* receiverAddress : string
* receiverMobile : string
* receiverName : string
* sendId : 0
* sendItems : string
* sendMobile : string
* sendName : string
* sendType : 0
* shipperCode : string
* status : 0
*/
private
String
comment
;
private
String
courierCompany
;
private
String
courierNumber
;
private
String
createTime
;
private
int
id
;
private
int
orderId
;
private
String
receiveOrg
;
private
String
receiveTime
;
private
String
receiverAddress
;
private
String
receiverMobile
;
private
String
receiverName
;
private
int
sendId
;
private
String
sendItems
;
private
String
sendMobile
;
private
String
sendName
;
private
int
sendType
;
private
String
shipperCode
;
private
int
status
;
private
List
<
PicsBean
>
pics
;
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
public
String
getCourierCompany
()
{
return
courierCompany
;
}
public
void
setCourierCompany
(
String
courierCompany
)
{
this
.
courierCompany
=
courierCompany
;
}
public
String
getCourierNumber
()
{
return
courierNumber
;
}
public
void
setCourierNumber
(
String
courierNumber
)
{
this
.
courierNumber
=
courierNumber
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
int
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getReceiveOrg
()
{
return
receiveOrg
;
}
public
void
setReceiveOrg
(
String
receiveOrg
)
{
this
.
receiveOrg
=
receiveOrg
;
}
public
String
getReceiveTime
()
{
return
receiveTime
;
}
public
void
setReceiveTime
(
String
receiveTime
)
{
this
.
receiveTime
=
receiveTime
;
}
public
String
getReceiverAddress
()
{
return
receiverAddress
;
}
public
void
setReceiverAddress
(
String
receiverAddress
)
{
this
.
receiverAddress
=
receiverAddress
;
}
public
String
getReceiverMobile
()
{
return
receiverMobile
;
}
public
void
setReceiverMobile
(
String
receiverMobile
)
{
this
.
receiverMobile
=
receiverMobile
;
}
public
String
getReceiverName
()
{
return
receiverName
;
}
public
void
setReceiverName
(
String
receiverName
)
{
this
.
receiverName
=
receiverName
;
}
public
int
getSendId
()
{
return
sendId
;
}
public
void
setSendId
(
int
sendId
)
{
this
.
sendId
=
sendId
;
}
public
String
getSendItems
()
{
return
sendItems
;
}
public
void
setSendItems
(
String
sendItems
)
{
this
.
sendItems
=
sendItems
;
}
public
String
getSendMobile
()
{
return
sendMobile
;
}
public
void
setSendMobile
(
String
sendMobile
)
{
this
.
sendMobile
=
sendMobile
;
}
public
String
getSendName
()
{
return
sendName
;
}
public
void
setSendName
(
String
sendName
)
{
this
.
sendName
=
sendName
;
}
public
int
getSendType
()
{
return
sendType
;
}
public
void
setSendType
(
int
sendType
)
{
this
.
sendType
=
sendType
;
}
public
String
getShipperCode
()
{
return
shipperCode
;
}
public
void
setShipperCode
(
String
shipperCode
)
{
this
.
shipperCode
=
shipperCode
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
List
<
PicsBean
>
getPics
()
{
return
pics
;
}
public
void
setPics
(
List
<
PicsBean
>
pics
)
{
this
.
pics
=
pics
;
}
public
static
class
PicsBean
{
/**
* id : 0
* orderLogisticsId : 0
* picUrl : string
*/
private
int
id
;
private
int
orderLogisticsId
;
private
String
picUrl
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getOrderLogisticsId
()
{
return
orderLogisticsId
;
}
public
void
setOrderLogisticsId
(
int
orderLogisticsId
)
{
this
.
orderLogisticsId
=
orderLogisticsId
;
}
public
String
getPicUrl
()
{
return
picUrl
;
}
public
void
setPicUrl
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
}
}
}
orderCenter/src/main/java/com/dayu/order/api/protocol/OrderPartBean.java
→
orderCenter/src/main/java/com/dayu/order/api/protocol/
bean/
OrderPartBean.java
View file @
0f54a19c
package
com
.
dayu
.
order
.
api
.
protocol
;
package
com
.
dayu
.
order
.
api
.
protocol
.
bean
;
public
class
OrderPartBean
{
...
...
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/ServiceProviderBean.java
0 → 100644
View file @
0f54a19c
This diff is collapsed.
Click to expand it.
orderCenter/src/main/java/com/dayu/order/api/protocol/bean/ServiceStationBean.java
0 → 100644
View file @
0f54a19c
This diff is collapsed.
Click to expand it.
orderCenter/src/main/java/com/dayu/order/api/protocol/data/ReceivePartData.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
api
.
protocol
.
data
;
import
java.util.List
;
public
class
ReceivePartData
{
public
int
id
;
//备件物流ID ,
public
String
comment
;
//备注
public
List
<
PicItem
>
pics
;
//图片 ,
public
int
status
=
2
;
//1已发货2已收货
public
ReceivePartData
()
{
}
public
ReceivePartData
(
int
id
,
String
comment
,
List
<
PicItem
>
pics
)
{
this
.
id
=
id
;
this
.
comment
=
comment
;
this
.
pics
=
pics
;
}
public
class
PicItem
{
public
String
picUrl
;
public
PicItem
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
}
}
}
orderCenter/src/main/java/com/dayu/order/api/protocol/data/SendPartData.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
api
.
protocol
.
data
;
import
java.util.List
;
public
class
SendPartData
{
public
int
orderId
;
//工单ID ,
public
String
courierCompany
;
//快递公司
public
String
courierNumber
;
//快递公司单号 ,
public
List
<
PicItem
>
pics
;
//图片 ,
public
String
receiverAddress
;
//详细地址 ,
public
String
receiverMobile
;
//收货人手机号 ,
public
String
receiverName
;
//收货人 ,
public
int
sendId
;
//发货方ID ,
public
String
sendItems
;
//货物清单 ,
public
String
sendMobile
;
//发货方手机号 ,
public
String
sendName
;
//发货方名称 ,
public
int
sendType
=
2
;
//1服务商给师傅发货 2师傅给服务商发货 ,
public
int
status
=
1
;
//1已发货2已收货
public
String
shipperCode
;
// 快递公司编码 ,
public
String
receiveOrg
;
//收货方组织(服务商或服务站),
public
SendPartData
()
{
}
public
SendPartData
(
int
orderId
,
String
courierCompany
,
String
courierNumber
,
List
<
PicItem
>
pics
,
String
receiverAddress
,
String
receiverMobile
,
String
receiverName
,
int
sendId
,
String
sendItems
,
String
sendMobile
,
String
sendName
,
String
shipperCode
)
{
this
.
orderId
=
orderId
;
this
.
courierCompany
=
courierCompany
;
this
.
courierNumber
=
courierNumber
;
this
.
pics
=
pics
;
this
.
receiverAddress
=
receiverAddress
;
this
.
receiverMobile
=
receiverMobile
;
this
.
receiverName
=
receiverName
;
this
.
sendId
=
sendId
;
this
.
sendItems
=
sendItems
;
this
.
sendMobile
=
sendMobile
;
this
.
sendName
=
sendName
;
this
.
shipperCode
=
shipperCode
;
}
public
class
PicItem
{
public
String
picUrl
;
public
PicItem
(
String
picUrl
)
{
this
.
picUrl
=
picUrl
;
}
}
}
orderCenter/src/main/java/com/dayu/order/common/PartReceiverEvent.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
common
;
public
class
PartReceiverEvent
{
}
orderCenter/src/main/java/com/dayu/order/common/PartSendEvent.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
common
;
public
class
PartSendEvent
{
}
orderCenter/src/main/java/com/dayu/order/presenter/orderpart/OrderPartPresenter.java
View file @
0f54a19c
...
...
@@ -12,19 +12,15 @@ import com.dayu.order.api.OrderService;
import
com.dayu.order.api.protocol.OrderDetail
;
import
com.dayu.order.api.protocol.OrderPart
;
import
com.dayu.order.ui.activity.ApplyAndRefuseActivity
;
import
com.dayu.order.ui.activity.ApplyAndRefuseNewActivity
;
import
com.dayu.order.ui.activity.LogisticsInfoActivity
;
import
com.dayu.order.ui.activity.OrderPartReceiveActivity
;
import
com.dayu.order.ui.activity.OrderPartSendActivity
;
import
com.dayu.order.ui.activity.ReturnPartActivity
;
import
com.dayu.order.ui.activity.ReturnPartNewActivity
;
import
com.dayu.utils.UIUtils
;
import
com.dayu.utils.UserManager
;
import
com.megvii.idcardlib.util.Constant
;
import
com.umeng.analytics.MobclickAgent
;
import
java.util.ArrayList
;
import
java.util.List
;
import
io.reactivex.Observable
;
/**
...
...
@@ -36,20 +32,19 @@ public class OrderPartPresenter extends OrderPartContract.Presenter {
public
ObservableField
<
String
>
title
=
new
ObservableField
<>(
UIUtils
.
getString
(
R
.
string
.
apply_one_order_part
));
public
ObservableField
<
Boolean
>
showBottomBtn
=
new
ObservableField
<>(
false
);
private
int
mOrderId
;
private
int
mSource
;
private
OrderDetail
mDetail
;
private
String
mUserName
;
private
Integer
mCompanyId
;
private
int
mType
;
private
int
mType
;
//1服务商给师傅发货 2师傅给服务商发货
private
int
mPage
;
@Override
public
void
onAttached
()
{
Bundle
bundle
=
mView
.
getBundle
();
OrderDetail
d
etail
=
(
OrderDetail
)
bundle
.
getSerializable
(
Constants
.
ORDER_DETAIL
);
mD
etail
=
(
OrderDetail
)
bundle
.
getSerializable
(
Constants
.
ORDER_DETAIL
);
mType
=
bundle
.
getInt
(
Constants
.
TYPE
);
mOrderId
=
detail
.
getId
();
mSource
=
detail
.
getSource
();
mCompanyId
=
detail
.
getKaCompanyId
();
mOrderId
=
mDetail
.
getId
();
mCompanyId
=
mDetail
.
getKaCompanyId
();
mUserName
=
UserManager
.
getInstance
().
getUser
().
getAccountName
();
if
(
mType
==
2
)
{
title
.
set
(
UIUtils
.
getString
(
R
.
string
.
return_one_order_part
));
...
...
@@ -63,6 +58,10 @@ public class OrderPartPresenter extends OrderPartContract.Presenter {
queryPartList
();
}
@Override
public
void
loadMore
()
{
queryPartList
();
}
@Override
public
ObservableField
<
Object
>
getSourceDatas
()
{
...
...
@@ -71,9 +70,13 @@ public class OrderPartPresenter extends OrderPartContract.Presenter {
@Override
public
void
queryPartList
()
{
// Api.getService(OrderService.class).getOrderPartList(mOrderId,mType,mPage,Constants.PAGESIZE)
// .compose(Api.applySchedulers()).subscribe(baseObserver(orderPart -> datas.set(orderPart)
// , responeThrowable -> datas.set(Constants.FAILED)));
Api
.
getService
(
OrderService
.
class
).
getOrderPartList
(
mOrderId
,
mType
,
mPage
,
Constants
.
PAGESIZE
)
.
compose
(
Api
.
applySchedulers
()).
subscribe
(
baseObserver
(
orderPart
->
{
datas
.
set
(
orderPart
);
mPage
++;
}
,
responeThrowable
->
datas
.
set
(
Constants
.
FAILED
)));
// OrderApiFactory.queryPart(mOrderId, mType).subscribe(baseObserver(
// orderPart -> datas.set(orderPart)
// , responeThrowable -> datas.set(Constants.FAILED)));
...
...
@@ -82,14 +85,7 @@ public class OrderPartPresenter extends OrderPartContract.Presenter {
@Override
public
void
applyOrReturnPart
()
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putInt
(
Constants
.
ORDER_ID
,
mOrderId
);
bundle
.
putInt
(
Constants
.
ORDER_SOURCE
,
mSource
);
if
(
mType
==
1
)
{
mView
.
startActivity
(
OrderPartReceiveActivity
.
class
,
bundle
);
}
else
if
(
mType
==
2
)
{
mView
.
startActivity
(
OrderPartSendActivity
.
class
,
bundle
);
}
toDetail
(
true
,-
1
);
// if (mType == 1) {
// Bundle bundle = new Bundle();
// bundle.putInt(Constants.ORDER_ID, mOrderId);
...
...
@@ -101,6 +97,18 @@ public class OrderPartPresenter extends OrderPartContract.Presenter {
// }
}
public
void
toDetail
(
boolean
canEdit
,
int
partId
)
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putBoolean
(
Constants
.
CAN_EDIT
,
canEdit
);
bundle
.
putInt
(
Constants
.
ID
,
partId
);
bundle
.
putSerializable
(
Constants
.
ORDER_DETAIL
,
mDetail
);
if
(
mType
==
1
)
{
mView
.
startActivity
(
OrderPartReceiveActivity
.
class
,
bundle
);
}
else
if
(
mType
==
2
)
{
mView
.
startActivity
(
OrderPartSendActivity
.
class
,
bundle
);
}
}
@Override
public
void
dumpToRefusePart
(
int
partId
)
{
Bundle
bundle
=
new
Bundle
();
...
...
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_receive/PartReceiveContract.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
presenter
.
orderpart_receive
;
import
com.dayu.base.ui.presenter.BasePresenter
;
import
com.dayu.common.BaseView
;
import
com.dayu.order.api.protocol.bean.OrderPardDeatilBean
;
import
java.util.List
;
public
interface
PartReceiveContract
{
interface
View
extends
BaseView
{
/**
* 关闭输入框.
*/
void
hideInput
();
/**
* 获取添加的图片
*/
List
<
String
>
getImgs
();
/**
* 页面内容是否可编辑
* @param canEdit
*/
void
setCanEdit
(
boolean
canEdit
);
/**
* 显示已上传图片
* @param imgs
*/
void
setImgs
(
List
<
String
>
imgs
);
/**
* 收货详情
*/
void
setDetailData
(
OrderPardDeatilBean
data
);
}
abstract
class
Presenter
extends
BasePresenter
<
View
>
{
}
}
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_receive/PartRecievePresenter.java
0 → 100644
View file @
0f54a19c
package
com
.
dayu
.
order
.
presenter
.
orderpart_receive
;
import
android.databinding.ObservableField
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
com.dayu.base.api.Api
;
import
com.dayu.base.api.BaseApiFactory
;
import
com.dayu.common.Constants
;
import
com.dayu.event.UserInfo
;
import
com.dayu.order.R
;
import
com.dayu.order.api.OrderApiFactory
;
import
com.dayu.order.api.OrderService
;
import
com.dayu.order.api.protocol.OrderDetail
;
import
com.dayu.order.api.protocol.ShipperCompany
;
import
com.dayu.order.api.protocol.bean.OrderPardDeatilBean
;
import
com.dayu.order.api.protocol.data.ReceivePartData
;
import
com.dayu.order.api.protocol.data.SendPartData
;
import
com.dayu.order.common.PartReceiverEvent
;
import
com.dayu.order.presenter.orderpart_send.PartSendContract
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UserManager
;
import
org.greenrobot.eventbus.EventBus
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
PartRecievePresenter
extends
PartReceiveContract
.
Presenter
{
public
ObservableField
<
String
>
remark
=
new
ObservableField
<>();
private
OrderDetail
mDetail
;
private
UserInfo
mUser
;
private
boolean
canEdit
;
private
int
partId
;
@Override
public
void
onAttached
()
{
mUser
=
UserManager
.
getInstance
().
getUser
();
Bundle
bundle
=
mView
.
getBundle
();
canEdit
=
bundle
.
getBoolean
(
Constants
.
CAN_EDIT
);
mDetail
=
(
OrderDetail
)
bundle
.
getSerializable
(
Constants
.
ORDER_DETAIL
);
mView
.
setCanEdit
(
canEdit
);
partId
=
bundle
.
getInt
(
Constants
.
ID
);
getDetailData
(
partId
);
}
//获取发货详情
private
void
getDetailData
(
int
partId
)
{
mView
.
showDialog
();
Api
.
getService
(
OrderService
.
class
).
getPartDetail
(
partId
).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
data
->
{
if
(
data
!=
null
)
{
mView
.
setDetailData
(
data
);
remark
.
set
(
data
.
getComment
());
if
(!
canEdit
&&
data
.
getPics
()
!=
null
&&
data
.
getPics
().
size
()
>
0
)
{
List
<
String
>
imgs
=
new
ArrayList
<>();
for
(
OrderPardDeatilBean
.
PicsBean
picsBean
:
data
.
getPics
())
{
if
(!
TextUtils
.
isEmpty
(
picsBean
.
getPicUrl
()))
imgs
.
add
(
picsBean
.
getPicUrl
());
mView
.
setImgs
(
imgs
);
}
}
}
}));
}
public
void
confirmReceive
()
{
if
(
mView
.
getImgs
()
!=
null
&&
mView
.
getImgs
().
size
()
>
0
)
{
mView
.
showDialog
();
BaseApiFactory
.
uploadPhoto
(
BaseApiFactory
.
packPhoto
(
mView
.
getImgs
()),
Constants
.
NO_WATERMARK
)
.
subscribe
(
baseObserver
(
imgs
->
{
receivePart
(
imgs
);
}));
}
else
{
receivePart
(
null
);
}
}
//收货
private
void
receivePart
(
List
<
String
>
imgs
)
{
mView
.
showDialog
();
List
<
ReceivePartData
.
PicItem
>
pics
=
new
ArrayList
<>();
if
(
imgs
!=
null
&&
imgs
.
size
()
>
0
)
{
for
(
String
url
:
imgs
)
{
ReceivePartData
data
=
new
ReceivePartData
();
ReceivePartData
.
PicItem
item
=
data
.
new
PicItem
(
url
);
pics
.
add
(
item
);
}
}
ReceivePartData
receivedData
=
new
ReceivePartData
(
partId
,
remark
.
get
(),
pics
);
Api
.
getService
(
OrderService
.
class
).
receivePart
(
receivedData
).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
success
->
{
if
(
success
)
{
ToastUtils
.
showShortToast
(
"收货成功"
);
EventBus
.
getDefault
().
post
(
new
PartReceiverEvent
());
mView
.
dumpBack
();
}
else
{
ToastUtils
.
showShortToast
(
"收货失败"
);
}
}));
}
}
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_send/PartSendContract.java
View file @
0f54a19c
...
...
@@ -4,6 +4,8 @@ package com.dayu.order.presenter.orderpart_send;
import
com.bigkoo.pickerview.listener.OnOptionsSelectListener
;
import
com.dayu.base.ui.presenter.BasePresenter
;
import
com.dayu.common.BaseView
;
import
com.dayu.order.api.protocol.bean.ServiceProviderBean
;
import
com.dayu.order.api.protocol.bean.ServiceStationBean
;
import
java.util.List
;
...
...
@@ -28,9 +30,33 @@ public interface PartSendContract {
void
toScan
();
/**
*
扫描物流单号
*
获取添加的图片
*/
List
<
String
>
getImgs
();
/**
* 服务站信息
* @param data
*/
void
setStationData
(
ServiceStationBean
data
);
/**
* 服务商信息
* @param data
*/
void
setProviderData
(
ServiceProviderBean
data
);
/**
* 页面内容是否可编辑
* @param canEdit
*/
void
setCanEdit
(
boolean
canEdit
);
/**
* 显示已上传图片
* @param imgs
*/
void
setImgs
(
List
<
String
>
imgs
);
}
abstract
class
Presenter
extends
BasePresenter
<
View
>
{
...
...
orderCenter/src/main/java/com/dayu/order/presenter/orderpart_send/PartSendPresenter.java
View file @
0f54a19c
package
com
.
dayu
.
order
.
presenter
.
orderpart_send
;
import
android.databinding.ObservableField
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
com.dayu.base.api.APIService
;
import
com.dayu.base.api.Api
;
import
com.dayu.base.api.BaseApiFactory
;
import
com.dayu.common.Constants
;
import
com.dayu.event.UserInfo
;
import
com.dayu.order.R
;
import
com.dayu.order.api.OrderApiFactory
;
import
com.dayu.order.api.OrderService
;
import
com.dayu.order.api.protocol.Order
Part
;
import
com.dayu.order.api.protocol.Order
Detail
;
import
com.dayu.order.api.protocol.ShipperCompany
;
import
com.dayu.order.api.protocol.bean.OrderPardDeatilBean
;
import
com.dayu.order.api.protocol.data.SendPartData
;
import
com.dayu.order.common.PartSendEvent
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UserManager
;
import
org.greenrobot.eventbus.EventBus
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -18,24 +29,110 @@ public class PartSendPresenter extends PartSendContract.Presenter {
public
ObservableField
<
String
>
courierCompany
=
new
ObservableField
<>();
public
ObservableField
<
String
>
courierNum
=
new
ObservableField
<>();
public
ObservableField
<
String
>
goodsListStr
=
new
ObservableField
<>();
public
ObservableField
<
String
>
company
=
new
ObservableField
<>();
public
ObservableField
<
String
>
address
=
new
ObservableField
<>();
public
ObservableField
<
String
>
contacter
=
new
ObservableField
<>();
public
ObservableField
<
String
>
contactPhone
=
new
ObservableField
<>();
List
<
ShipperCompany
>
transCompanyList
=
new
ArrayList
<>();
private
int
mKaId
;
private
int
mOrderId
;
private
int
mType
;
private
String
mKaComent
;
private
UserInfo
mInfo
;
private
int
mPartId
;
private
OrderPart
mPart
;
private
OrderDetail
mDetail
;
private
String
mShipperCode
;
private
UserInfo
mUser
;
private
boolean
canEdit
;
@Override
public
void
onAttached
()
{
mUser
=
UserManager
.
getInstance
().
getUser
();
Bundle
bundle
=
mView
.
getBundle
();
canEdit
=
bundle
.
getBoolean
(
Constants
.
CAN_EDIT
);
mDetail
=
(
OrderDetail
)
bundle
.
getSerializable
(
Constants
.
ORDER_DETAIL
);
mView
.
setCanEdit
(
canEdit
);
if
(!
canEdit
)
{
int
partId
=
bundle
.
getInt
(
Constants
.
ID
);
getDetailData
(
partId
);
return
;
}
if
(
mDetail
.
getSource
()
==
1
)
{
mView
.
showDialog
();
getStationInfo
();
}
else
if
(
mDetail
.
getSource
()
==
5
||
mDetail
.
getSource
()
==
6
)
{
mView
.
showDialog
();
getProviderInfo
();
}
else
{
company
.
set
(
"大鱼云服"
);
address
.
set
(
"北京市海淀区中关村软件园汉王大厦135室"
);
contacter
.
set
(
"大鱼云服"
);
contactPhone
.
set
(
"400-0086-898"
);
}
}
//获取发货详情
private
void
getDetailData
(
int
partId
)
{
mView
.
showDialog
();
Api
.
getService
(
OrderService
.
class
).
getPartDetail
(
partId
).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
data
->{
if
(
data
!=
null
){
company
.
set
(
data
.
getReceiveOrg
());
address
.
set
(
data
.
getReceiverAddress
());
contacter
.
set
(
data
.
getReceiverName
());
contactPhone
.
set
(
data
.
getReceiverMobile
());
goodsListStr
.
set
(
data
.
getSendItems
());
courierNum
.
set
(
data
.
getCourierNumber
());
courierCompany
.
set
(
data
.
getCourierCompany
());
if
(
data
.
getPics
()
!=
null
&&
data
.
getPics
().
size
()>
0
){
List
<
String
>
imgs
=
new
ArrayList
<>();
for
(
OrderPardDeatilBean
.
PicsBean
picsBean
:
data
.
getPics
()){
if
(!
TextUtils
.
isEmpty
(
picsBean
.
getPicUrl
()))
imgs
.
add
(
picsBean
.
getPicUrl
());
}
mView
.
setImgs
(
imgs
);
}
}
}));
}
//查询服务站信息
private
void
getStationInfo
()
{
Api
.
getService
(
OrderService
.
class
).
getServiceStation
(
mDetail
.
getSiteId
()).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
data
->
{
if
(
data
!=
null
)
{
mView
.
setStationData
(
data
);
}
}));
}
//查询服务商信息
private
void
getProviderInfo
()
{
Api
.
getService
(
OrderService
.
class
).
getServiceProvider
(
mDetail
.
getCreateProviderId
())
.
compose
(
Api
.
applySchedulers
()).
subscribe
(
baseObserver
(
data
->
{
if
(
data
!=
null
)
{
mView
.
setProviderData
(
data
);
}
}));
}
@Override
public
void
getCourier
()
{
if
(!
canEdit
||
TextUtils
.
isEmpty
(
courierNum
.
get
()))
return
;
mView
.
showDialog
();
Api
.
getService
(
OrderService
.
class
).
getTransCompany
(
courierNum
.
get
()).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
data
->
{
if
(
data
!=
null
)
{
courierCompany
.
set
(
data
.
getShipperName
());
mShipperCode
=
data
.
getShipperCode
();
}
else
{
getTransCompanys
();
}
},
responeThrowable
->
getTransCompanys
()));
}
private
void
getTransCompanys
()
{
//查询物流公司
mView
.
hideInput
();
if
(
transCompanyList
!=
null
&&
transCompanyList
.
size
()
>
0
)
{
showCouriesDialog
(
transCompanyList
);
...
...
@@ -60,7 +157,8 @@ public class PartSendPresenter extends PartSendContract.Presenter {
}
public
void
scan
()
{
mView
.
toScan
();
if
(
canEdit
)
mView
.
toScan
();
}
public
void
setCourierNum
(
String
snNum
)
{
...
...
@@ -79,6 +177,60 @@ public class PartSendPresenter extends PartSendContract.Presenter {
@Override
public
void
confirmSend
()
{
ToastUtils
.
showShortToast
(
"commit"
);
if
(
canSubmit
())
{
if
(
mView
.
getImgs
()
!=
null
&&
mView
.
getImgs
().
size
()
>
0
)
{
mView
.
showDialog
();
BaseApiFactory
.
uploadPhoto
(
BaseApiFactory
.
packPhoto
(
mView
.
getImgs
()),
Constants
.
NO_WATERMARK
)
.
subscribe
(
baseObserver
(
imgs
->
{
sendPart
(
imgs
);
}));
}
else
{
sendPart
(
null
);
}
}
}
//发货
private
void
sendPart
(
List
<
String
>
imgs
)
{
mView
.
showDialog
();
List
<
SendPartData
.
PicItem
>
pics
=
new
ArrayList
<>();
if
(
imgs
!=
null
&&
imgs
.
size
()
>
0
)
{
for
(
String
url
:
imgs
)
{
SendPartData
data
=
new
SendPartData
();
SendPartData
.
PicItem
item
=
data
.
new
PicItem
(
url
);
pics
.
add
(
item
);
}
}
SendPartData
sendData
=
new
SendPartData
(
mDetail
.
getId
(),
courierCompany
.
get
(),
courierNum
.
get
(),
pics
,
address
.
get
(),
contactPhone
.
get
(),
contacter
.
get
(),
mUser
.
getSiteId
(),
goodsListStr
.
get
(),
mUser
.
getMobile
(),
mUser
.
getAccountName
(),
mShipperCode
);
sendData
.
receiveOrg
=
company
.
get
();
Api
.
getService
(
OrderService
.
class
).
sendPart
(
sendData
).
compose
(
Api
.
applySchedulers
())
.
subscribe
(
baseObserver
(
success
->
{
if
(
success
)
{
ToastUtils
.
showShortToast
(
"发送成功"
);
EventBus
.
getDefault
().
post
(
new
PartSendEvent
());
mView
.
dumpBack
();
}
else
{
ToastUtils
.
showShortToast
(
"发送失败"
);
}
}));
}
private
boolean
canSubmit
()
{
if
(
TextUtils
.
isEmpty
(
goodsListStr
.
get
()))
{
ToastUtils
.
showShortToast
(
R
.
string
.
pls_fill_goods_list
);
return
false
;
}
if
(
TextUtils
.
isEmpty
(
courierNum
.
get
()))
{
ToastUtils
.
showShortToast
(
R
.
string
.
pls_fill_trans_code
);
return
false
;
}
if
(
TextUtils
.
isEmpty
(
mShipperCode
))
{
ToastUtils
.
showShortToast
(
R
.
string
.
pls_fill_trans_company
);
return
false
;
}
return
true
;
}
}
orderCenter/src/main/java/com/dayu/order/ui/activity/MultipleProcessActivity.java
View file @
0f54a19c
...
...
@@ -533,7 +533,11 @@ public class MultipleProcessActivity extends BaseActivity<MultipleProcessPresent
mSelectList
=
PictureSelector
.
obtainMultipleResult
(
data
);
mPayerImages
.
remove
(
"add"
);
for
(
int
a
=
0
;
a
<
mSelectList
.
size
();
a
++)
{
mPayerImages
.
add
(
mSelectList
.
get
(
a
).
getCompressPath
());
if
(!
TextUtils
.
isEmpty
(
mSelectList
.
get
(
a
).
getCompressPath
()))
{
mPayerImages
.
add
(
mSelectList
.
get
(
a
).
getCompressPath
());
}
else
{
mPayerImages
.
add
(
mSelectList
.
get
(
a
).
getPath
());
}
}
if
(
mPayerImages
.
size
()
<
10
)
{
mPayerImages
.
add
(
"add"
);
...
...
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderDetailsActivity.java
View file @
0f54a19c
...
...
@@ -55,6 +55,7 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
@Override
public
void
initView
()
{
mBind
.
titleBack
.
setOnClickListener
(
v
->
dumpBack
());
EventBus
.
getDefault
().
register
(
this
);
}
...
...
@@ -91,7 +92,6 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
mFragments
.
add
(
mOperateFragment
);
mFragments
.
add
(
orderDatailsServeFragment
);
mFragments
.
add
(
mOrderPartFragment
);
mBind
.
titleBack
.
setOnClickListener
(
v
->
dumpBack
());
mBind
.
btnDetail
.
setVisibility
(
View
.
VISIBLE
);
mBind
.
btnServer
.
setVisibility
(
View
.
VISIBLE
);
if
(
detail
.
getCreatedSource
()
==
1
)
{
...
...
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderPartReceiveActivity.java
View file @
0f54a19c
...
...
@@ -3,15 +3,17 @@ package com.dayu.order.ui.activity;
import
android.content.Intent
;
import
android.support.v7.widget.GridLayoutManager
;
import
android.text.TextUtils
;
import
android.view.View
;
import
com.dayu.base.ui.activity.BaseActivity
;
import
com.dayu.base.ui.adapter.PhotoViewAdapter
;
import
com.dayu.base.ui.adapter.SpacesItemDecoration
;
import
com.dayu.base.ui.presenter.SImplePresenter
;
import
com.dayu.order.R
;
import
com.dayu.order.api.protocol.bean.OrderPardDeatilBean
;
import
com.dayu.order.databinding.ActivityOrderPartReceiveBinding
;
import
com.google.zxing.integration.android.IntentIntegrator
;
import
com.google.zxing.integration.android.IntentResult
;
import
com.dayu.order.presenter.orderpart_receive.PartReceiveContract
;
import
com.dayu.order.presenter.orderpart_receive.PartRecievePresenter
;
import
com.dayu.utils.CommonUtils
;
import
com.luck.picture.lib.PictureSelector
;
import
com.luck.picture.lib.config.PictureConfig
;
import
com.luck.picture.lib.entity.LocalMedia
;
...
...
@@ -19,13 +21,14 @@ import com.luck.picture.lib.entity.LocalMedia;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
OrderPartReceiveActivity
extends
BaseActivity
<
SImplePresenter
,
ActivityOrderPartReceiveBinding
>
{
public
class
OrderPartReceiveActivity
extends
BaseActivity
<
PartRecievePresenter
,
ActivityOrderPartReceiveBinding
>
implements
PartReceiveContract
.
View
{
private
PhotoViewAdapter
mAdapter
;
private
ArrayList
<
String
>
mImages
=
new
ArrayList
<>();
@Override
public
void
setPresenter
()
{
mBind
.
setPresenter
(
mPresenter
);
}
@Override
...
...
@@ -35,7 +38,7 @@ public class OrderPartReceiveActivity extends BaseActivity<SImplePresenter,Activ
@Override
public
void
initView
()
{
initPhotoView
(
);
mBind
.
titleBack
.
setOnClickListener
(
v
->
dumpBack
()
);
}
private
void
initPhotoView
()
{
...
...
@@ -58,7 +61,6 @@ public class OrderPartReceiveActivity extends BaseActivity<SImplePresenter,Activ
if
(
selectList
!=
null
&&
selectList
.
size
()
>
0
)
{
mImages
.
remove
(
"add"
);
for
(
int
a
=
0
;
a
<
selectList
.
size
();
a
++)
{
// mImages.add(selectList.get(a).getCompressPath());
if
(!
TextUtils
.
isEmpty
(
selectList
.
get
(
a
).
getCompressPath
()))
{
mImages
.
add
(
selectList
.
get
(
a
).
getCompressPath
());
}
else
{
...
...
@@ -74,4 +76,46 @@ public class OrderPartReceiveActivity extends BaseActivity<SImplePresenter,Activ
}
}
}
@Override
public
void
hideInput
()
{
CommonUtils
.
hideSoftInput
(
this
);
}
@Override
public
List
<
String
>
getImgs
()
{
List
<
String
>
imgs
=
mImages
;
imgs
.
remove
(
"add"
);
return
imgs
;
}
@Override
public
void
setCanEdit
(
boolean
canEdit
)
{
if
(
canEdit
){
initPhotoView
();
}
else
{
mBind
.
edtRemark
.
setEnabled
(
false
);
mBind
.
tvCommit
.
setVisibility
(
View
.
GONE
);
}
}
@Override
public
void
setImgs
(
List
<
String
>
imgs
)
{
mBind
.
photo
.
addItemDecoration
(
new
SpacesItemDecoration
(
10
));
mBind
.
photo
.
setLayoutManager
(
new
GridLayoutManager
(
mActivity
,
5
));
mAdapter
=
new
PhotoViewAdapter
((
ArrayList
<
String
>)
imgs
,
mActivity
);
mAdapter
.
setCanDelete
(
false
);
mBind
.
photo
.
setAdapter
(
mAdapter
);
}
@Override
public
void
setDetailData
(
OrderPardDeatilBean
data
)
{
mBind
.
tvCode
.
setText
(
data
.
getCourierNumber
());
mBind
.
tvCompany
.
setText
(
data
.
getCourierCompany
());
mBind
.
tvDate
.
setText
(
data
.
getCreateTime
());
mBind
.
tvAddress
.
setText
(
data
.
getReceiverAddress
());
mBind
.
tvName
.
setText
(
data
.
getReceiverName
());
mBind
.
tvPhone
.
setText
(
data
.
getReceiverMobile
());
mBind
.
tvList
.
setText
(
data
.
getSendItems
());
}
}
orderCenter/src/main/java/com/dayu/order/ui/activity/OrderPartSendActivity.java
View file @
0f54a19c
...
...
@@ -3,19 +3,21 @@ package com.dayu.order.ui.activity;
import
android.content.Intent
;
import
android.support.v7.widget.GridLayoutManager
;
import
android.text.TextUtils
;
import
android.view.View
;
import
com.bigkoo.pickerview.builder.OptionsPickerBuilder
;
import
com.bigkoo.pickerview.listener.OnOptionsSelectListener
;
import
com.bigkoo.pickerview.view.OptionsPickerView
;
import
com.dayu.base.api.Api
;
import
com.dayu.base.ui.activity.BaseActivity
;
import
com.dayu.base.ui.adapter.PhotoViewAdapter
;
import
com.dayu.base.ui.adapter.SpacesItemDecoration
;
import
com.dayu.order.R
;
import
com.dayu.order.api.OrderService
;
import
com.dayu.order.api.protocol.bean.ServiceProviderBean
;
import
com.dayu.order.api.protocol.bean.ServiceStationBean
;
import
com.dayu.order.databinding.ActivityOrderPartSendBinding
;
import
com.dayu.order.presenter.orderpart_send.PartSendContract
;
import
com.dayu.order.presenter.orderpart_send.PartSendPresenter
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UIUtils
;
import
com.google.zxing.integration.android.IntentIntegrator
;
import
com.google.zxing.integration.android.IntentResult
;
...
...
@@ -43,7 +45,7 @@ public class OrderPartSendActivity extends BaseActivity<PartSendPresenter, Activ
@Override
public
void
initView
()
{
initPhotoView
(
);
mBind
.
titleBack
.
setOnClickListener
(
v
->
dumpBack
()
);
}
//跳转到扫描页面
...
...
@@ -57,7 +59,47 @@ public class OrderPartSendActivity extends BaseActivity<PartSendPresenter, Activ
@Override
public
List
<
String
>
getImgs
()
{
return
mImages
;
List
<
String
>
imgs
=
mImages
;
imgs
.
remove
(
"add"
);
return
imgs
;
}
@Override
public
void
setStationData
(
ServiceStationBean
data
)
{
mPresenter
.
company
.
set
(
data
.
getName
());
mPresenter
.
address
.
set
(
data
.
getProvinceName
()+
data
.
getCityName
()
+
data
.
getDistrictName
()+
data
.
getAddress
());
mPresenter
.
contacter
.
set
(
data
.
getName
());
mPresenter
.
contactPhone
.
set
(
data
.
getTelephone
());
}
@Override
public
void
setProviderData
(
ServiceProviderBean
data
)
{
mPresenter
.
company
.
set
(
data
.
getName
());
mPresenter
.
address
.
set
(
data
.
getProvinceName
()+
data
.
getCityName
()
+
data
.
getDistrictName
()+
data
.
getAddress
());
mPresenter
.
contacter
.
set
(
data
.
getCompanyConnecter
());
mPresenter
.
contactPhone
.
set
(
data
.
getCompanyConnecterMobile
());
}
@Override
public
void
setCanEdit
(
boolean
canEdit
)
{
if
(!
canEdit
){
mBind
.
tvConfirm
.
setVisibility
(
View
.
GONE
);
mBind
.
edtTransCode
.
setEnabled
(
false
);
mBind
.
edtRemark
.
setEnabled
(
false
);
}
else
{
initPhotoView
();
}
}
@Override
public
void
setImgs
(
List
<
String
>
imgs
)
{
mBind
.
photo
.
addItemDecoration
(
new
SpacesItemDecoration
(
10
));
mBind
.
photo
.
setLayoutManager
(
new
GridLayoutManager
(
mActivity
,
5
));
mAdapter
=
new
PhotoViewAdapter
((
ArrayList
<
String
>)
imgs
,
mActivity
);
mAdapter
.
setCanDelete
(
false
);
mBind
.
photo
.
setAdapter
(
mAdapter
);
}
...
...
@@ -88,7 +130,6 @@ public class OrderPartSendActivity extends BaseActivity<PartSendPresenter, Activ
if
(
selectList
!=
null
&&
selectList
.
size
()
>
0
)
{
mImages
.
remove
(
"add"
);
for
(
int
a
=
0
;
a
<
selectList
.
size
();
a
++)
{
// mImages.add(selectList.get(a).getCompressPath());
if
(!
TextUtils
.
isEmpty
(
selectList
.
get
(
a
).
getCompressPath
()))
{
mImages
.
add
(
selectList
.
get
(
a
).
getCompressPath
());
}
else
{
...
...
orderCenter/src/main/java/com/dayu/order/ui/activity/ProcessOrderActivity.java
View file @
0f54a19c
...
...
@@ -389,7 +389,11 @@ public class ProcessOrderActivity extends BaseActivity<ProcessOrderPresenter, Ac
if
(
mPhotoState
==
0
)
{
mImages
.
remove
(
"add"
);
for
(
int
a
=
0
;
a
<
mSelectList
.
size
();
a
++)
{
mImages
.
add
(
mSelectList
.
get
(
a
).
getCompressPath
());
if
(!
TextUtils
.
isEmpty
(
mSelectList
.
get
(
a
).
getCompressPath
())){
mImages
.
add
(
mSelectList
.
get
(
a
).
getCompressPath
());
}
else
{
mImages
.
add
(
mSelectList
.
get
(
a
).
getPath
());
}
}
if
(
mImages
.
size
()
<
10
)
{
mImages
.
add
(
"add"
);
...
...
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderAdapter.java
View file @
0f54a19c
...
...
@@ -234,13 +234,6 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder
.
tvSettlementDate
.
setTextColor
(
mContext
.
getResources
().
getColor
(
R
.
color
.
common_text_color
));
}
holder
.
tvSettlementPrice
.
setText
(
CommonUtils
.
getMoneyStr
(
mContext
,
item
.
getSettlementPrice
()));
if
(
TextUtils
.
isEmpty
(
item
.
getSettlementDate
())){
holder
.
tvSettlementDate
.
setText
(
mContext
.
getString
(
R
.
string
.
unknown
));
}
else
{
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
sDate
=
df
.
parse
(
item
.
getSettlementDate
());
holder
.
tvSettlementDate
.
setText
(
df
.
format
(
sDate
));
}
time
=
item
.
getConfirmDoorTime
();
break
;
...
...
orderCenter/src/main/java/com/dayu/order/ui/adapter/OrderPartListAdapter.java
View file @
0f54a19c
package
com
.
dayu
.
order
.
ui
.
adapter
;
import
com.dayu.base.ui.adapter.CoreAdapter
;
import
com.dayu.order.R
;
import
com.dayu.order.api.protocol.bean.OrderPartBean
;
import
com.dayu.order.databinding.ItemOrderPartListBinding
;
import
com.dayu.order.presenter.orderpart.OrderPartPresenter
;
public
class
OrderPartListAdapter
extends
CoreAdapter
<
String
,
ItemOrderPartListBinding
>
{
public
class
OrderPartListAdapter
extends
CoreAdapter
<
OrderPartBean
,
ItemOrderPartListBinding
>
{
int
type
;
OrderPartPresenter
presenter
;
public
void
setPresenter
(
OrderPartPresenter
presenter
)
{
this
.
presenter
=
presenter
;
}
public
OrderPartListAdapter
(
boolean
needFoot
,
int
type
)
{
super
(
needFoot
);
...
...
@@ -12,8 +20,19 @@ public class OrderPartListAdapter extends CoreAdapter<String,ItemOrderPartListBi
}
@Override
protected
void
onBind
(
ItemOrderPartListBinding
holder
,
String
item
,
int
position
)
{
protected
void
onBind
(
ItemOrderPartListBinding
holder
,
OrderPartBean
item
,
int
position
)
{
super
.
onBind
(
holder
,
item
,
position
);
holder
.
tvCode
.
setText
(
item
);
holder
.
tvCode
.
setText
(
item
.
getCourierNumber
());
holder
.
tvCompany
.
setText
(
item
.
getCourierCompany
());
holder
.
tvDate
.
setText
(
item
.
getCreateTime
());
holder
.
btnStatus
.
setText
(
item
.
getStatus
()
==
1
?
R
.
string
.
to_be_received_goods
:
R
.
string
.
already_received_goods
);
if
(
type
==
1
&&
item
.
getStatus
()
==
1
){
holder
.
btnStatus
.
setBackgroundResource
(
R
.
drawable
.
btn_blue_commom
);
holder
.
btnStatus
.
setTextColor
(
mContext
.
getResources
().
getColor
(
R
.
color
.
white
));
holder
.
btnStatus
.
setOnClickListener
(
view
->
presenter
.
toDetail
(
true
,
item
.
getId
()));
}
else
{
holder
.
btnStatus
.
setTextColor
(
mContext
.
getResources
().
getColor
(
R
.
color
.
common_text_color
));
holder
.
btnStatus
.
setBackgroundResource
(
R
.
drawable
.
btn_black_react
);
}
}
}
orderCenter/src/main/java/com/dayu/order/ui/fragment/ApplicationOrderPartFragment.java
View file @
0f54a19c
...
...
@@ -7,12 +7,17 @@ import com.dayu.base.ui.fragment.BaseFragment;
import
com.dayu.common.Constants
;
import
com.dayu.order.R
;
import
com.dayu.order.api.protocol.OrderDetail
;
import
com.dayu.order.api.protocol.bean.OrderPartBean
;
import
com.dayu.order.common.PartReceiverEvent
;
import
com.dayu.order.common.PartSendEvent
;
import
com.dayu.order.databinding.FragmentOrderApplicationPartBinding
;
import
com.dayu.order.databinding.ItemOrderPartListBinding
;
import
com.dayu.order.ui.adapter.OrderPartListAdapter
;
import
com.dayu.provider.event.RefreshApplyPart
;
import
com.dayu.order.presenter.orderpart.OrderPartContract
;
import
com.dayu.order.presenter.orderpart.OrderPartPresenter
;
import
com.dayu.order.ui.adapter.OrderPartAdapter
;
import
com.dayu.widgets.listener.OnItemClickListener
;
import
com.umeng.analytics.MobclickAgent
;
import
org.greenrobot.eventbus.EventBus
;
...
...
@@ -29,6 +34,8 @@ import java.util.List;
public
class
ApplicationOrderPartFragment
extends
BaseFragment
<
OrderPartPresenter
,
FragmentOrderApplicationPartBinding
>
implements
OrderPartContract
.
View
{
int
mType
;
public
static
ApplicationOrderPartFragment
newInstance
(
OrderDetail
detail
,
int
type
)
{
Bundle
args
=
new
Bundle
();
args
.
putSerializable
(
Constants
.
ORDER_DETAIL
,
detail
);
...
...
@@ -40,18 +47,20 @@ public class ApplicationOrderPartFragment extends BaseFragment<OrderPartPresente
@Override
public
void
initView
()
{
int
mType
=
getBundle
().
getInt
(
Constants
.
TYPE
);
mType
=
getBundle
().
getInt
(
Constants
.
TYPE
);
mBind
.
applyPart
.
setVisibility
(
mType
==
2
?
View
.
VISIBLE
:
View
.
GONE
);
EventBus
.
getDefault
().
register
(
this
);
// OrderPartAdapter adapter = new OrderPartAdapter(false);
OrderPartListAdapter
adapter
=
new
OrderPartListAdapter
(
false
,
mType
);
mBind
.
lvPart
.
setAdapter
(
adapter
);
List
<
String
>
testDatas
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
10
;
i
++){
testDatas
.
add
(
"test data "
+
i
);
}
adapter
.
setData
(
testDatas
);
adapter
.
setPresenter
(
mPresenter
);
adapter
.
setOnItemClickListener
((
item
,
bind
)
->
{
if
(
mType
==
1
&&
item
.
getStatus
()
==
1
){
mPresenter
.
toDetail
(
true
,
item
.
getId
());
}
else
{
mPresenter
.
toDetail
(
false
,
item
.
getId
());
}
});
}
@Override
...
...
@@ -81,9 +90,9 @@ public class ApplicationOrderPartFragment extends BaseFragment<OrderPartPresente
super
.
setUserVisibleHint
(
isVisibleToUser
);
String
tag
;
if
(
getArguments
().
getInt
(
Constants
.
TYPE
)
==
1
)
{
tag
=
"
ApplyPart
Fragment"
;
tag
=
"
PartReceive
Fragment"
;
}
else
{
tag
=
"
ReturnPart
Fragment"
;
tag
=
"
PartSend
Fragment"
;
}
if
(
getUserVisibleHint
())
{
MobclickAgent
.
onPageEnd
(
tag
);
...
...
@@ -91,4 +100,21 @@ public class ApplicationOrderPartFragment extends BaseFragment<OrderPartPresente
MobclickAgent
.
onPageStart
(
tag
);
}
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
EventBus
.
getDefault
().
unregister
(
this
);
}
@Subscribe
public
void
refreshReceive
(
PartReceiverEvent
event
){
if
(
mType
==
1
)
mPresenter
.
refresh
();
}
@Subscribe
public
void
refreshSend
(
PartSendEvent
event
){
if
(
mType
==
2
)
mPresenter
.
refresh
();
}
}
orderCenter/src/main/java/com/dayu/order/ui/fragment/OperateDetailFragment.java
View file @
0f54a19c
...
...
@@ -114,7 +114,7 @@ public class OperateDetailFragment extends BaseFragment<SImplePresenter, Fragmen
@Override
public
void
onKeyboardHide
()
{
weakHandler
.
postDelayed
(()
->
{
mBind
.
btnComment
.
setVisibility
(
View
.
VISIBLE
);
//
mBind.btnComment.setVisibility(View.VISIBLE);
},
100
);
}
});
...
...
orderCenter/src/main/release/AndroidManifest.xml
View file @
0f54a19c
...
...
@@ -100,10 +100,14 @@
android:screenOrientation=
"portrait"
/>
<activity
android:name=
".ui.activity.OrderPartReceiveActivity"
android:screenOrientation=
"portrait"
/>
android:screenOrientation=
"portrait"
android:windowSoftInputMode=
"stateHidden|adjustPan"
/>
<activity
android:name=
".ui.activity.OrderPartSendActivity"
android:screenOrientation=
"portrait"
/>
android:screenOrientation=
"portrait"
android:windowSoftInputMode=
"stateHidden|adjustPan"
/>
</application>
</manifest>
orderCenter/src/main/res/layout/activity_order_details.xml
View file @
0f54a19c
...
...
@@ -6,33 +6,42 @@
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<RelativeLayout
android:id=
"@+id/rl_title"
style=
"@style/title"
>
<TextView
android:id=
"@+id/tv_title"
style=
"@style/text_title"
android:text=
"@string/order_detail"
/>
<ImageView
android:id=
"@+id/title_back"
style=
"@style/title_image_back"
/>
<ImageView
style=
"@style/card_line"
android:layout_alignParentBottom=
"true"
/>
</RelativeLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/title_back"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:src=
"@drawable/back_btn_normal"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin
Bottom=
"12
dp"
android:layout_marginRight=
"5dp"
android:layout_margin
Top=
"@dimen/dp_12
"
android:layout_margin
Left=
"15
dp"
android:layout_marginRight=
"
1
5dp"
android:layout_margin
Bottom=
"5dp
"
android:gravity=
"center"
>
<Button
android:id=
"@+id/btn_detail"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"
28
dp"
android:layout_height=
"
35
dp"
android:background=
"@drawable/detail_first_selector"
android:gravity=
"center"
android:visibility=
"invisible"
...
...
@@ -41,7 +50,7 @@
android:id=
"@+id/btn_operate"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"
28
dp"
android:layout_height=
"
35
dp"
android:background=
"@drawable/detail_center_selector"
android:gravity=
"center"
android:visibility=
"gone"
...
...
@@ -50,7 +59,7 @@
android:id=
"@+id/btn_server"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"
28
dp"
android:layout_height=
"
35
dp"
android:background=
"@drawable/detail_center_selector"
android:gravity=
"center"
android:visibility=
"invisible"
...
...
@@ -59,7 +68,7 @@
<Button
android:id=
"@+id/btn_part"
android:layout_width=
"0dp"
android:layout_height=
"
28
dp"
android:layout_height=
"
35
dp"
android:layout_weight=
"1"
android:visibility=
"gone"
android:background=
"@drawable/detail_end_selector"
...
...
orderCenter/src/main/res/layout/activity_order_part_receive.xml
View file @
0f54a19c
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<LinearLayout
<data>
<variable
name=
"presenter"
type=
"com.dayu.order.presenter.orderpart_receive.PartRecievePresenter"
/>
</data>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/cl_white"
android:orientation=
"vertical"
android:padding=
"1dp"
>
android:background=
"@color/cl_white"
>
<RelativeLayout
android:id=
"@+id/title_idea"
...
...
@@ -31,18 +37,22 @@
</RelativeLayout>
<ImageView
style=
"@style/card_line"
/>
<ImageView
android:layout_below=
"@id/title_idea"
android:id=
"@+id/divider"
style=
"@style/card_line"
/>
<android.support.v4.widget.NestedScrollView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
android:layout_above=
"@+id/tv_commit"
android:layout_below=
"@+id/divider"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:focusableInTouchMode=
"true"
android:focusable=
"true"
android:focusableInTouchMode=
"true"
android:orientation=
"vertical"
>
...
...
@@ -156,6 +166,7 @@
android:gravity=
"top"
android:hint=
"@string/part_recieve_edit_hint"
android:padding=
"10dp"
android:text=
"@={presenter.remark}"
android:textColor=
"@color/cl_home_title_text_color"
android:textColorHint=
"@color/cl_selector_hui"
android:textSize=
"@dimen/sp_13.3"
/>
...
...
@@ -169,14 +180,20 @@
android:layout_marginBottom=
"15dp"
/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<TextView
android:id=
"@+id/tv_commit"
style=
"@style/btn_bottom_common"
android:layout_width=
"200dp"
android:layout_alignParentBottom=
"true"
android:layout_centerHorizontal=
"true"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"5dp"
android:layout_marginBottom=
"15dp"
android:text=
"@string/confirm_receive_goods"
android:onClick=
"@{()->presenter.confirmReceive()}"
/>
</
Linear
Layout>
</
Relative
Layout>
</layout>
\ No newline at end of file
</layout>
orderCenter/src/main/res/layout/activity_order_part_send.xml
View file @
0f54a19c
...
...
@@ -9,12 +9,11 @@
</data>
<
Linear
Layout
<
Relative
Layout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/cl_white"
android:orientation=
"vertical"
android:padding=
"1dp"
>
>
<RelativeLayout
android:id=
"@+id/title_idea"
...
...
@@ -39,18 +38,22 @@
</RelativeLayout>
<ImageView
style=
"@style/card_line"
/>
<ImageView
android:layout_below=
"@id/title_idea"
android:id=
"@+id/divider"
style=
"@style/card_line"
/>
<android.support.v4.widget.NestedScrollView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
android:layout_height=
"match_parent"
android:layout_above=
"@+id/tv_confirm"
android:layout_below=
"@+id/divider"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:focusableInTouchMode=
"true"
android:focusable=
"true"
android:focusableInTouchMode=
"true"
android:orientation=
"vertical"
>
...
...
@@ -66,7 +69,6 @@
android:textSize=
"14sp"
/>
<LinearLayout
style=
"@style/ll_part_content"
>
<TextView
...
...
@@ -75,7 +77,8 @@
<TextView
android:id=
"@+id/tv_company"
style=
"@style/tv_part_content"
/>
style=
"@style/tv_part_content"
android:text=
"@{presenter.company}"
/>
</LinearLayout>
<LinearLayout
style=
"@style/ll_part_content"
>
...
...
@@ -86,7 +89,8 @@
<TextView
android:id=
"@+id/tv_address"
style=
"@style/tv_part_content"
/>
style=
"@style/tv_part_content"
android:text=
"@{presenter.address}"
/>
</LinearLayout>
<LinearLayout
style=
"@style/ll_part_content"
>
...
...
@@ -97,7 +101,8 @@
<TextView
android:id=
"@+id/tv_name"
style=
"@style/tv_part_content"
/>
style=
"@style/tv_part_content"
android:text=
"@{presenter.contacter}"
/>
</LinearLayout>
<LinearLayout
style=
"@style/ll_part_content"
>
...
...
@@ -108,7 +113,8 @@
<TextView
android:id=
"@+id/tv_phone"
style=
"@style/tv_part_content"
/>
style=
"@style/tv_part_content"
android:text=
"@{presenter.contactPhone}"
/>
</LinearLayout>
...
...
@@ -126,40 +132,40 @@
<TextView
style=
"@style/tv_course_left"
android:layout_width=
"wrap_content"
android:layout_marginTop=
"5dp"
android:layout_marginLeft=
"10dp"
android:layout_marginTop=
"5dp"
android:drawableLeft=
"@drawable/icon_star_necessary"
android:text=
"@string/part_goods_list"
/>
<EditText
android:id=
"@+id/edt_remark"
android:layout_width=
"match_parent"
android:layout_height=
"120dp"
android:layout_gravity=
"center"
android:layout_marginTop=
"5dp"
android:layout_marginLeft=
"10dp"
android:layout_marginTop=
"5dp"
android:layout_marginRight=
"10dp"
android:background=
"@drawable/bg_input_gray_react"
android:gravity=
"top"
android:hint=
"@string/part_send_edit_hint"
android:padding=
"10dp"
android:text=
"@{presenter.goodsListStr}"
android:text=
"@
=
{presenter.goodsListStr}"
android:textColor=
"@color/cl_home_title_text_color"
android:textColorHint=
"@color/cl_selector_hui"
android:textSize=
"@dimen/sp_13.3"
/>
<android.support.v7.widget.RecyclerView
android:layout_marginLeft=
"10dp"
android:layout_marginRight=
"10dp"
android:id=
"@+id/photo"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:layout_marginTop=
"@dimen/dp_10"
/>
android:layout_marginRight=
"10dp"
/>
<LinearLayout
style=
"@style/ll_part_bottom"
<LinearLayout
style=
"@style/ll_part_bottom"
android:layout_marginLeft=
"10dp"
android:layout_marginRight=
"10dp"
>
android:layout_marginRight=
"10dp"
>
<TextView
style=
"@style/part_left_text"
...
...
@@ -169,21 +175,22 @@
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"35dp"
android:orientation=
"horizontal"
android:background=
"@drawable/bg_input_gray_react"
android:gravity=
"center_vertical"
>
android:orientation=
"horizontal"
>
<EditText
android:id=
"@+id/edt_trans_code"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:background=
"@color/transparent"
android:padding=
"5dp"
android:singleLine=
"true"
android:text=
"@{presenter.courierNum}"
/>
android:textColor=
"@color/common_text_color"
android:text=
"@={presenter.courierNum}"
android:textSize=
"@dimen/sp_13.3"
/>
<ImageView
android:id=
"@+id/scan"
android:layout_width=
"wrap_content"
...
...
@@ -195,11 +202,11 @@
</LinearLayout>
<LinearLayout
style=
"@style/ll_part_bottom"
<LinearLayout
style=
"@style/ll_part_bottom"
android:layout_marginLeft=
"10dp"
android:layout_marginRight=
"10dp"
android:layout_marginBottom=
"15dp"
>
android:layout_marginBottom=
"15dp"
>
<TextView
style=
"@style/part_left_text"
...
...
@@ -213,26 +220,29 @@
android:layout_height=
"35dp"
android:background=
"@drawable/btn_gray_commom"
android:drawableRight=
"@drawable/icon_arrow_down_gray32"
android:paddingRight=
"15dp"
android:gravity=
"center"
android:hint=
"@string/setlect_trans_company_hint"
android:text=
"@{presenter.courierCompany}"
android:onClick=
"@{()->presenter.getCourier()}"
/>
android:paddingRight=
"15dp"
android:text=
"@{presenter.courierCompany}"
/>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<TextView
android:id=
"@+id/tv_confirm"
style=
"@style/btn_bottom_common"
android:layout_width=
"200dp"
android:layout_alignParentBottom=
"true"
android:layout_centerHorizontal=
"true"
android:layout_gravity=
"center_horizontal"
android:layout_marginBottom=
"15dp"
android:layout_marginBottom=
"10dp"
android:layout_marginTop=
"5dp"
android:onClick=
"@{()->presenter.confirmSend()}"
android:text=
"@string/confirm_send_goods"
/>
android:text=
"@string/confirm_send_goods"
/>
</
Linear
Layout>
</
Relative
Layout>
</layout>
\ No newline at end of file
orderCenter/src/main/res/layout/fragment_operate_detail.xml
View file @
0f54a19c
...
...
@@ -137,6 +137,7 @@
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<Button
android:visibility=
"gone"
android:id=
"@+id/btn_comment"
android:layout_width=
"match_parent"
android:layout_height=
"35dp"
...
...
orderCenter/src/main/res/layout/item_order_part_list.xml
View file @
0f54a19c
...
...
@@ -62,7 +62,7 @@
android:layout_alignParentRight=
"true"
android:layout_alignParentBottom=
"true"
android:layout_margin=
"10dp"
android:text=
"
待收货
"
android:text=
"
@string/to_be_received_goods
"
/>
</RelativeLayout>
</layout>
\ No newline at end of file
orderCenter/src/main/res/values/strings.xml
View file @
0f54a19c
...
...
@@ -42,4 +42,9 @@
<string
name=
"pls_fill_send_info"
>
请填写发货信息
</string>
<string
name=
"part_recieve_edit_hint"
>
收货如发现异常情况,请详细说明情况。
</string>
<string
name=
"part_send_edit_hint"
>
请详细说明货物品牌品名型号和数量
</string>
<string
name=
"to_be_received_goods"
>
待收货
</string>
<string
name=
"already_received_goods"
>
已收货
</string>
<string
name=
"pls_fill_goods_list"
>
请填写货物清单
</string>
<string
name=
"pls_fill_trans_code"
>
请填写物流单号
</string>
<string
name=
"pls_fill_trans_company"
>
请选择物流公司
</string>
</resources>
saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java
View file @
0f54a19c
...
...
@@ -93,8 +93,8 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr
mBind
.
tvCompany
.
setText
(
mDetail
.
getProviderName
());
mBind
.
tvCompanyPn
.
setText
(
mDetail
.
getPn
());
mBind
.
tvSinglePrice
.
setText
(
CommonUtils
.
getIntMoneyStr
(
mActivity
,
mDetail
.
getPrice
()));
mBind
.
tvMarketPrice
.
setText
(
CommonUtils
.
getIntMoneyStr
(
mActivity
,
mDetail
.
getMarketPrice
())
);
//
mBind.tvMarketPrice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
mBind
.
tvMarketPrice
.
setText
(
" "
+
CommonUtils
.
getIntMoneyStr
(
mActivity
,
mDetail
.
getMarketPrice
())+
" "
);
mBind
.
tvMarketPrice
.
getPaint
().
setFlags
(
Paint
.
STRIKE_THRU_TEXT_FLAG
);
mBind
.
tvDesc
.
setText
(
mDetail
.
getBrief
());
}
...
...
saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleInstructionFragment.java
View file @
0f54a19c
...
...
@@ -184,7 +184,7 @@ public class SaleInstructionFragment extends BaseFragment<SImplePresenter, Fragm
@Override
public
void
onKeyboardHide
()
{
weakHandler
.
postDelayed
(()
->
{
mBind
.
btnComment
.
setVisibility
(
View
.
VISIBLE
);
//
mBind.btnComment.setVisibility(View.VISIBLE);
},
100
);
}
});
...
...
saleCenter/src/main/res/layout/activity_product_details.xml
View file @
0f54a19c
...
...
@@ -6,26 +6,35 @@
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<RelativeLayout
android:id=
"@+id/rl_title"
style=
"@style/title"
>
<TextView
android:id=
"@+id/tv_title"
style=
"@style/text_title"
android:text=
"@string/product_detail"
/>
<ImageView
android:id=
"@+id/title_back"
style=
"@style/title_image_back"
/>
<ImageView
style=
"@style/card_line"
android:layout_alignParentBottom=
"true"
/>
</RelativeLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingTop=
"8dp"
android:paddingBottom=
"8dp"
android:paddingRight=
"8dp"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/title_back"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:src=
"@drawable/back_btn_normal"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"15dp"
android:layout_marginRight=
"15dp"
android:layout_marginBottom=
"5dp"
android:gravity=
"center"
>
<Button
...
...
@@ -48,7 +57,9 @@
</LinearLayout>
</LinearLayout>
<ImageView
style=
"@style/card_line"
/>
<ImageView
style=
"@style/card_line"
android:layout_alignParentBottom=
"true"
/>
<FrameLayout
android:id=
"@+id/fl_container"
...
...
saleCenter/src/main/res/layout/fragment_sale_instruction.xml
View file @
0f54a19c
...
...
@@ -155,6 +155,7 @@
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<Button
android:visibility=
"gone"
android:id=
"@+id/btn_comment"
android:layout_width=
"match_parent"
android:layout_height=
"40dp"
...
...
saleCenter/src/main/res/values/strings.xml
View file @
0f54a19c
<resources>
<string
name=
"app_name"
>
SaleCenter
</string>
<string
name=
"product_detail"
>
商品详情
</string>
</resources>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment