Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
ocr-oa
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈赛康
ocr-oa
Commits
da7093bf
Commit
da7093bf
authored
Apr 16, 2018
by
陈赛康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ocr导出+分享功能及业务完;搜索功能导出与分享待分离;
parent
0fdb8fa8
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
732 additions
and
445 deletions
+732
-445
build.gradle
app/build.gradle
+2
-2
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-0
Configs.java
...n/java/cn/com/bril/androidocr/studio/configs/Configs.java
+3
-2
RequestConfig.java
.../cn/com/bril/androidocr/studio/configs/RequestConfig.java
+13
-5
HttpHolder.java
...n/java/cn/com/bril/androidocr/studio/http/HttpHolder.java
+75
-12
MainActivity.java
.../com/bril/androidocr/studio/ui/activity/MainActivity.java
+52
-200
VertifyActivity.java
...m/bril/androidocr/studio/ui/activity/VertifyActivity.java
+53
-42
FragmentListAdapter.java
...ril/androidocr/studio/ui/adapter/FragmentListAdapter.java
+17
-2
ExportFragment.java
...om/bril/androidocr/studio/ui/fragment/ExportFragment.java
+235
-84
ShareFragment.java
...com/bril/androidocr/studio/ui/fragment/ShareFragment.java
+244
-86
FileUtil.java
...in/java/cn/com/bril/androidocr/studio/utils/FileUtil.java
+15
-0
ShareUtil.java
...n/java/cn/com/bril/androidocr/studio/utils/ShareUtil.java
+11
-1
word.png
app/src/main/res/drawable/word.png
+0
-0
export_layout.xml
app/src/main/res/layout/export_layout.xml
+2
-1
listview_item_layout.xml
app/src/main/res/layout/listview_item_layout.xml
+5
-6
styles.xml
app/src/main/res/values/styles.xml
+2
-2
No files found.
app/build.gradle
View file @
da7093bf
...
@@ -10,8 +10,8 @@ android {
...
@@ -10,8 +10,8 @@ android {
applicationId
"cn.com.bril.androidocr.studio"
applicationId
"cn.com.bril.androidocr.studio"
minSdkVersion
21
minSdkVersion
21
targetSdkVersion
25
targetSdkVersion
25
versionCode
7
versionCode
14
versionName
"
2.7
.0"
versionName
"
3.4
.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
}
buildTypes
{
buildTypes
{
...
...
app/src/main/AndroidManifest.xml
View file @
da7093bf
...
@@ -39,6 +39,9 @@
...
@@ -39,6 +39,9 @@
android:name=
".ui.activity.OcrRecordActivity"
android:name=
".ui.activity.OcrRecordActivity"
android:launchMode=
"singleTask"
/>
android:launchMode=
"singleTask"
/>
<activity
android:name=
".ui.activity.SearchActivity"
></activity>
<activity
android:name=
".ui.activity.SearchActivity"
></activity>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
app/src/main/java/cn/com/bril/androidocr/studio/configs/Configs.java
View file @
da7093bf
...
@@ -8,8 +8,8 @@ import android.os.Environment;
...
@@ -8,8 +8,8 @@ import android.os.Environment;
public
class
Configs
{
public
class
Configs
{
public
static
String
USER_NAME
=
"
部门负责人
"
;
public
static
String
USER_NAME
=
"
科员
"
;
public
static
String
USER_ID
=
"1
2
"
;
public
static
String
USER_ID
=
"1
1
"
;
public
final
static
String
IMAGE_BASE
=
Environment
public
final
static
String
IMAGE_BASE
=
Environment
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/images"
;
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/images"
;
...
@@ -17,6 +17,7 @@ public class Configs {
...
@@ -17,6 +17,7 @@ public class Configs {
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/pdfs"
;
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/pdfs"
;
public
final
static
String
TXT_BASE
=
Environment
public
final
static
String
TXT_BASE
=
Environment
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/txts"
;
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/txts"
;
// public final static String TXT_BASE= "sdcard/documentocr/txts";
public
final
static
String
WORD_BASE
=
Environment
public
final
static
String
WORD_BASE
=
Environment
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/docs"
;
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/docs"
;
}
}
app/src/main/java/cn/com/bril/androidocr/studio/configs/RequestConfig.java
View file @
da7093bf
...
@@ -22,14 +22,22 @@ public class RequestConfig {
...
@@ -22,14 +22,22 @@ public class RequestConfig {
//分享记录
//分享记录
public
static
String
SHARE_RECORD_URL
=
BASE_URL
+
"cc_sharing_records"
;
public
static
String
SHARE_RECORD_URL
=
BASE_URL
+
"cc_sharing_records"
;
//批量导出
//批量导出
public
static
String
BATCH_EXPORT_URL
=
BASE_URL
+
"cc_
ocr_file
s/create/batch"
;
public
static
String
BATCH_EXPORT_URL
=
BASE_URL
+
"cc_
export_record
s/create/batch"
;
//批量删除
//批量删除
public
static
String
BATCH_DELETE_URL
=
BASE_URL
+
"cc_export_records/delete/batch"
;
public
static
String
BATCH_DELETE_URL
=
BASE_URL
+
"cc_export_records/delete/batch"
;
//文件下载
//文件下载
public
static
String
DOWN_LOAD_URL
=
BASE_URL
+
"file_down"
;
public
static
String
DOWN_LOAD_URL
=
BASE_URL
+
"file_down"
;
//分享单个文件
public
final
static
String
SHARE_ALONE_URL
=
BASE_URL
+
"cc_sharing_records/new"
;
//分享列表
public
final
static
String
SHARE_LIST_URL
=
BASE_URL
+
"cc_sharing_records"
;
//批量分享
public
final
static
String
BATCH_SHARE_URL
=
BASE_URL
+
"cc_sharing_records/create/batch"
;
//批量删除分享记录
public
final
static
String
BATCH_DELETE_SHARE_URL
=
BASE_URL
+
"cc_sharing_records/delete/batch"
;
//批量创建文件
public
final
static
String
BATCH_CREATE_FILE_URL
=
BASE_URL
+
"cc_files/create/batch"
;
//创建文件
public
final
static
String
CREATE_FILE_URL
=
BASE_URL
+
"cc_files/new"
;
}
}
app/src/main/java/cn/com/bril/androidocr/studio/http/HttpHolder.java
View file @
da7093bf
...
@@ -13,12 +13,18 @@ import java.util.Iterator;
...
@@ -13,12 +13,18 @@ import java.util.Iterator;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
cn.com.bril.androidocr.studio.beans.OcrInfo
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.ShareInfo
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.interf.HttpFileCallBack
;
import
cn.com.bril.androidocr.studio.interf.OnHttpListener
;
import
cn.com.bril.androidocr.studio.interf.OnHttpListener
;
import
cn.com.bril.androidocr.studio.ui.activity.VertifyActivity
;
import
cn.com.bril.androidocr.studio.ui.activity.VertifyActivity
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
static
cn
.
com
.
bril
.
androidocr
.
studio
.
configs
.
RequestConfig
.
CREATE_FILE_URL
;
/**
/**
* Created by sunny on 2018-3-12.
* Created by sunny on 2018-3-12.
*/
*/
...
@@ -38,7 +44,7 @@ public class HttpHolder {
...
@@ -38,7 +44,7 @@ public class HttpHolder {
}
}
x
.
http
().
post
(
params
,
callBack
);
x
.
http
().
post
(
params
,
callBack
);
}
}
//上传文件
public
static
void
upLoadFile
(
String
path
,
VertifyActivity
.
HttpCallBack
callBack
){
public
static
void
upLoadFile
(
String
path
,
VertifyActivity
.
HttpCallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
UP_FILE
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
UP_FILE
);
List
<
KeyValue
>
list
=
new
ArrayList
<>();
List
<
KeyValue
>
list
=
new
ArrayList
<>();
...
@@ -49,7 +55,6 @@ public class HttpHolder {
...
@@ -49,7 +55,6 @@ public class HttpHolder {
params
.
setRequestBody
(
body
);
params
.
setRequestBody
(
body
);
x
.
http
().
post
(
params
,
callBack
);
x
.
http
().
post
(
params
,
callBack
);
};
};
//创建记录
//创建记录
public
static
void
createFileRecord
(
String
url
,
Map
<
String
,
Object
>
map
,
Callback
.
CommonCallback
<
String
>
listener
){
public
static
void
createFileRecord
(
String
url
,
Map
<
String
,
Object
>
map
,
Callback
.
CommonCallback
<
String
>
listener
){
RequestParams
params
=
new
RequestParams
(
url
);
RequestParams
params
=
new
RequestParams
(
url
);
...
@@ -65,18 +70,12 @@ public class HttpHolder {
...
@@ -65,18 +70,12 @@ public class HttpHolder {
}
}
//批量导出
//批量导出
/**
*
* @param infos
* @param http
*/
public
static
void
volumeExport
(
List
<
OcrRootBean
.
Superior
>
infos
,
final
OnHttpListener
http
){
public
static
void
volumeExport
(
List
<
OcrRootBean
.
Superior
>
infos
,
final
OnHttpListener
http
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_EXPORT_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_EXPORT_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"ocr"
);
params
.
addHeader
(
"X-Auth-Token"
,
"ocr"
);
String
json
=
GsonUtil
.
getInstance
().
toJson
(
infos
);
String
json
=
GsonUtil
.
getInstance
().
toJson
(
infos
);
params
.
addBodyParameter
(
"params"
,
json
);
params
.
addBodyParameter
(
"params"
,
json
);
x
.
http
().
ge
t
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
x
.
http
().
pos
t
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
@Override
@Override
public
void
onSuccess
(
String
result
)
{
public
void
onSuccess
(
String
result
)
{
http
.
success
(
""
,
result
);
http
.
success
(
""
,
result
);
...
@@ -93,7 +92,7 @@ public class HttpHolder {
...
@@ -93,7 +92,7 @@ public class HttpHolder {
}
}
});
});
}
}
//批量删除
//批量删除
导出记录
public
static
void
volumeDelete
(
final
List
<
OcrRootBean
.
Superior
>
list
,
final
OnHttpListener
listener
){
public
static
void
volumeDelete
(
final
List
<
OcrRootBean
.
Superior
>
list
,
final
OnHttpListener
listener
){
JSONArray
array
=
new
JSONArray
();
JSONArray
array
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
...
@@ -118,15 +117,79 @@ public class HttpHolder {
...
@@ -118,15 +117,79 @@ public class HttpHolder {
}
}
});
});
}
}
//单个下载
//单个下载
public
static
void
downLoad
(
Map
<
String
,
String
>
map
,
MainHttp
CallBack
callBack
){
public
static
void
downLoad
(
Map
<
String
,
String
>
map
,
HttpFile
CallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
Iterator
<
Map
.
Entry
<
String
,
String
>>
it
=
map
.
entrySet
().
iterator
();
Iterator
<
Map
.
Entry
<
String
,
String
>>
it
=
map
.
entrySet
().
iterator
();
while
(
it
.
hasNext
()){
while
(
it
.
hasNext
()){
Map
.
Entry
<
String
,
String
>
entry
=
it
.
next
();
Map
.
Entry
<
String
,
String
>
entry
=
it
.
next
();
if
(
entry
.
getKey
().
equals
(
"downloadName"
)){
if
(
entry
.
getValue
().
contains
(
"doc"
))
params
.
setSaveFilePath
(
Configs
.
WORD_BASE
+
"/"
+
entry
.
getValue
().
substring
(
entry
.
getValue
().
lastIndexOf
(
"/"
)+
1
));
}
params
.
addBodyParameter
(
entry
.
getKey
(),
String
.
valueOf
(
entry
.
getValue
()));
params
.
addBodyParameter
(
entry
.
getKey
(),
String
.
valueOf
(
entry
.
getValue
()));
}
}
x
.
http
().
get
(
params
,
callBack
);
x
.
http
().
get
(
params
,
callBack
);
}
}
//分享单个文件
public
static
void
shareCcFile
(
OcrInfo
info
,
VertifyActivity
.
HttpCallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
SHARE_ALONE_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"share"
);
params
.
addBodyParameter
(
"sharingPeple"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
params
.
addBodyParameter
(
"type"
,
"0"
);
params
.
addBodyParameter
(
"fileId"
,
info
.
getId
());
params
.
addBodyParameter
(
"fileName"
,
info
.
getFileName
());
params
.
addBodyParameter
(
"filePath"
,
info
.
getFilePath
());
x
.
http
().
post
(
params
,
callBack
);
}
//批量分享
public
static
void
batchShareCcFile
(
List
<
ShareInfo
>
infos
,
MainHttpCallBack
callBack
)
{
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_SHARE_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"share"
);
params
.
addBodyParameter
(
"params"
,
GsonUtil
.
getInstance
().
toJson
(
infos
));
x
.
http
().
post
(
params
,
callBack
);
}
//批量删除分享记录
public
static
void
batchDeleteShareRecord
(
List
<
ShareInfo
>
list
,
MainHttpCallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_DELETE_SHARE_URL
);
JSONArray
array
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
array
.
put
(
list
.
get
(
i
).
getId
());
params
.
addBodyParameter
(
"ids"
,
array
.
toString
());
x
.
http
().
post
(
params
,
callBack
);
}
//批量创建文件
public
static
void
batchCreateFiles
(
List
<
OcrRootBean
.
Cc_file
>
files
,
MainHttpCallBack
callBack
){
List
<
OcrRootBean
.
Cc_file
>
newFiles
=
new
ArrayList
<>();
OcrRootBean
.
Cc_file
cc_file
;
for
(
OcrRootBean
.
Cc_file
file:
files
){
cc_file
=
new
OcrRootBean
.
Cc_file
(
file
.
getFileName
(),
file
.
getFilePath
(),
file
.
getFileSuffix
(),
file
.
getUploadPeple
(),
file
.
getFileType
());
newFiles
.
add
(
cc_file
);
}
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_CREATE_FILE_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"batch_create"
);
params
.
addBodyParameter
(
"params"
,
GsonUtil
.
getInstance
().
toJson
(
newFiles
));
x
.
http
().
post
(
params
,
callBack
);
}
//创建文件
public
static
void
newFileCreate
(
OcrRootBean
.
Cc_file
cc_file
,
MainHttpCallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
CREATE_FILE_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"new"
);
params
.
addBodyParameter
(
"fileName"
,
cc_file
.
getFileName
());
params
.
addBodyParameter
(
"filePath"
,
cc_file
.
getFilePath
());
params
.
addBodyParameter
(
"fileSuffix"
,
cc_file
.
getFileSuffix
());
params
.
addBodyParameter
(
"uploadPeple"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
params
.
addBodyParameter
(
"fileType"
,
cc_file
.
getFileType
());
x
.
http
().
post
(
params
,
callBack
);
}
//编辑分享记录
public
static
void
editShareRecord
(
String
id
,
String
name
,
MainHttpCallBack
callBack
){
String
url
=
RequestConfig
.
SHARE_LIST_URL
+
"/"
+
id
+
"/edit"
;
RequestParams
params
=
new
RequestParams
(
url
);
params
.
addHeader
(
"X-Auth-Token"
,
"edit"
);
params
.
addBodyParameter
(
"fileName"
,
name
);
x
.
http
().
post
(
params
,
callBack
);
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/ui/activity/MainActivity.java
View file @
da7093bf
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
activity
;
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
activity
;
import
android.Manifest
;
import
android.app.AlertDialog
;
import
android.app.AlertDialog
;
import
android.app.ProgressDialog
;
import
android.app.ProgressDialog
;
import
android.content.ComponentName
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.ServiceConnection
;
import
android.content.ServiceConnection
;
import
android.content.pm.PackageManager
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.graphics.drawable.BitmapDrawable
;
import
android.graphics.drawable.BitmapDrawable
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.IBinder
;
import
android.os.IBinder
;
import
android.os.Message
;
import
android.os.RemoteException
;
import
android.os.RemoteException
;
import
android.support.annotation.IdRes
;
import
android.support.annotation.IdRes
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.NonNull
;
import
android.support.design.widget.FloatingActionButton
;
import
android.support.design.widget.FloatingActionButton
;
import
android.support.v4.app.ActivityCompat
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.content.ContextCompat
;
import
android.support.v4.view.ViewPager
;
import
android.support.v4.view.ViewPager
;
import
android.util.Log
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.PopupWindow
;
import
android.widget.PopupWindow
;
...
@@ -34,39 +35,26 @@ import android.widget.Toast;
...
@@ -34,39 +35,26 @@ import android.widget.Toast;
import
com.bril.baoding.studio.aidl.GetUserid
;
import
com.bril.baoding.studio.aidl.GetUserid
;
import
com.scanlibrary.ScanConstants
;
import
com.scanlibrary.ScanConstants
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
org.xutils.http.RequestParams
;
import
org.xutils.x
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.ButterKnife
;
import
butterknife.OnClick
;
import
butterknife.OnClick
;
import
cn.com.bril.androidocr.studio.OcrApplication
;
import
cn.com.bril.androidocr.studio.OcrApplication
;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
import
cn.com.bril.androidocr.studio.http.MainHttpCallBack
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.OnHttpListener
;
import
cn.com.bril.androidocr.studio.ui.adapter.FragmentListAdapter
;
import
cn.com.bril.androidocr.studio.ui.adapter.TabFragmentPagerAdapter
;
import
cn.com.bril.androidocr.studio.ui.adapter.TabFragmentPagerAdapter
;
import
cn.com.bril.androidocr.studio.ui.fragment.ExportFragment
;
import
cn.com.bril.androidocr.studio.ui.fragment.ExportFragment
;
import
cn.com.bril.androidocr.studio.ui.fragment.ShareFragment
;
import
cn.com.bril.androidocr.studio.ui.fragment.ShareFragment
;
import
cn.com.bril.androidocr.studio.ui.widget.NoScrollViewPager
;
import
cn.com.bril.androidocr.studio.ui.widget.NoScrollViewPager
;
import
cn.com.bril.androidocr.studio.utils.CustomDialogUtils
;
import
cn.com.bril.androidocr.studio.utils.FileUtil
;
import
cn.com.bril.androidocr.studio.utils.ScreenUtil
;
import
cn.com.bril.androidocr.studio.utils.ScreenUtil
;
import
cn.com.bril.androidocr.studio.utils.ViewUtil
;
import
cn.com.bril.androidocr.studio.utils.ViewUtil
;
public
class
MainActivity
extends
BaseActivity
implements
FragmentListAdapter
.
ListTextClickListener
,
View
.
OnClickListener
,
HandleMenuListener
,
ExportFragment
.
NoticeMessageToMain
,
OnHttpListener
{
import
static
cn
.
com
.
bril
.
androidocr
.
studio
.
configs
.
RequestConfig
.
PERMISSION_REQUEST_CODE
;
public
class
MainActivity
extends
BaseActivity
implements
View
.
OnClickListener
,
HandleMenuListener
,
ExportFragment
.
NoticeMessageToMain
{
@BindView
(
R
.
id
.
layout_1
)
@BindView
(
R
.
id
.
layout_1
)
...
@@ -124,21 +112,19 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -124,21 +112,19 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
private
int
type
;
//获取图片类型
private
int
type
;
//获取图片类型
private
GetUserid
mService
;
private
GetUserid
mService
;
private
boolean
isTabMenuShow
=
false
;
private
List
<
Fragment
>
fragmentList
;
private
List
<
Fragment
>
fragmentList
;
private
ServiceConnection
mServiceConnection
=
new
ServiceConnection
()
{
private
ServiceConnection
mServiceConnection
=
new
ServiceConnection
()
{
@Override
@Override
public
void
onServiceDisconnected
(
ComponentName
arg0
)
{
public
void
onServiceDisconnected
(
ComponentName
arg0
)
{
mService
=
null
;
mService
=
null
;
}
}
@Override
@Override
public
void
onServiceConnected
(
ComponentName
arg0
,
IBinder
arg1
)
{
public
void
onServiceConnected
(
ComponentName
arg0
,
IBinder
arg1
)
{
mService
=
GetUserid
.
Stub
.
asInterface
(
arg1
);
mService
=
GetUserid
.
Stub
.
asInterface
(
arg1
);
try
{
try
{
Configs
.
USER_ID
=
mService
.
getUserid
()
+
""
;
Configs
.
USER_ID
=
mService
.
getUserid
()
+
""
;
Configs
.
USER_NAME
=
mService
.
getUsername
();
Configs
.
USER_NAME
=
mService
.
getUsername
();
Log
.
e
(
"TAG"
,
Configs
.
USER_ID
+
";"
+
Configs
.
USER_NAME
);
}
catch
(
RemoteException
e
)
{
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -148,13 +134,10 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -148,13 +134,10 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
private
AlertDialog
dialog
;
private
AlertDialog
dialog
;
private
ExportFragment
exportFragment
;
private
ExportFragment
exportFragment
;
private
ShareFragment
shareFragment
;
private
ShareFragment
shareFragment
;
private
List
<
OcrRootBean
>
selectedInfos
;
private
OcrRootBean
clickedBean
;
private
EditText
reNameEdit
;
//更改文件名
private
TabFragmentPagerAdapter
adapter
;
private
TabFragmentPagerAdapter
adapter
;
private
boolean
isAllSelected
=
false
;
private
boolean
isAllSelected
=
false
;
private
ArrayList
<
Uri
>
shareFileUris
;
private
PopupWindow
rightMenuWindow
;
private
PopupWindow
rightMenuWindow
;
int
selectedCount
=
0
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
...
@@ -171,6 +154,8 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -171,6 +154,8 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
initEvents
();
initEvents
();
checkPermission
();
dialog
=
new
ProgressDialog
(
this
);
dialog
=
new
ProgressDialog
(
this
);
}
}
...
@@ -179,7 +164,20 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -179,7 +164,20 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
intent
.
setPackage
(
"com.bril.baoding.studio"
);
intent
.
setPackage
(
"com.bril.baoding.studio"
);
bindService
(
intent
,
mServiceConnection
,
Context
.
BIND_AUTO_CREATE
);
bindService
(
intent
,
mServiceConnection
,
Context
.
BIND_AUTO_CREATE
);
}
}
public
void
checkPermission
()
{
if
(
ContextCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
)
!=
PackageManager
.
PERMISSION_GRANTED
)
{
//权限还没有授予,需要在这里写申请权限的代码
ActivityCompat
.
requestPermissions
(
this
,
new
String
[]{
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
},
PERMISSION_REQUEST_CODE
);
}
else
{
//权限已经被授予,在这里直接写要执行的相应方法即可
// creatDir(Configs.IMAGE_CACHE);
// getIntentData();
}
}
private
void
initViews
()
{
private
void
initViews
()
{
rightIv
.
setVisibility
(
View
.
VISIBLE
);
rightIv
.
setVisibility
(
View
.
VISIBLE
);
rightTv
.
setVisibility
(
View
.
GONE
);
rightTv
.
setVisibility
(
View
.
GONE
);
...
@@ -196,10 +194,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -196,10 +194,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
}
}
public
void
setIconSize
()
{
public
void
setIconSize
()
{
//设置bottom icon 大小
//设置bottom icon 大小
...
@@ -260,6 +254,17 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -260,6 +254,17 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
});
});
}
}
@Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@NonNull
String
[]
permissions
,
@NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
PERMISSION_REQUEST_CODE
){
for
(
int
grant:
grantResults
){
if
(
grant
!=
PackageManager
.
PERMISSION_GRANTED
)
Toast
.
makeText
(
this
,
"请开启读取与写入权限"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
@Override
@Override
protected
void
onResume
()
{
protected
void
onResume
()
{
super
.
onResume
();
super
.
onResume
();
...
@@ -332,8 +337,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -332,8 +337,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
// rightMenuWindow.showAsDropDown(rightIv);
// rightMenuWindow.showAsDropDown(rightIv);
}
}
@Override
@Override
public
void
onBackPressed
()
{
public
void
onBackPressed
()
{
if
(
tabBottom
.
getVisibility
()
==
View
.
VISIBLE
)
{
if
(
tabBottom
.
getVisibility
()
==
View
.
VISIBLE
)
{
...
@@ -348,46 +351,27 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -348,46 +351,27 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
}
}
}
}
@Override
public
void
onListTextCallBack
(
OcrRootBean
info
)
{
clickedBean
=
info
;
View
view
=
LayoutInflater
.
from
(
this
).
inflate
(
R
.
layout
.
rename_dialog_layout
,
null
);
view
.
findViewById
(
R
.
id
.
normal_name
).
setOnClickListener
(
this
);
view
.
findViewById
(
R
.
id
.
positive
).
setOnClickListener
(
this
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
this
);
builder
.
setView
(
view
);
reNameEdit
=
(
EditText
)
view
.
findViewById
(
R
.
id
.
edit
);
reNameEdit
.
setHint
(
info
.
getIncludes
().
getCc_file
().
getFileName
());
dialog
=
builder
.
create
();
dialog
.
show
();
CustomDialogUtils
.
setDialogSize
(
this
,
dialog
);
}
@Override
@Override
public
void
onClick
(
View
v
)
{
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
())
{
switch
(
v
.
getId
())
{
case
R
.
id
.
positive
:
reNameFile
();
dialog
.
dismiss
();
break
;
case
R
.
id
.
normal_name
:
dialog
.
dismiss
();
break
;
case
R
.
id
.
export
:
HttpHolder
.
volumeExport
(
reStatusList
(
0
),
this
);
break
;
case
R
.
id
.
share
:
case
R
.
id
.
share
:
if
(
selectedInfos
!=
null
&&
selectedInfos
.
size
()
>
0
)
{
if
(
selectedCount
>
0
)
{
// Toast.makeText(this,"正在检测需下载文件,请稍等...",Toast.LENGTH_SHORT).show();
setHandleMenu
(
View
.
GONE
);
if
(
viewPager
.
getCurrentItem
()==
0
)
getNotLoadFilesAndLoad
(
selectedInfos
);
exportFragment
.
handleShareAction
();
else
shareFragment
.
handleShareAction
();
}
else
}
else
Toast
.
makeText
(
this
,
"请选择要分享的数据"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"请选择要分享的数据"
,
Toast
.
LENGTH_SHORT
).
show
();
break
;
break
;
case
R
.
id
.
delete
:
case
R
.
id
.
delete
:
if
(
selected
Infos
!=
null
&&
selectedInfos
.
size
()
>
0
)
{
if
(
selected
Count
>
0
)
{
setHandleMenu
(
View
.
GONE
);
setHandleMenu
(
View
.
GONE
);
HttpHolder
.
volumeDelete
(
reStatusList
(-
1
),
this
);
if
(
viewPager
.
getCurrentItem
()==
0
)
exportFragment
.
handleDeleteAction
();
else
shareFragment
.
handleDeletAction
();
}
else
}
else
Toast
.
makeText
(
this
,
"请选择要删除的数据"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
this
,
"请选择要删除的数据"
,
Toast
.
LENGTH_SHORT
).
show
();
break
;
break
;
...
@@ -405,26 +389,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -405,26 +389,6 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
}
}
}
}
public
List
<
OcrRootBean
.
Superior
>
reStatusList
(
int
type
)
{
List
<
OcrRootBean
.
Superior
>
list
=
new
ArrayList
<>();
for
(
OcrRootBean
info
:
selectedInfos
)
{
if
(
type
!=
-
1
)
info
.
getSuperior
().
setType
(
type
);
list
.
add
(
info
.
getSuperior
());
}
return
list
;
}
private
void
reNameFile
()
{
String
url
=
RequestConfig
.
EDIT_FILE_URL
+
clickedBean
.
getSuperior
().
getFileId
()
+
"/edit"
;
RequestParams
params
=
new
RequestParams
(
url
);
params
.
addHeader
(
"X-Auth-Token"
,
"1"
);
String
lastName
=
clickedBean
.
getIncludes
().
getCc_file
().
getFileName
();
params
.
addBodyParameter
(
"fileName"
,
reNameEdit
.
getText
().
toString
()+
lastName
.
substring
(
lastName
.
indexOf
(
"."
)));
//缺少修改人
x
.
http
().
post
(
params
,
new
MainHttpCallBack
(
"edit"
,
this
));
}
@Override
@Override
public
void
setHandleMenu
(
int
v
)
{
public
void
setHandleMenu
(
int
v
)
{
if
(
View
.
GONE
==
v
)
{
if
(
View
.
GONE
==
v
)
{
...
@@ -433,7 +397,7 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -433,7 +397,7 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
topBarLayout
.
setVisibility
(
View
.
VISIBLE
);
topBarLayout
.
setVisibility
(
View
.
VISIBLE
);
mainBottomMenu
.
setVisibility
(
View
.
VISIBLE
);
mainBottomMenu
.
setVisibility
(
View
.
VISIBLE
);
viewPager
.
setScanScroll
(
true
);
viewPager
.
setScanScroll
(
true
);
adapter
.
notifyDataSetChanged
();
//
adapter.notifyDataSetChanged();
}
else
{
}
else
{
tabHead
.
setVisibility
(
View
.
VISIBLE
);
tabHead
.
setVisibility
(
View
.
VISIBLE
);
tabBottom
.
setVisibility
(
View
.
VISIBLE
);
tabBottom
.
setVisibility
(
View
.
VISIBLE
);
...
@@ -444,122 +408,10 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
...
@@ -444,122 +408,10 @@ public class MainActivity extends BaseActivity implements FragmentListAdapter.Li
}
}
}
}
private
void
getNotLoadFilesAndLoad
(
List
<
OcrRootBean
>
list
)
{
List
<
OcrRootBean
>
loadBeans
=
new
ArrayList
<>();
shareFileUris
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
OcrRootBean
.
Cc_file
cc_file
=
list
.
get
(
i
).
getIncludes
().
getCc_file
();
String
type
=
cc_file
.
getFileName
().
substring
(
cc_file
.
getFileName
().
indexOf
(
"."
)
+
1
);
String
filePath
=
""
;
if
(
"doc"
.
equals
(
type
)
||
"docs"
.
equals
(
type
))
filePath
=
Configs
.
WORD_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"txt"
.
equals
(
type
))
filePath
=
Configs
.
TXT_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"pdf"
.
equals
(
type
))
filePath
=
Configs
.
PDF_BASE
+
"/"
+
cc_file
.
getFileName
();
shareFileUris
.
add
(
Uri
.
parse
(
filePath
));
if
(!
FileUtil
.
isFileExist
(
filePath
))
loadBeans
.
add
(
selectedInfos
.
get
(
i
));
}
if
(
loadBeans
.
size
()
!=
0
)
{
dialog
.
setMessage
(
"正在下载,请稍后"
);
dialog
.
show
();
loadFile
(
loadBeans
.
get
(
0
));
handler
=
new
LoadFileHandler
(
loadBeans
);
}
}
private
void
loadFile
(
OcrRootBean
bean
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"fileName"
,
bean
.
getIncludes
().
getCc_file
().
getFilePath
());
map
.
put
(
"downloadName"
,
bean
.
getIncludes
().
getCc_file
().
getFileName
());
HttpHolder
.
downLoad
(
map
,
new
MainHttpCallBack
(
"batch_load"
,
this
));
}
private
LoadFileHandler
handler
;
private
int
loadIndex
=
0
;
public
class
LoadFileHandler
extends
Handler
{
List
<
OcrRootBean
>
loadList
;
public
LoadFileHandler
(
List
<
OcrRootBean
>
list
)
{
loadList
=
list
;
}
@Override
public
void
handleMessage
(
Message
msg
)
{
int
position
=
msg
.
arg1
;
switch
(
msg
.
what
)
{
case
0
:
Toast
.
makeText
(
MainActivity
.
this
,
loadList
.
get
(
position
).
getIncludes
().
getCc_file
().
getFileName
()
+
"下载失败,请稍后重试"
,
Toast
.
LENGTH_SHORT
).
show
();
break
;
case
1
:
loadIndex
++;
if
(
loadIndex
<
loadList
.
size
())
loadFile
(
loadList
.
get
(
loadIndex
));
else
{
dialog
.
dismiss
();
handleShareAction
(
selectedInfos
);
}
break
;
}
}
}
private
void
handleShareAction
(
List
<
OcrRootBean
>
rootBeen
)
{
//分享文件
Intent
intent
=
new
Intent
(
Intent
.
ACTION_SEND_MULTIPLE
);
//发送多个文件
intent
.
setType
(
"*/*"
);
//多个文件格式
intent
.
putParcelableArrayListExtra
(
Intent
.
EXTRA_STREAM
,
shareFileUris
);
//Intent.EXTRA_STREAM同于传输文件流
startActivity
(
Intent
.
createChooser
(
intent
,
"多文件分享"
));
setHandleMenu
(
View
.
GONE
);
}
@Override
@Override
public
void
noticeMessage
(
List
<
OcrRootBean
>
list
)
{
public
void
noticeMessage
(
int
size
)
{
selected
Infos
=
list
;
selected
Count
=
size
;
num
.
setText
(
"已选择"
+
list
.
size
()
+
"个"
);
num
.
setText
(
"已选择"
+
size
+
"个"
);
}
}
//xutils的接口回调
@Override
public
void
success
(
String
type
,
String
result
)
{
if
(
"edit"
.
equals
(
type
))
{
Toast
.
makeText
(
this
,
"修改成功"
,
Toast
.
LENGTH_SHORT
).
show
();
adapter
.
notifyDataSetChanged
();
}
else
if
(
"delete"
.
equals
(
type
))
{
try
{
JSONObject
object
=
new
JSONObject
(
result
);
String
data
=
object
.
getString
(
"message"
);
if
(
data
.
contains
(
"success"
))
{
Toast
.
makeText
(
this
,
"删除成功"
,
Toast
.
LENGTH_SHORT
).
show
();
adapter
.
notifyDataSetChanged
();
}
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
}
else
if
(
"download"
.
equals
(
type
))
{
Toast
.
makeText
(
this
,
"下载成功,再次点击可进行查看"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
"batch_load"
.
equals
(
type
))
{
Message
message
=
Message
.
obtain
();
message
.
arg1
=
loadIndex
;
message
.
what
=
1
;
handler
.
sendMessage
(
message
);
}
}
@Override
public
void
error
(
String
type
,
Throwable
t
)
{
if
(
"batch_load"
.
equals
(
type
))
{
Message
message
=
Message
.
obtain
();
message
.
arg1
=
loadIndex
;
handler
.
sendMessage
(
message
);
}
else
Toast
.
makeText
(
this
,
"网络连接异常,请调试="
+
t
.
getMessage
(),
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/ui/activity/VertifyActivity.java
View file @
da7093bf
...
@@ -44,6 +44,7 @@ import cn.com.bril.androidocr.studio.R;
...
@@ -44,6 +44,7 @@ import cn.com.bril.androidocr.studio.R;
import
cn.com.bril.androidocr.studio.beans.ExportInfo
;
import
cn.com.bril.androidocr.studio.beans.ExportInfo
;
import
cn.com.bril.androidocr.studio.beans.Image
;
import
cn.com.bril.androidocr.studio.beans.Image
;
import
cn.com.bril.androidocr.studio.beans.OcrInfo
;
import
cn.com.bril.androidocr.studio.beans.OcrInfo
;
import
cn.com.bril.androidocr.studio.beans.ShareInfo
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
...
@@ -85,7 +86,7 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -85,7 +86,7 @@ public class VertifyActivity extends AppCompatActivity {
private
String
statusType
;
private
String
statusType
;
private
OcrInfo
ocrInfo
;
private
OcrInfo
ocrInfo
;
File
shareFile
;
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
...
@@ -236,7 +237,6 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -236,7 +237,6 @@ public class VertifyActivity extends AppCompatActivity {
// handler.sendEmptyMessageDelayed(1,500);
// handler.sendEmptyMessageDelayed(1,500);
statusType
=
"0"
;
statusType
=
"0"
;
exportPdf
();
exportPdf
();
break
;
break
;
case
R
.
id
.
radio1
:
case
R
.
id
.
radio1
:
img
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
yellow
));
img
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
yellow
));
...
@@ -292,34 +292,35 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -292,34 +292,35 @@ public class VertifyActivity extends AppCompatActivity {
}
}
private
void
exportDoc
(
String
type
)
{
private
void
exportDoc
(
String
type
)
{
if
(
null
==
ocrInfo
)
if
(
null
==
ocrInfo
){
try
{
try
{
String
filename
=
image
.
getName
().
replace
(
"jpg"
,
"doc"
);
String
filename
=
image
.
getName
().
replace
(
"jpg"
,
"doc"
);
String
path
=
Configs
.
WORD_BASE
+
"/"
+
filename
;
String
path
=
Configs
.
WORD_BASE
+
"/"
+
filename
;
String
content
=
"检务通识别文档\n "
+
recogniztion
;
String
content
=
"检务通识别文档\n "
+
recogniztion
;
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
recogniztion
.
getBytes
(
"GB2312"
));
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
content
.
getBytes
(
"GB2312"
));
POIFSFileSystem
fileSystem
=
new
POIFSFileSystem
();
POIFSFileSystem
fileSystem
=
new
POIFSFileSystem
();
DirectoryEntry
directory
=
fileSystem
.
getRoot
();
DirectoryEntry
directory
=
fileSystem
.
getRoot
();
directory
.
createDocument
(
"WordDocument"
,
byteArrayInputStream
);
directory
.
createDocument
(
"WordDocument"
,
byteArrayInputStream
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
path
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
path
);
fileSystem
.
writeFilesystem
(
fileOutputStream
);
fileSystem
.
writeFilesystem
(
fileOutputStream
);
byteArrayInputStream
.
close
();
byteArrayInputStream
.
close
();
fileOutputStream
.
close
();
fileOutputStream
.
close
();
if
(
"share"
.
equals
(
type
))
shareFile
=
new
File
(
path
);
ShareUtil
.
shareFile
(
this
,
new
File
(
path
));
// if("share".equals(type))
// ShareUtil.shareFile(this,new File(path));
HttpHolder
.
upLoadFile
(
path
,
new
HttpCallBack
(
"upload"
));
HttpHolder
.
upLoadFile
(
path
,
new
HttpCallBack
(
"upload"
));
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
Log
.
e
(
"TAG"
,
e
.
getMessage
());
}
}
else
{
}
else
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
}
}
}
}
public
class
HttpCallBack
implements
Callback
.
CommonCallback
<
String
>{
public
class
HttpCallBack
implements
Callback
.
CommonCallback
<
String
>{
String
httpType
;
String
httpType
;
...
@@ -333,12 +334,17 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -333,12 +334,17 @@ public class VertifyActivity extends AppCompatActivity {
JSONObject
object
=
new
JSONObject
(
result
);
JSONObject
object
=
new
JSONObject
(
result
);
String
filePath
=
object
.
getString
(
"message"
);
String
filePath
=
object
.
getString
(
"message"
);
String
fileName
=
filePath
.
substring
(
4
);
String
fileName
=
filePath
.
substring
(
4
);
String
suffix
=
""
;
if
(
fileName
.
contains
(
"txt"
))
suffix
=
"txt"
;
else
if
(
fileName
.
contains
(
"doc"
)
||
fileName
.
contains
(
"docs"
))
suffix
=
"doc"
;
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
filePath
);
map
.
put
(
"header"
,
filePath
);
map
.
put
(
"filePath"
,
filePath
);
map
.
put
(
"filePath"
,
filePath
);
map
.
put
(
"fileName"
,
fileName
);
map
.
put
(
"fileName"
,
fileName
);
map
.
put
(
"fileSuffix"
,
fileName
.
substring
(
fileName
.
indexOf
(
"."
)+
1
)
);
map
.
put
(
"fileSuffix"
,
suffix
);
map
.
put
(
"
status
"
,
"ocr"
);
map
.
put
(
"
fileType
"
,
"ocr"
);
map
.
put
(
"uploadPeple"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"uploadPeple"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
HttpHolder
.
exportFile
(
RequestConfig
.
ADD_URL
,
map
,
new
HttpCallBack
(
"create_file"
));
HttpHolder
.
exportFile
(
RequestConfig
.
ADD_URL
,
map
,
new
HttpCallBack
(
"create_file"
));
}
catch
(
JSONException
e
)
{
}
catch
(
JSONException
e
)
{
...
@@ -347,14 +353,17 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -347,14 +353,17 @@ public class VertifyActivity extends AppCompatActivity {
}
else
if
(
"create_file"
.
equals
(
httpType
)){
}
else
if
(
"create_file"
.
equals
(
httpType
)){
ocrInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrInfo
>()
{
ocrInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrInfo
>()
{
}.
getType
());
}.
getType
());
if
(
statusType
.
equals
(
"0"
)){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;1分享
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
}
else
if
(
"0"
.
equals
(
httpType
)){
}
else
{
HttpHolder
.
shareCcFile
(
ocrInfo
,
new
HttpCallBack
(
"share"
));
}
}
else
if
(
"0"
.
equals
(
httpType
)){
if
(
dialog
!=
null
&&
dialog
.
isShowing
())
if
(
dialog
!=
null
&&
dialog
.
isShowing
())
dialog
.
dismiss
();
dialog
.
dismiss
();
ExportInfo
exportInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
ExportInfo
>()
{
ExportInfo
exportInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
ExportInfo
>()
{
...
@@ -362,12 +371,14 @@ public class VertifyActivity extends AppCompatActivity {
...
@@ -362,12 +371,14 @@ public class VertifyActivity extends AppCompatActivity {
if
(
null
!=
exportInfo
){
if
(
null
!=
exportInfo
){
Toast
.
makeText
(
VertifyActivity
.
this
,
"导出成功,请在文件管理/documentocr下查看"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
VertifyActivity
.
this
,
"导出成功,请在文件管理/documentocr下查看"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
else
if
(
"
1
"
.
equals
(
httpType
)){
}
else
if
(
"
share
"
.
equals
(
httpType
)){
ExportInfo
exportInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
Export
Info
>()
{
ShareInfo
shareInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
Share
Info
>()
{
}.
getType
());
}.
getType
());
if
(
null
==
exportInfo
){
if
(
null
==
shareInfo
){
Toast
.
makeText
(
VertifyActivity
.
this
,
"分享记录提交失败,请重新尝试"
,
Toast
.
LENGTH_SHORT
).
show
();
Toast
.
makeText
(
VertifyActivity
.
this
,
"分享记录提交失败,请重新尝试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
ShareUtil
.
shareFile
(
VertifyActivity
.
this
,
shareFile
);
}
}
}
}
...
...
app/src/main/java/cn/com/bril/androidocr/studio/ui/adapter/FragmentListAdapter.java
View file @
da7093bf
...
@@ -7,6 +7,7 @@ import android.view.ViewGroup;
...
@@ -7,6 +7,7 @@ import android.view.ViewGroup;
import
android.widget.BaseAdapter
;
import
android.widget.BaseAdapter
;
import
android.widget.CheckBox
;
import
android.widget.CheckBox
;
import
android.widget.CompoundButton
;
import
android.widget.CompoundButton
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -51,6 +52,7 @@ public class FragmentListAdapter extends BaseAdapter {
...
@@ -51,6 +52,7 @@ public class FragmentListAdapter extends BaseAdapter {
}
}
return
newInfos
;
return
newInfos
;
}
}
@Override
@Override
public
int
getCount
()
{
public
int
getCount
()
{
return
infos
.
size
();
return
infos
.
size
();
...
@@ -75,6 +77,7 @@ public class FragmentListAdapter extends BaseAdapter {
...
@@ -75,6 +77,7 @@ public class FragmentListAdapter extends BaseAdapter {
holder
.
title
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
title
);
holder
.
title
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
title
);
holder
.
time
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
time
);
holder
.
time
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
time
);
holder
.
radioButton
=
(
CheckBox
)
convertView
.
findViewById
(
R
.
id
.
radio
);
holder
.
radioButton
=
(
CheckBox
)
convertView
.
findViewById
(
R
.
id
.
radio
);
holder
.
iv
=
(
ImageView
)
convertView
.
findViewById
(
R
.
id
.
icon
);
convertView
.
setTag
(
holder
);
convertView
.
setTag
(
holder
);
}
else
}
else
holder
=
(
ViewHolder
)
convertView
.
getTag
();
holder
=
(
ViewHolder
)
convertView
.
getTag
();
...
@@ -88,6 +91,17 @@ public class FragmentListAdapter extends BaseAdapter {
...
@@ -88,6 +91,17 @@ public class FragmentListAdapter extends BaseAdapter {
else
else
fileName
=
s
;
fileName
=
s
;
holder
.
title
.
setText
(
fileName
);
holder
.
title
.
setText
(
fileName
);
String
suffix
=
info
.
getIncludes
().
getCc_file
().
getFileSuffix
();
if
(
suffix
!=
null
){
if
(
suffix
.
contains
(
"txt"
))
holder
.
iv
.
setImageDrawable
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
txt
));
else
if
(
suffix
.
contains
(
"doc"
))
holder
.
iv
.
setImageDrawable
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
word
));
else
if
(
suffix
.
contains
(
"pdf"
))
holder
.
iv
.
setImageDrawable
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
word
));
}
else
holder
.
iv
.
setImageDrawable
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
word
));
holder
.
title
.
setOnClickListener
(
new
ListTextOnClickListener
(
position
));
holder
.
title
.
setOnClickListener
(
new
ListTextOnClickListener
(
position
));
holder
.
radioButton
.
setVisibility
(
show
);
holder
.
radioButton
.
setVisibility
(
show
);
holder
.
radioButton
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
holder
.
radioButton
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
...
@@ -109,7 +123,7 @@ public class FragmentListAdapter extends BaseAdapter {
...
@@ -109,7 +123,7 @@ public class FragmentListAdapter extends BaseAdapter {
@Override
@Override
public
void
onClick
(
View
v
)
{
public
void
onClick
(
View
v
)
{
listTextClickListener
.
onListTextCallBack
(
infos
.
get
(
position
)
);
listTextClickListener
.
onListTextCallBack
(
position
);
}
}
}
}
...
@@ -118,10 +132,11 @@ public class FragmentListAdapter extends BaseAdapter {
...
@@ -118,10 +132,11 @@ public class FragmentListAdapter extends BaseAdapter {
}
}
public
interface
ListTextClickListener
{
public
interface
ListTextClickListener
{
void
onListTextCallBack
(
OcrRootBean
info
);
void
onListTextCallBack
(
int
postion
);
}
}
class
ViewHolder
{
class
ViewHolder
{
TextView
title
,
time
;
TextView
title
,
time
;
ImageView
iv
;
CheckBox
radioButton
;
CheckBox
radioButton
;
}
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/ui/fragment/ExportFragment.java
View file @
da7093bf
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
fragment
;
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
fragment
;
import
android.app.Activity
;
import
android.app.AlertDialog
;
import
android.app.AlertDialog
;
import
android.app.ProgressDialog
;
import
android.app.ProgressDialog
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
android.widget.AdapterView
;
import
android.widget.AdapterView
;
import
android.widget.EditText
;
import
android.widget.ListView
;
import
android.widget.ListView
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.reflect.TypeToken
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
org.xutils.common.Callback
;
import
org.xutils.common.Callback
;
import
org.xutils.http.RequestParams
;
import
org.xutils.http.RequestParams
;
import
org.xutils.x
;
import
org.xutils.x
;
...
@@ -27,22 +33,28 @@ import java.util.List;
...
@@ -27,22 +33,28 @@ import java.util.List;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.ShareInfo
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
import
cn.com.bril.androidocr.studio.http.MainHttpCallBack
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.OnHttpListener
;
import
cn.com.bril.androidocr.studio.ui.adapter.FragmentListAdapter
;
import
cn.com.bril.androidocr.studio.ui.adapter.FragmentListAdapter
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshBase
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshBase
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshListView
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshListView
;
import
cn.com.bril.androidocr.studio.utils.CustomDialogUtils
;
import
cn.com.bril.androidocr.studio.utils.FileType
;
import
cn.com.bril.androidocr.studio.utils.FileUtil
;
import
cn.com.bril.androidocr.studio.utils.FileUtil
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
cn.com.bril.androidocr.studio.utils.HttpUtil
;
import
cn.com.bril.androidocr.studio.utils.HttpUtil
;
import
cn.com.bril.androidocr.studio.utils.
Intent
Util
;
import
cn.com.bril.androidocr.studio.utils.
Share
Util
;
/**
/**
* Created by sunny on 2018-3-12.
* Created by sunny on 2018-3-12.
*/
*/
public
class
ExportFragment
extends
Fragment
{
public
class
ExportFragment
extends
Fragment
implements
OnHttpListener
,
FragmentListAdapter
.
ListTextClickListener
,
View
.
OnClickListener
{
private
PullToRefreshListView
pullToRefreshListView
;
private
PullToRefreshListView
pullToRefreshListView
;
...
@@ -58,13 +70,36 @@ public class ExportFragment extends Fragment {
...
@@ -58,13 +70,36 @@ public class ExportFragment extends Fragment {
private
HandleMenuListener
handleMenuListener
;
private
HandleMenuListener
handleMenuListener
;
private
List
<
OcrRootBean
>
selectedInfos
=
new
ArrayList
<>();
private
List
<
OcrRootBean
>
selectedInfos
=
new
ArrayList
<>();
private
NoticeMessageToMain
messageToMain
;
private
NoticeMessageToMain
messageToMain
;
private
ArrayList
<
OcrRootBean
>
loadBeans
;
//需下载项
private
int
curLoadIndex
;
private
Handler
handler
=
new
Handler
(){
@Override
public
void
handleMessage
(
Message
msg
)
{
super
.
handleMessage
(
msg
);
if
(
msg
.
what
==
1
){
curLoadIndex
++;
if
(
curLoadIndex
<
loadBeans
.
size
())
downLoadFile
(
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFilePath
(),
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFileName
(),
"batch_load"
);
else
{
progressDialog
.
dismiss
();
batchShareAdd
();
}
}
else
if
(
msg
.
what
==
0
){
Toast
.
makeText
(
context
,
selectedInfos
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFileName
()
+
"下载失败,请稍后重试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
msg
.
what
==
2
){
Toast
.
makeText
(
context
,
"下载已完成,再次点击可打开"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
};
private
EditText
reNameEdit
;
private
OcrRootBean
.
Cc_file
clickedFileItem
;
private
int
createCount
;
//分享时创建文件信息数量记录
// private List<OcrRootBean.Cc_file> shareFileInfos;
@Override
@Override
public
void
onAttach
(
Context
context
)
{
public
void
onAttach
(
Context
context
)
{
super
.
onAttach
(
context
);
super
.
onAttach
(
context
);
this
.
context
=
context
;
this
.
context
=
context
;
handleMenuListener
=
(
HandleMenuListener
)
context
;
handleMenuListener
=
(
HandleMenuListener
)
context
;
listener
=
(
FragmentListAdapter
.
ListTextClickListener
)
context
;
messageToMain
=
(
NoticeMessageToMain
)
context
;
messageToMain
=
(
NoticeMessageToMain
)
context
;
}
}
...
@@ -75,7 +110,18 @@ public class ExportFragment extends Fragment {
...
@@ -75,7 +110,18 @@ public class ExportFragment extends Fragment {
public
void
setSelectedInfos
(
List
<
OcrRootBean
>
selectedInfos
)
{
public
void
setSelectedInfos
(
List
<
OcrRootBean
>
selectedInfos
)
{
this
.
selectedInfos
=
selectedInfos
;
this
.
selectedInfos
=
selectedInfos
;
}
}
//批量删除
public
void
handleDeleteAction
(){
List
<
OcrRootBean
.
Superior
>
superiors
=
new
ArrayList
<>();
for
(
OcrRootBean
bean:
selectedInfos
){
superiors
.
add
(
bean
.
getSuperior
());
}
HttpHolder
.
volumeDelete
(
superiors
,
this
);
}
//批量分享响应
public
void
handleShareAction
(){
getNotLoadFilesAndLoad
(
selectedInfos
);
}
@Nullable
@Nullable
@Override
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
...
@@ -93,12 +139,14 @@ public class ExportFragment extends Fragment {
...
@@ -93,12 +139,14 @@ public class ExportFragment extends Fragment {
public
void
initViews
(
View
view
){
public
void
initViews
(
View
view
){
pullToRefreshListView
=
(
PullToRefreshListView
)
view
.
findViewById
(
R
.
id
.
pullrefreshView
);
pullToRefreshListView
=
(
PullToRefreshListView
)
view
.
findViewById
(
R
.
id
.
pullrefreshView
);
pullToRefreshListView
.
setPullLoadEnabled
(
true
);
pullToRefreshListView
.
setPullRefreshEnabled
(
true
);
listView
=
pullToRefreshListView
.
getRefreshableView
();
listView
=
pullToRefreshListView
.
getRefreshableView
();
adaper
=
new
FragmentListAdapter
(
context
,
exportInfos
,
listener
,
new
FragmentListAdapter
.
AdapterRadioSelectedListener
()
{
adaper
=
new
FragmentListAdapter
(
context
,
exportInfos
,
this
,
new
FragmentListAdapter
.
AdapterRadioSelectedListener
()
{
@Override
@Override
public
void
adapterRadioSelectedCallBack
()
{
public
void
adapterRadioSelectedCallBack
()
{
setSelectedInfos
(
adaper
.
getSelectedInfo
());
setSelectedInfos
(
adaper
.
getSelectedInfo
());
messageToMain
.
noticeMessage
(
adaper
.
getSelectedInfo
());
messageToMain
.
noticeMessage
(
adaper
.
getSelectedInfo
()
.
size
()
);
}
}
});
});
listView
.
setAdapter
(
adaper
);
listView
.
setAdapter
(
adaper
);
...
@@ -133,7 +181,6 @@ public class ExportFragment extends Fragment {
...
@@ -133,7 +181,6 @@ public class ExportFragment extends Fragment {
Toast
.
makeText
(
context
,
"暂无网络连接"
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
context
,
"暂无网络连接"
,
Toast
.
LENGTH_LONG
).
show
();
refreshView
.
onPullDownRefreshComplete
();
refreshView
.
onPullDownRefreshComplete
();
}
}
}
}
});
});
...
@@ -152,40 +199,83 @@ public class ExportFragment extends Fragment {
...
@@ -152,40 +199,83 @@ public class ExportFragment extends Fragment {
String
fileName
=
exportInfos
.
get
(
position
).
getIncludes
().
getCc_file
().
getFileName
();
String
fileName
=
exportInfos
.
get
(
position
).
getIncludes
().
getCc_file
().
getFileName
();
if
(
fileName
.
contains
(
".pdf"
)){
if
(
fileName
.
contains
(
".pdf"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
PDF_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
PDF_BASE
+
"/"
+
fileName
))
startFileIntent
(
"pdf"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
PDF_BASE
+
"/"
+
fileName
)
);
else
{
else
{
progressDialog
.
setMessage
(
"正在下载..."
);
progressDialog
.
setMessage
(
"正在下载..."
);
progressDialog
.
show
();
progressDialog
.
show
();
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
}
}
else
if
(
fileName
.
contains
(
".doc"
)||
fileName
.
contains
(
".docs"
)){
}
else
if
(
fileName
.
contains
(
".doc"
)||
fileName
.
contains
(
".docs"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
WORD_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
WORD_BASE
+
"/"
+
fileName
))
startFileIntent
(
"word"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
WORD_BASE
+
"/"
+
fileName
)
);
else
else
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
else
if
(
fileName
.
contains
(
".txt"
)){
}
else
if
(
fileName
.
contains
(
".txt"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
TXT_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
TXT_BASE
+
"/"
+
fileName
)){
startFileIntent
(
"txt"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
TXT_BASE
+
"/"
+
fileName
));
}
else
else
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
}
}
}
});
});
}
}
private
void
downLoadFile
(
String
path
,
String
fileName
)
{
private
ArrayList
<
Uri
>
shareFileUris
;
//获取待下载项&&分享
private
void
getNotLoadFilesAndLoad
(
List
<
OcrRootBean
>
list
)
{
loadBeans
=
new
ArrayList
<>();
shareFileUris
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
OcrRootBean
.
Cc_file
cc_file
=
list
.
get
(
i
).
getIncludes
().
getCc_file
();
String
type
=
cc_file
.
getFileName
().
substring
(
cc_file
.
getFileName
().
indexOf
(
"."
)
+
1
);
String
filePath
=
""
;
if
(
"doc"
.
equals
(
type
)
||
"docs"
.
equals
(
type
))
filePath
=
Configs
.
WORD_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"txt"
.
equals
(
type
))
filePath
=
Configs
.
TXT_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"pdf"
.
equals
(
type
))
filePath
=
Configs
.
PDF_BASE
+
"/"
+
cc_file
.
getFileName
();
shareFileUris
.
add
(
FileUtil
.
getFileUri
(
context
,
new
File
(
filePath
)));
if
(!
FileUtil
.
isFileExist
(
filePath
))
loadBeans
.
add
(
selectedInfos
.
get
(
i
));
}
if
(
loadBeans
.
size
()
!=
0
)
{
progressDialog
.
setMessage
(
"正在下载,请稍后"
);
progressDialog
.
show
();
curLoadIndex
=
0
;
downLoadFile
(
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFilePath
(),
loadBeans
.
get
(
0
).
getIncludes
().
getCc_file
().
getFileName
(),
"batch_load"
);
}
else
{
// batchCreateFiles();
batchShareAdd
();
}
}
private
void
downLoadFile
(
String
path
,
String
fileName
,
final
String
type
)
{
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
params
.
addBodyParameter
(
"fileName"
,
path
);
params
.
addBodyParameter
(
"fileName"
,
path
);
params
.
addBodyParameter
(
"downloadName"
,
fileName
);
params
.
addBodyParameter
(
"downloadName"
,
fileName
);
params
.
setSaveFilePath
(
Configs
.
WORD_BASE
+
"/"
+
fileName
);
String
url
=
""
;
if
(
fileName
.
contains
(
"txt"
))
url
=
Configs
.
TXT_BASE
+
"/"
+
fileName
;
else
if
(
fileName
.
contains
(
"doc"
))
url
=
Configs
.
WORD_BASE
+
"/"
+
fileName
;
params
.
setSaveFilePath
(
url
);
x
.
http
().
get
(
params
,
new
Callback
.
CommonCallback
<
File
>()
{
x
.
http
().
get
(
params
,
new
Callback
.
CommonCallback
<
File
>()
{
@Override
@Override
public
void
onSuccess
(
File
result
)
{
public
void
onSuccess
(
File
result
)
{
progressDialog
.
dismiss
();
if
(
type
.
equals
(
"batch_load"
)){
Toast
.
makeText
(
context
,
"下载成功"
,
Toast
.
LENGTH_SHORT
).
show
();
handler
.
sendEmptyMessage
(
1
);
}
else
{
handler
.
sendEmptyMessage
(
2
);
}
}
}
@Override
@Override
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
Log
.
e
(
"TAG"
,
"onError: "
+
ex
.
getMessage
());
handler
.
sendEmptyMessage
(
0
);
}
}
@Override
@Override
public
void
onCancelled
(
CancelledException
cex
)
{
public
void
onCancelled
(
CancelledException
cex
)
{
...
@@ -195,35 +285,10 @@ public class ExportFragment extends Fragment {
...
@@ -195,35 +285,10 @@ public class ExportFragment extends Fragment {
}
}
});
});
}
}
private
void
startFileIntent
(
String
type
,
String
path
){
//获取列表
Intent
intent
=
new
Intent
(
"android.intent.action.VIEW"
);
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
File
file
;
Uri
uri
;
if
(
"word"
.
equals
(
type
)){
file
=
new
File
(
Configs
.
WORD_BASE
+
"/"
+
path
);
uri
=
Uri
.
fromFile
(
file
);
intent
.
setDataAndType
(
uri
,
"application/msword"
);
}
else
if
(
"pdf"
.
equals
(
type
)){
file
=
new
File
(
Configs
.
PDF_BASE
+
"/"
+
path
);
uri
=
Uri
.
fromFile
(
file
);
intent
.
setDataAndType
(
uri
,
"application/pdf"
);
}
else
if
(
"txt"
.
equals
(
type
)){
file
=
new
File
(
Configs
.
TXT_BASE
+
"/"
+
path
);
uri
=
Uri
.
fromFile
(
file
);
intent
.
setDataAndType
(
uri
,
"text/plain"
);
}
if
(
IntentUtil
.
isIntentAvailable
(
context
,
intent
))
startActivity
(
intent
);
else
Toast
.
makeText
(
context
,
"请检测是否已安装相应的文件打开工具"
,
Toast
.
LENGTH_SHORT
).
show
();
}
private
void
getExportRecord
(){
private
void
getExportRecord
(){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
EXPORT_RECORD_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
EXPORT_RECORD_URL
);
params
.
addBodyParameter
(
"page"
,
page
+
""
);
params
.
addBodyParameter
(
"page
No
"
,
page
+
""
);
params
.
addBodyParameter
(
"sortItem"
,
"create_time"
);
params
.
addBodyParameter
(
"sortItem"
,
"create_time"
);
params
.
addBodyParameter
(
"sortOrder"
,
"desc"
);
params
.
addBodyParameter
(
"sortOrder"
,
"desc"
);
String
userInfo
=
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
;
String
userInfo
=
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
;
...
@@ -231,55 +296,141 @@ public class ExportFragment extends Fragment {
...
@@ -231,55 +296,141 @@ public class ExportFragment extends Fragment {
params
.
addBodyParameter
(
"filters"
,
json
);
params
.
addBodyParameter
(
"filters"
,
json
);
String
json2
=
"{\"cc_file\":{\"includes\":[\"file_id\"]}}"
;
String
json2
=
"{\"cc_file\":{\"includes\":[\"file_id\"]}}"
;
params
.
addBodyParameter
(
"includes"
,
json2
);
params
.
addBodyParameter
(
"includes"
,
json2
);
x
.
http
().
post
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
x
.
http
().
post
(
params
,
new
MainHttpCallBack
(
"list"
,
this
));
@Override
}
public
void
onSuccess
(
String
result
)
{
List
<
OcrRootBean
>
been
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
OcrRootBean
>>(){}.
getType
());
if
(
isUpdate
){
exportInfos
.
clear
();
}
exportInfos
.
addAll
(
been
);
if
(
been
.
size
()==
0
){
Toast
.
makeText
(
context
,
"暂无数据"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
been
.
size
()<
10
&&
been
.
size
()>
0
){
hasMoreData
=
false
;
// Toast.makeText(context,"无更多数据",Toast.LENGTH_SHORT).show();
}
else
hasMoreData
=
true
;
adaper
.
notifyDataSetChanged
();
//批量分享
private
void
batchShareAdd
()
{
List
<
ShareInfo
>
list
=
new
ArrayList
<>();
ShareInfo
superior
;
for
(
OcrRootBean
bean:
selectedInfos
){
superior
=
new
ShareInfo
();
superior
.
setFileName
(
bean
.
getIncludes
().
getCc_file
().
getFileName
());
superior
.
setFilePath
(
bean
.
getIncludes
().
getCc_file
().
getFilePath
());
// superior.setFileId(bean.getId());
superior
.
setType
(
"0"
);
superior
.
setSharingPeple
(
bean
.
getSuperior
().
getExportUser
());
list
.
add
(
superior
);
}
HttpHolder
.
batchShareCcFile
(
list
,
new
MainHttpCallBack
(
"batch_share"
,
this
));
}
pullToRefreshListView
.
onPullUpRefreshComplete
();
public
void
setAllItemChecked
(
boolean
flg
){
pullToRefreshListView
.
onPullDownRefreshComplete
();
adaper
.
setRadioAllSelected
(
flg
);
pullToRefreshListView
.
setHasMoreData
(
hasMoreData
);
}
}
@Override
public
void
setCheckBoxShow
(
int
v
){
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
adaper
.
setRadioShow
(
v
);
Toast
.
makeText
(
context
,
"网络异常,请检测..."
,
Toast
.
LENGTH_SHORT
).
show
();
}
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
private
void
reNameFile
()
{
String
url
=
RequestConfig
.
EDIT_FILE_URL
+
clickedFileItem
.
getId
()
+
"/edit"
;
RequestParams
params
=
new
RequestParams
(
url
);
params
.
addHeader
(
"X-Auth-Token"
,
"1"
);
String
lastName
=
clickedFileItem
.
getFileName
();
params
.
addBodyParameter
(
"fileName"
,
reNameEdit
.
getText
().
toString
()+
lastName
.
substring
(
lastName
.
indexOf
(
"."
)));
//缺少修改人
x
.
http
().
post
(
params
,
new
MainHttpCallBack
(
"edit"
,
this
));
}
@Override
public
void
success
(
String
type
,
String
result
)
{
if
(
type
.
equals
(
"list"
)){
List
<
OcrRootBean
>
been
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
OcrRootBean
>>(){}.
getType
());
if
(
isUpdate
){
exportInfos
.
clear
();
}
}
@Override
exportInfos
.
addAll
(
been
);
public
void
onCancelled
(
CancelledException
cex
)
{
if
(
been
.
size
()==
0
){
Toast
.
makeText
(
context
,
"暂无数据"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
@Override
else
if
(
been
.
size
()<
10
&&
been
.
size
()>
0
){
public
void
onFinished
()
{
hasMoreData
=
false
;
}
}
});
else
hasMoreData
=
true
;
adaper
.
notifyDataSetChanged
();
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
pullToRefreshListView
.
setHasMoreData
(
hasMoreData
);
}
else
if
(
"edit"
.
equals
(
type
))
{
OcrRootBean
.
Cc_file
file
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrRootBean
.
Cc_file
>(){}.
getType
());
if
(
null
!=
file
){
Toast
.
makeText
(
context
,
"修改成功"
,
Toast
.
LENGTH_SHORT
).
show
();
pullToRefreshListView
.
doPullRefreshing
(
true
,
100
);
}
else
Toast
.
makeText
(
context
,
"修改失败,请重试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
"batch_share"
.
equals
(
type
)){
List
<
ShareInfo
>
info
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
ShareInfo
>>(){}.
getType
());
if
(
info
!=
null
)
{
adaper
.
setRadioShow
(
View
.
GONE
);
handleMenuListener
.
setHandleMenu
(
View
.
GONE
);
ShareUtil
.
batchShareFile
(
context
,
shareFileUris
);
}
}
else
if
(
"delete"
.
equals
(
type
)){
try
{
JSONObject
object
=
new
JSONObject
(
result
);
String
data
=
object
.
getString
(
"message"
);
if
(
data
.
contains
(
"success"
))
{
Toast
.
makeText
(
context
,
"删除成功"
,
Toast
.
LENGTH_SHORT
).
show
();
handleMenuListener
.
setHandleMenu
(
View
.
GONE
);
adaper
.
setRadioShow
(
View
.
GONE
);
pullToRefreshListView
.
doPullRefreshing
(
true
,
100
);
}
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
}
else
if
(
"single_create"
.
equals
(
type
)){
OcrRootBean
.
Cc_file
cc_file
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrRootBean
.
Cc_file
>(){}.
getType
());
if
(
cc_file
!=
null
){
createCount
++;
// shareFileInfos.add(cc_file);
if
(
createCount
==
selectedInfos
.
size
())
batchShareAdd
();
}
}
}
}
public
void
setAllItemChecked
(
boolean
flg
){
@Override
adaper
.
setRadioAllSelected
(
flg
);
public
void
error
(
String
type
,
Throwable
t
)
{
if
(
type
.
equals
(
"list"
)){
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
}
}
}
public
void
setCheckBoxShow
(
int
v
){
adaper
.
setRadioShow
(
v
);
@Override
public
void
onListTextCallBack
(
int
postion
)
{
clickedFileItem
=
exportInfos
.
get
(
postion
).
getIncludes
().
getCc_file
();
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
rename_dialog_layout
,
null
);
view
.
findViewById
(
R
.
id
.
normal_name
).
setOnClickListener
(
this
);
view
.
findViewById
(
R
.
id
.
positive
).
setOnClickListener
(
this
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
);
builder
.
setView
(
view
);
reNameEdit
=
(
EditText
)
view
.
findViewById
(
R
.
id
.
edit
);
reNameEdit
.
setHint
(
clickedFileItem
.
getFileName
());
dialog
=
builder
.
create
();
dialog
.
show
();
CustomDialogUtils
.
setDialogSize
((
Activity
)
context
,
dialog
);
}
}
@Override
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
()){
case
R
.
id
.
positive
:
reNameFile
();
dialog
.
dismiss
();
break
;
case
R
.
id
.
normal_name
:
dialog
.
dismiss
();
break
;
}
}
public
interface
NoticeMessageToMain
{
public
interface
NoticeMessageToMain
{
void
noticeMessage
(
List
<
OcrRootBean
>
list
);
void
noticeMessage
(
int
size
);
}
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/ui/fragment/ShareFragment.java
View file @
da7093bf
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
fragment
;
package
cn
.
com
.
bril
.
androidocr
.
studio
.
ui
.
fragment
;
import
android.app.Activity
;
import
android.app.AlertDialog
;
import
android.app.ProgressDialog
;
import
android.app.ProgressDialog
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
android.widget.AdapterView
;
import
android.widget.AdapterView
;
import
android.widget.EditText
;
import
android.widget.ListView
;
import
android.widget.ListView
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.reflect.TypeToken
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
org.xutils.common.Callback
;
import
org.xutils.common.Callback
;
import
org.xutils.http.RequestParams
;
import
org.xutils.http.RequestParams
;
import
org.xutils.x
;
import
org.xutils.x
;
...
@@ -26,55 +33,104 @@ import java.util.List;
...
@@ -26,55 +33,104 @@ import java.util.List;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.R
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.OcrRootBean
;
import
cn.com.bril.androidocr.studio.beans.ShareInfo
;
import
cn.com.bril.androidocr.studio.beans.ShareRootBean
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.configs.RequestConfig
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
import
cn.com.bril.androidocr.studio.http.MainHttpCallBack
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.HandleMenuListener
;
import
cn.com.bril.androidocr.studio.interf.OnHttpListener
;
import
cn.com.bril.androidocr.studio.ui.adapter.FragmentListAdapter
;
import
cn.com.bril.androidocr.studio.ui.adapter.FragmentListAdapter
;
import
cn.com.bril.androidocr.studio.ui.adapter.ShareFragmentAdapter
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshBase
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshBase
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshListView
;
import
cn.com.bril.androidocr.studio.ui.pulltorefresh.PullToRefreshListView
;
import
cn.com.bril.androidocr.studio.utils.CustomDialogUtils
;
import
cn.com.bril.androidocr.studio.utils.FileType
;
import
cn.com.bril.androidocr.studio.utils.FileUtil
;
import
cn.com.bril.androidocr.studio.utils.FileUtil
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
cn.com.bril.androidocr.studio.utils.GsonUtil
;
import
cn.com.bril.androidocr.studio.utils.HttpUtil
;
import
cn.com.bril.androidocr.studio.utils.HttpUtil
;
import
cn.com.bril.androidocr.studio.utils.
Intent
Util
;
import
cn.com.bril.androidocr.studio.utils.
Share
Util
;
/**
/**
* Created by sunny on 2018-3-12.
* Created by sunny on 2018-3-12.
*/
*/
public
class
ShareFragment
extends
Fragment
{
public
class
ShareFragment
extends
Fragment
implements
OnHttpListener
,
FragmentListAdapter
.
ListTextClickListener
,
View
.
OnClickListener
{
private
PullToRefreshListView
pullToRefreshListView
;
private
PullToRefreshListView
pullToRefreshListView
;
private
ListView
listView
;
private
ListView
listView
;
private
Context
context
;
private
Context
context
;
private
FragmentLis
tAdapter
adaper
;
private
ShareFragmen
tAdapter
adaper
;
private
List
<
Ocr
RootBean
>
beanList
=
new
ArrayList
<>();
private
List
<
Share
RootBean
>
beanList
=
new
ArrayList
<>();
private
boolean
isUpdate
=
false
,
hasMoreData
=
false
;
private
boolean
isUpdate
=
false
,
hasMoreData
=
false
;
private
int
page
=
1
,
pageSize
=
10
;
private
int
page
=
1
,
pageSize
=
10
;
private
FragmentListAdapter
.
ListTextClickListener
listTextClickListener
;
private
FragmentListAdapter
.
ListTextClickListener
listTextClickListener
;
private
List
<
Ocr
RootBean
>
selectedInfos
=
new
ArrayList
<>();
private
List
<
Share
RootBean
>
selectedInfos
=
new
ArrayList
<>();
private
ExportFragment
.
NoticeMessageToMain
messageToMain
;
private
ExportFragment
.
NoticeMessageToMain
messageToMain
;
private
HandleMenuListener
handleMenuListener
;
private
HandleMenuListener
handleMenuListener
;
private
ProgressDialog
dialog
;
private
ProgressDialog
dialog
;
private
int
curLoadIndex
;
List
<
ShareRootBean
>
loadBeans
;
private
Handler
handler
=
new
Handler
(){
@Override
public
void
handleMessage
(
Message
msg
)
{
super
.
handleMessage
(
msg
);
if
(
msg
.
what
==
1
){
curLoadIndex
++;
if
(
curLoadIndex
<
loadBeans
.
size
())
downLoadFile
(
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFilePath
(),
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFileName
(),
"batch"
);
else
{
dialog
.
dismiss
();
// batchCreateFiles();
batchShareAdd
();
}
}
else
if
(
msg
.
what
==
0
){
Toast
.
makeText
(
context
,
selectedInfos
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFileName
()
+
"下载失败,请稍后重试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
msg
.
what
==
2
){
Toast
.
makeText
(
context
,
"下载已完成,再次点击可打开"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
msg
.
what
==
2
){
Toast
.
makeText
(
context
,
"下载失败,请稍后重试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
};
private
ArrayList
<
Uri
>
shareFileUris
;
private
EditText
reNameEdit
;
private
AlertDialog
reNameDialog
;
private
ShareRootBean
clickedFileItem
;
private
int
createCount
;
//创建文件信息个数
@Override
@Override
public
void
onAttach
(
Context
context
)
{
public
void
onAttach
(
Context
context
)
{
super
.
onAttach
(
context
);
super
.
onAttach
(
context
);
this
.
context
=
context
;
this
.
context
=
context
;
listTextClickListener
=(
FragmentListAdapter
.
ListTextClickListener
)
context
;
handleMenuListener
=
(
HandleMenuListener
)
context
;
handleMenuListener
=
(
HandleMenuListener
)
context
;
messageToMain
=
(
ExportFragment
.
NoticeMessageToMain
)
context
;
messageToMain
=
(
ExportFragment
.
NoticeMessageToMain
)
context
;
}
}
public
List
<
Ocr
RootBean
>
getSelectedInfos
()
{
public
List
<
Share
RootBean
>
getSelectedInfos
()
{
return
selectedInfos
;
return
selectedInfos
;
}
}
public
void
setSelectedInfos
(
List
<
Ocr
RootBean
>
selectedInfos
)
{
public
void
setSelectedInfos
(
List
<
Share
RootBean
>
selectedInfos
)
{
this
.
selectedInfos
=
selectedInfos
;
this
.
selectedInfos
=
selectedInfos
;
}
}
public
void
handleDeletAction
(){
List
<
ShareInfo
>
infos
=
new
ArrayList
<>();
for
(
ShareRootBean
bean:
selectedInfos
)
infos
.
add
(
bean
.
getSuperior
());
HttpHolder
.
batchDeleteShareRecord
(
infos
,
new
MainHttpCallBack
(
"delete"
,
this
));
}
public
void
handleShareAction
(){
getNotLoadFilesAndLoad
(
selectedInfos
);
}
@Nullable
@Nullable
@Override
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
...
@@ -93,13 +149,16 @@ public class ShareFragment extends Fragment {
...
@@ -93,13 +149,16 @@ public class ShareFragment extends Fragment {
public
void
initViews
(
View
view
){
public
void
initViews
(
View
view
){
pullToRefreshListView
=
(
PullToRefreshListView
)
view
.
findViewById
(
R
.
id
.
pullrefreshView
);
pullToRefreshListView
=
(
PullToRefreshListView
)
view
.
findViewById
(
R
.
id
.
pullrefreshView
);
pullToRefreshListView
.
setPullLoadEnabled
(
true
);
pullToRefreshListView
.
setPullRefreshEnabled
(
true
);
listView
=
pullToRefreshListView
.
getRefreshableView
();
listView
=
pullToRefreshListView
.
getRefreshableView
();
pullToRefreshListView
.
doPullRefreshing
(
true
,
500
);
pullToRefreshListView
.
doPullRefreshing
(
true
,
500
);
adaper
=
new
FragmentListAdapter
(
context
,
beanList
,
listTextClickListener
,
new
FragmentLis
tAdapter
.
AdapterRadioSelectedListener
()
{
adaper
=
new
ShareFragmentAdapter
(
context
,
beanList
,
this
,
new
ShareFragmen
tAdapter
.
AdapterRadioSelectedListener
()
{
@Override
@Override
public
void
adapterRadioSelectedCallBack
()
{
public
void
adapterRadioSelectedCallBack
()
{
setSelectedInfos
(
adaper
.
getSelectedInfo
());
setSelectedInfos
(
adaper
.
getSelectedInfo
());
messageToMain
.
noticeMessage
(
adaper
.
getSelectedInfo
());
messageToMain
.
noticeMessage
(
adaper
.
getSelectedInfo
()
.
size
()
);
}
}
});
});
listView
.
setAdapter
(
adaper
);
listView
.
setAdapter
(
adaper
);
...
@@ -146,21 +205,24 @@ public class ShareFragment extends Fragment {
...
@@ -146,21 +205,24 @@ public class ShareFragment extends Fragment {
String
path
=
beanList
.
get
(
position
).
getIncludes
().
getCc_file
().
getFilePath
();
String
path
=
beanList
.
get
(
position
).
getIncludes
().
getCc_file
().
getFilePath
();
String
fileName
=
beanList
.
get
(
position
).
getIncludes
().
getCc_file
().
getFileName
();
String
fileName
=
beanList
.
get
(
position
).
getIncludes
().
getCc_file
().
getFileName
();
if
(
fileName
.
contains
(
".pdf"
)){
if
(
fileName
.
contains
(
".pdf"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
PDF_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
PDF_BASE
+
"/"
+
fileName
)){
startFileIntent
(
"pdf"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
PDF_BASE
+
"/"
+
fileName
));
}
else
{
else
{
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
}
}
else
if
(
fileName
.
contains
(
".doc"
)||
fileName
.
contains
(
".docs"
)){
}
else
if
(
fileName
.
contains
(
".doc"
)||
fileName
.
contains
(
".docs"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
WORD_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
WORD_BASE
+
"/"
+
fileName
)){
startFileIntent
(
"word"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
WORD_BASE
+
"/"
+
fileName
));
}
else
else
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
else
if
(
fileName
.
contains
(
".txt"
)){
}
else
if
(
fileName
.
contains
(
".txt"
)){
if
(
FileUtil
.
isFileExist
(
Configs
.
TXT_BASE
+
"/"
+
fileName
))
if
(
FileUtil
.
isFileExist
(
Configs
.
TXT_BASE
+
"/"
+
fileName
)){
startFileIntent
(
"txt"
,
fileName
);
FileType
.
openFile
(
context
,
new
File
(
Configs
.
TXT_BASE
+
"/"
+
fileName
));
}
else
else
downLoadFile
(
path
,
fileName
);
downLoadFile
(
path
,
fileName
,
"single"
);
}
}
}
}
});
});
...
@@ -169,59 +231,25 @@ public class ShareFragment extends Fragment {
...
@@ -169,59 +231,25 @@ public class ShareFragment extends Fragment {
public
void
setAllItemChecked
(
boolean
flg
){
public
void
setAllItemChecked
(
boolean
flg
){
adaper
.
setRadioAllSelected
(
flg
);
adaper
.
setRadioAllSelected
(
flg
);
}
}
public
void
setCheckBoxShow
(
int
v
){
public
void
setCheckBoxShow
(
int
v
){
adaper
.
setRadioShow
(
v
);
adaper
.
setRadioShow
(
v
);
}
}
//获取分享列表
private
void
getShareRecord
(){
private
void
getShareRecord
(){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
SHARE_LIST_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
EXPORT_RECORD_URL
);
params
.
addBodyParameter
(
"pageNo"
,
page
+
""
);
params
.
addBodyParameter
(
"page"
,
page
+
""
);
params
.
addBodyParameter
(
"sortItem"
,
"create_time"
);
params
.
addBodyParameter
(
"sortItem"
,
"create_time"
);
params
.
addBodyParameter
(
"sortOrder"
,
"desc"
);
params
.
addBodyParameter
(
"sortOrder"
,
"desc"
);
String
userInfo
=
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
;
String
userInfo
=
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
;
String
json
=
"{\"cc_
export_record\":{\"export_user\":{\"equalTo\":\""
+
userInfo
+
"\"},\"type\":{\"equalTo\":2
}}}"
;
String
json
=
"{\"cc_
sharing_record\":{\"sharing_peple\":{\"equalTo\":\""
+
userInfo
+
"\"},\"type\":{\"equalTo\":0
}}}"
;
params
.
addBodyParameter
(
"filters"
,
json
);
params
.
addBodyParameter
(
"filters"
,
json
);
String
json2
=
"{\"cc_file\":{\"includes\":[\"file_id\"]}}"
;
String
json2
=
"{\"cc_file\":{\"includes\":[\"file_id\"]}}"
;
params
.
addBodyParameter
(
"includes"
,
json2
);
params
.
addBodyParameter
(
"includes"
,
json2
);
x
.
http
().
post
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
x
.
http
().
post
(
params
,
new
MainHttpCallBack
(
"list"
,
this
));
@Override
public
void
onSuccess
(
String
result
)
{
List
<
OcrRootBean
>
been
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
OcrRootBean
>>(){}.
getType
());
if
(
isUpdate
){
beanList
.
clear
();
}
beanList
.
addAll
(
been
);
if
(
been
.
size
()==
0
){
Toast
.
makeText
(
context
,
"暂无数据"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
been
.
size
()<
10
&&
been
.
size
()>
0
){
hasMoreData
=
false
;
// Toast.makeText(context,"无更多数据",Toast.LENGTH_SHORT).show();
}
else
hasMoreData
=
true
;
adaper
.
notifyDataSetChanged
();
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
pullToRefreshListView
.
setHasMoreData
(
hasMoreData
);
}
@Override
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
}
@Override
public
void
onCancelled
(
CancelledException
cex
)
{
}
@Override
public
void
onFinished
()
{
}
});
}
}
//下载文件
private
void
downLoadFile
(
String
path
,
String
fileName
)
{
private
void
downLoadFile
(
String
path
,
String
fileName
,
final
String
type
)
{
dialog
.
setMessage
(
"正在下載..."
);
dialog
.
setMessage
(
"正在下載..."
);
dialog
.
show
();
dialog
.
show
();
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
DOWN_LOAD_URL
);
...
@@ -231,10 +259,18 @@ public class ShareFragment extends Fragment {
...
@@ -231,10 +259,18 @@ public class ShareFragment extends Fragment {
x
.
http
().
get
(
params
,
new
Callback
.
CommonCallback
<
File
>()
{
x
.
http
().
get
(
params
,
new
Callback
.
CommonCallback
<
File
>()
{
@Override
@Override
public
void
onSuccess
(
File
result
)
{
public
void
onSuccess
(
File
result
)
{
Toast
.
makeText
(
context
,
"下载成功"
,
Toast
.
LENGTH_SHORT
).
show
();
if
(
type
.
equals
(
"batch"
)){
dialog
.
dismiss
();
handler
.
sendEmptyMessage
(
1
);
}
else
{
handler
.
sendEmptyMessage
(
2
);
}
}
}
@Override
@Override
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
public
void
onError
(
Throwable
ex
,
boolean
isOnCallback
)
{
dialog
.
dismiss
();
handler
.
sendEmptyMessage
(
0
);
Toast
.
makeText
(
context
,
"下载失败"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
@Override
@Override
public
void
onCancelled
(
CancelledException
cex
)
{
public
void
onCancelled
(
CancelledException
cex
)
{
...
@@ -244,29 +280,151 @@ public class ShareFragment extends Fragment {
...
@@ -244,29 +280,151 @@ public class ShareFragment extends Fragment {
}
}
});
});
}
}
private
void
startFileIntent
(
String
type
,
String
path
){
//添加分享记录
private
void
batchShareAdd
()
{
Intent
intent
=
new
Intent
(
"android.intent.action.VIEW"
);
List
<
ShareInfo
>
list
=
new
ArrayList
<>();
intent
.
addCategory
(
"android.intent.category.DEFAULT"
);
ShareInfo
superior
;
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
for
(
ShareRootBean
bean:
selectedInfos
){
File
file
;
superior
=
new
ShareInfo
();
Uri
uri
;
superior
.
setFileName
(
bean
.
getIncludes
().
getCc_file
().
getFileName
());
if
(
"word"
.
equals
(
type
)){
superior
.
setFilePath
(
bean
.
getIncludes
().
getCc_file
().
getFilePath
());
file
=
new
File
(
Configs
.
WORD_BASE
+
"/"
+
path
);
superior
.
setType
(
"0"
);
uri
=
Uri
.
fromFile
(
file
);
superior
.
setSharingPeple
(
bean
.
getSuperior
().
getSharingPeple
());
intent
.
setDataAndType
(
uri
,
"application/msword"
);
list
.
add
(
superior
);
}
else
if
(
"pdf"
.
equals
(
type
)){
}
file
=
new
File
(
Configs
.
PDF_BASE
+
"/"
+
path
);
HttpHolder
.
batchShareCcFile
(
list
,
new
MainHttpCallBack
(
"batch_share"
,
this
));
uri
=
Uri
.
fromFile
(
file
);
}
intent
.
setDataAndType
(
uri
,
"application/pdf"
);
//获取待下载项&&分享
}
else
if
(
"txt"
.
equals
(
type
)){
private
void
getNotLoadFilesAndLoad
(
List
<
ShareRootBean
>
list
)
{
file
=
new
File
(
Configs
.
TXT_BASE
+
"/"
+
path
);
loadBeans
=
new
ArrayList
<>();
uri
=
Uri
.
fromFile
(
file
);
shareFileUris
=
new
ArrayList
<>();
intent
.
setDataAndType
(
uri
,
"text/plain"
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
OcrRootBean
.
Cc_file
cc_file
=
list
.
get
(
i
).
getIncludes
().
getCc_file
();
String
type
=
cc_file
.
getFileName
().
substring
(
cc_file
.
getFileName
().
indexOf
(
"."
)
+
1
);
String
filePath
=
""
;
if
(
"doc"
.
equals
(
type
)
||
"docs"
.
equals
(
type
))
filePath
=
Configs
.
WORD_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"txt"
.
equals
(
type
))
filePath
=
Configs
.
TXT_BASE
+
"/"
+
cc_file
.
getFileName
();
else
if
(
"pdf"
.
equals
(
type
))
filePath
=
Configs
.
PDF_BASE
+
"/"
+
cc_file
.
getFileName
();
shareFileUris
.
add
(
FileUtil
.
getFileUri
(
context
,
new
File
(
filePath
)));
if
(!
FileUtil
.
isFileExist
(
filePath
))
loadBeans
.
add
(
selectedInfos
.
get
(
i
));
}
if
(
loadBeans
.
size
()
!=
0
)
{
dialog
.
setMessage
(
"正在下载,请稍后"
);
dialog
.
show
();
curLoadIndex
=
0
;
downLoadFile
(
loadBeans
.
get
(
curLoadIndex
).
getIncludes
().
getCc_file
().
getFilePath
(),
loadBeans
.
get
(
0
).
getIncludes
().
getCc_file
().
getFileName
(),
"batch"
);
}
else
{
batchShareAdd
();
}
}
private
void
reNameFile
()
{
String
newName
=
reNameEdit
.
getText
().
toString
().
trim
();
if
(!
newName
.
equals
(
clickedFileItem
.
getSuperior
().
getFileName
())){
if
(!
newName
.
contains
(
"."
))
newName
=
newName
+
clickedFileItem
.
getSuperior
().
getFileName
().
substring
(
clickedFileItem
.
getSuperior
().
getFileName
().
indexOf
(
"."
));
HttpHolder
.
editShareRecord
(
clickedFileItem
.
getSuperior
().
getId
(),
newName
,
new
MainHttpCallBack
(
"edit"
,
this
));
}
}
@Override
public
void
success
(
String
type
,
String
result
)
{
if
(
type
.
equals
(
"list"
)){
List
<
ShareRootBean
>
been
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
ShareRootBean
>>(){}.
getType
());
if
(
isUpdate
){
beanList
.
clear
();
}
beanList
.
addAll
(
been
);
if
(
been
.
size
()==
0
){
Toast
.
makeText
(
context
,
"暂无数据"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
been
.
size
()<
10
&&
been
.
size
()>
0
){
hasMoreData
=
false
;
}
else
hasMoreData
=
true
;
adaper
.
notifyDataSetChanged
();
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
pullToRefreshListView
.
setHasMoreData
(
hasMoreData
);
}
else
if
(
type
.
equals
(
"batch_share"
)){
List
<
ShareInfo
>
info
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
List
<
ShareInfo
>>(){}.
getType
());
if
(
info
!=
null
){
handleMenuListener
.
setHandleMenu
(
View
.
GONE
);
ShareUtil
.
batchShareFile
(
context
,
shareFileUris
);
adaper
.
setRadioShow
(
View
.
GONE
);
}
}
else
if
(
type
.
equals
(
"delete"
)){
try
{
JSONObject
object
=
new
JSONObject
(
result
);
String
data
=
object
.
getString
(
"message"
);
if
(
data
.
contains
(
"success"
))
{
Toast
.
makeText
(
context
,
"删除成功"
,
Toast
.
LENGTH_SHORT
).
show
();
handleMenuListener
.
setHandleMenu
(
View
.
GONE
);
adaper
.
setRadioShow
(
View
.
GONE
);
pullToRefreshListView
.
doPullRefreshing
(
true
,
100
);
}
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
}
else
if
(
"edit"
.
equals
(
type
))
{
OcrRootBean
.
Cc_file
file
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrRootBean
.
Cc_file
>(){}.
getType
());
if
(
null
!=
file
){
Toast
.
makeText
(
context
,
"修改成功"
,
Toast
.
LENGTH_SHORT
).
show
();
pullToRefreshListView
.
doPullRefreshing
(
true
,
100
);
}
else
Toast
.
makeText
(
context
,
"修改失败,请重试"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
"single_create"
.
equals
(
type
)){
OcrRootBean
.
Cc_file
cc_file
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrRootBean
.
Cc_file
>(){}.
getType
());
if
(
cc_file
!=
null
){
createCount
++;
if
(
createCount
==
selectedInfos
.
size
())
batchShareAdd
();
}
}
}
@Override
public
void
error
(
String
type
,
Throwable
t
)
{
Log
.
e
(
"TAG"
,
t
.
getMessage
());
if
(
type
.
equals
(
"list"
)){
pullToRefreshListView
.
onPullUpRefreshComplete
();
pullToRefreshListView
.
onPullDownRefreshComplete
();
}
}
@Override
public
void
onListTextCallBack
(
int
position
)
{
clickedFileItem
=
beanList
.
get
(
position
);
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
rename_dialog_layout
,
null
);
view
.
findViewById
(
R
.
id
.
normal_name
).
setOnClickListener
(
this
);
view
.
findViewById
(
R
.
id
.
positive
).
setOnClickListener
(
this
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
context
);
builder
.
setView
(
view
);
reNameEdit
=
(
EditText
)
view
.
findViewById
(
R
.
id
.
edit
);
reNameEdit
.
setHint
(
clickedFileItem
.
getSuperior
().
getFileName
());
reNameDialog
=
builder
.
create
();
reNameDialog
.
show
();
CustomDialogUtils
.
setDialogSize
((
Activity
)
context
,
dialog
);
}
@Override
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
()){
case
R
.
id
.
positive
:
reNameFile
();
reNameDialog
.
dismiss
();
break
;
case
R
.
id
.
normal_name
:
reNameDialog
.
dismiss
();
break
;
}
}
if
(
IntentUtil
.
isIntentAvailable
(
context
,
intent
))
startActivity
(
intent
);
else
Toast
.
makeText
(
context
,
"请检测是否已安装相应的文件打开工具"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/utils/FileUtil.java
View file @
da7093bf
...
@@ -2,6 +2,9 @@ package cn.com.bril.androidocr.studio.utils;
...
@@ -2,6 +2,9 @@ package cn.com.bril.androidocr.studio.utils;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.support.v4.content.FileProvider
;
import
com.scanlibrary.ScanConstants
;
import
com.scanlibrary.ScanConstants
;
...
@@ -60,4 +63,16 @@ public class FileUtil {
...
@@ -60,4 +63,16 @@ public class FileUtil {
return
true
;
return
true
;
}
}
public
static
Uri
getFileUri
(
Context
context
,
File
file
){
Uri
tempFileUri
=
null
;
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
tempFileUri
=
FileProvider
.
getUriForFile
(
context
.
getApplicationContext
(),
"com.scanlibrary.provider"
,
// As defined in Manifest
file
);
}
else
{
tempFileUri
=
Uri
.
fromFile
(
file
);
}
return
tempFileUri
;
}
}
}
app/src/main/java/cn/com/bril/androidocr/studio/utils/ShareUtil.java
View file @
da7093bf
package
cn
.
com
.
bril
.
androidocr
.
studio
.
utils
;
package
cn
.
com
.
bril
.
androidocr
.
studio
.
utils
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.media.MediaMetadataRetriever
;
import
android.media.MediaMetadataRetriever
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
java.io.File
;
import
java.io.File
;
import
java.util.ArrayList
;
/**
/**
* Created by sunny on 2018-3-19.
* Created by sunny on 2018-3-19.
...
@@ -18,7 +20,7 @@ public class ShareUtil {
...
@@ -18,7 +20,7 @@ public class ShareUtil {
public
static
void
shareFile
(
Activity
activity
,
File
file
)
{
public
static
void
shareFile
(
Activity
activity
,
File
file
)
{
if
(
null
!=
file
&&
file
.
exists
())
{
if
(
null
!=
file
&&
file
.
exists
())
{
Intent
share
=
new
Intent
(
Intent
.
ACTION_SEND
);
Intent
share
=
new
Intent
(
Intent
.
ACTION_SEND
);
share
.
putExtra
(
Intent
.
EXTRA_STREAM
,
Uri
.
fromFile
(
file
));
share
.
putExtra
(
Intent
.
EXTRA_STREAM
,
FileUtil
.
getFileUri
(
activity
,
file
));
share
.
setType
(
getMimeType
(
file
.
getAbsolutePath
()));
//此处可发送多种文件
share
.
setType
(
getMimeType
(
file
.
getAbsolutePath
()));
//此处可发送多种文件
share
.
setFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
share
.
setFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
share
.
addFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
);
share
.
addFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
);
...
@@ -47,4 +49,12 @@ public class ShareUtil {
...
@@ -47,4 +49,12 @@ public class ShareUtil {
}
}
return
mime
;
return
mime
;
}
}
public
static
void
batchShareFile
(
Context
activity
,
ArrayList
<
Uri
>
uris
){
//分享文件
Intent
intent
=
new
Intent
(
Intent
.
ACTION_SEND_MULTIPLE
);
//发送多个文件
intent
.
setType
(
"*/*"
);
//多个文件格式
intent
.
putParcelableArrayListExtra
(
Intent
.
EXTRA_STREAM
,
uris
);
//Intent.EXTRA_STREAM同于传输文件流
activity
.
startActivity
(
Intent
.
createChooser
(
intent
,
"多文件分享"
));
}
}
}
app/src/main/res/drawable/word.png
View replaced file @
0fdb8fa8
View file @
da7093bf
792 Bytes
|
W:
|
H:
3.43 KB
|
W:
|
H:
2-up
Swipe
Onion skin
app/src/main/res/layout/export_layout.xml
View file @
da7093bf
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
android:id=
"@+id/pdfLayout"
android:id=
"@+id/pdfLayout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"10dp"
>
android:padding=
"10dp"
android:visibility=
"gone"
>
<TextView
<TextView
android:id=
"@+id/pdf"
android:id=
"@+id/pdf"
...
...
app/src/main/res/layout/listview_item_layout.xml
View file @
da7093bf
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"5dp"
android:padding=
"5dp"
android:src=
"@drawable/word"
/>
/>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -55,16 +55,15 @@
...
@@ -55,16 +55,15 @@
<CheckBox
<CheckBox
android:id=
"@+id/radio"
android:id=
"@+id/radio"
android:layout_width=
"
18dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"
18dp
"
android:layout_height=
"
wrap_content
"
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:layout_alignParentRight=
"true"
android:layout_alignParentRight=
"true"
android:layout_marginRight=
"15dp"
android:layout_marginRight=
"15dp"
android:button=
"@null"
android:focusable=
"false"
android:focusable=
"false"
android:visibility=
"gone"
android:visibility=
"gone"
android:background=
"@drawable/radio_selector"
/>
/>
<!--android:background="@drawable/radio_selector"-->
</RelativeLayout>
</RelativeLayout>
app/src/main/res/values/styles.xml
View file @
da7093bf
...
@@ -5,9 +5,9 @@
...
@@ -5,9 +5,9 @@
<!-- Customize your theme here. -->
<!-- Customize your theme here. -->
<item
name=
"colorPrimary"
>
@color/colorPrimary
</item>
<item
name=
"colorPrimary"
>
@color/colorPrimary
</item>
<item
name=
"colorPrimaryDark"
>
@color/normal
</item>
<item
name=
"colorPrimaryDark"
>
@color/normal
</item>
<item
name=
"colorAccent"
>
@color/
yellow
</item>
<item
name=
"colorAccent"
>
@color/
normal
</item>
<!--Button按钮正常状态颜色-->
<!--Button按钮正常状态颜色-->
<item
name=
"colorButtonNormal"
>
@color/
yellow
</item>
<item
name=
"colorButtonNormal"
>
@color/
normal
</item>
<!--//colorAccent-->
<!--//colorAccent-->
</style>
</style>
...
...
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