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
Expand all
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 {
applicationId
"cn.com.bril.androidocr.studio"
minSdkVersion
21
targetSdkVersion
25
versionCode
7
versionName
"
2.7
.0"
versionCode
14
versionName
"
3.4
.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes
{
...
...
app/src/main/AndroidManifest.xml
View file @
da7093bf
...
...
@@ -39,6 +39,9 @@
android:name=
".ui.activity.OcrRecordActivity"
android:launchMode=
"singleTask"
/>
<activity
android:name=
".ui.activity.SearchActivity"
></activity>
</application>
</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;
public
class
Configs
{
public
static
String
USER_NAME
=
"
部门负责人
"
;
public
static
String
USER_ID
=
"1
2
"
;
public
static
String
USER_NAME
=
"
科员
"
;
public
static
String
USER_ID
=
"1
1
"
;
public
final
static
String
IMAGE_BASE
=
Environment
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/images"
;
...
...
@@ -17,6 +17,7 @@ public class Configs {
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/pdfs"
;
public
final
static
String
TXT_BASE
=
Environment
.
getExternalStorageDirectory
().
getPath
()
+
"/documentocr/txts"
;
// public final static String TXT_BASE= "sdcard/documentocr/txts";
public
final
static
String
WORD_BASE
=
Environment
.
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 {
//分享记录
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
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;
import
java.util.List
;
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.ShareInfo
;
import
cn.com.bril.androidocr.studio.configs.Configs
;
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.ui.activity.VertifyActivity
;
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.
*/
...
...
@@ -38,7 +44,7 @@ public class HttpHolder {
}
x
.
http
().
post
(
params
,
callBack
);
}
//上传文件
public
static
void
upLoadFile
(
String
path
,
VertifyActivity
.
HttpCallBack
callBack
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
UP_FILE
);
List
<
KeyValue
>
list
=
new
ArrayList
<>();
...
...
@@ -49,7 +55,6 @@ public class HttpHolder {
params
.
setRequestBody
(
body
);
x
.
http
().
post
(
params
,
callBack
);
};
//创建记录
public
static
void
createFileRecord
(
String
url
,
Map
<
String
,
Object
>
map
,
Callback
.
CommonCallback
<
String
>
listener
){
RequestParams
params
=
new
RequestParams
(
url
);
...
...
@@ -65,18 +70,12 @@ public class HttpHolder {
}
//批量导出
/**
*
* @param infos
* @param http
*/
public
static
void
volumeExport
(
List
<
OcrRootBean
.
Superior
>
infos
,
final
OnHttpListener
http
){
RequestParams
params
=
new
RequestParams
(
RequestConfig
.
BATCH_EXPORT_URL
);
params
.
addHeader
(
"X-Auth-Token"
,
"ocr"
);
String
json
=
GsonUtil
.
getInstance
().
toJson
(
infos
);
params
.
addBodyParameter
(
"params"
,
json
);
x
.
http
().
ge
t
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
x
.
http
().
pos
t
(
params
,
new
Callback
.
CommonCallback
<
String
>()
{
@Override
public
void
onSuccess
(
String
result
)
{
http
.
success
(
""
,
result
);
...
...
@@ -93,7 +92,7 @@ public class HttpHolder {
}
});
}
//批量删除
//批量删除
导出记录
public
static
void
volumeDelete
(
final
List
<
OcrRootBean
.
Superior
>
list
,
final
OnHttpListener
listener
){
JSONArray
array
=
new
JSONArray
();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
...
...
@@ -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
);
Iterator
<
Map
.
Entry
<
String
,
String
>>
it
=
map
.
entrySet
().
iterator
();
while
(
it
.
hasNext
()){
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
()));
}
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
This diff is collapsed.
Click to expand it.
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;
import
cn.com.bril.androidocr.studio.beans.ExportInfo
;
import
cn.com.bril.androidocr.studio.beans.Image
;
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.RequestConfig
;
import
cn.com.bril.androidocr.studio.http.HttpHolder
;
...
...
@@ -85,7 +86,7 @@ public class VertifyActivity extends AppCompatActivity {
private
String
statusType
;
private
OcrInfo
ocrInfo
;
File
shareFile
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -236,7 +237,6 @@ public class VertifyActivity extends AppCompatActivity {
// handler.sendEmptyMessageDelayed(1,500);
statusType
=
"0"
;
exportPdf
();
break
;
case
R
.
id
.
radio1
:
img
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
yellow
));
...
...
@@ -292,34 +292,35 @@ public class VertifyActivity extends AppCompatActivity {
}
private
void
exportDoc
(
String
type
)
{
if
(
null
==
ocrInfo
)
try
{
String
filename
=
image
.
getName
().
replace
(
"jpg"
,
"doc"
);
String
path
=
Configs
.
WORD_BASE
+
"/"
+
filename
;
String
content
=
"检务通识别文档\n "
+
recogniztion
;
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
recogniztion
.
getBytes
(
"GB2312"
));
POIFSFileSystem
fileSystem
=
new
POIFSFileSystem
();
DirectoryEntry
directory
=
fileSystem
.
getRoot
();
directory
.
createDocument
(
"WordDocument"
,
byteArrayInputStream
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
path
);
fileSystem
.
writeFilesystem
(
fileOutputStream
);
byteArrayInputStream
.
close
();
fileOutputStream
.
close
();
if
(
"share"
.
equals
(
type
))
ShareUtil
.
shareFile
(
this
,
new
File
(
path
));
HttpHolder
.
upLoadFile
(
path
,
new
HttpCallBack
(
"upload"
));
}
catch
(
IOException
e
)
{
if
(
null
==
ocrInfo
){
try
{
String
filename
=
image
.
getName
().
replace
(
"jpg"
,
"doc"
);
String
path
=
Configs
.
WORD_BASE
+
"/"
+
filename
;
String
content
=
"检务通识别文档\n "
+
recogniztion
;
ByteArrayInputStream
byteArrayInputStream
=
new
ByteArrayInputStream
(
content
.
getBytes
(
"GB2312"
));
POIFSFileSystem
fileSystem
=
new
POIFSFileSystem
();
DirectoryEntry
directory
=
fileSystem
.
getRoot
();
directory
.
createDocument
(
"WordDocument"
,
byteArrayInputStream
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
path
);
fileSystem
.
writeFilesystem
(
fileOutputStream
);
byteArrayInputStream
.
close
();
fileOutputStream
.
close
();
shareFile
=
new
File
(
path
);
// if("share".equals(type))
// ShareUtil.shareFile(this,new File(path));
HttpHolder
.
upLoadFile
(
path
,
new
HttpCallBack
(
"upload"
));
}
catch
(
IOException
e
)
{
Log
.
e
(
"TAG"
,
e
.
getMessage
());
}
}
else
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
}
}
}
public
class
HttpCallBack
implements
Callback
.
CommonCallback
<
String
>{
String
httpType
;
...
...
@@ -333,12 +334,17 @@ public class VertifyActivity extends AppCompatActivity {
JSONObject
object
=
new
JSONObject
(
result
);
String
filePath
=
object
.
getString
(
"message"
);
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
.
put
(
"header"
,
filePath
);
map
.
put
(
"filePath"
,
filePath
);
map
.
put
(
"fileName"
,
fileName
);
map
.
put
(
"fileSuffix"
,
fileName
.
substring
(
fileName
.
indexOf
(
"."
)+
1
)
);
map
.
put
(
"
status
"
,
"ocr"
);
map
.
put
(
"fileSuffix"
,
suffix
);
map
.
put
(
"
fileType
"
,
"ocr"
);
map
.
put
(
"uploadPeple"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
HttpHolder
.
exportFile
(
RequestConfig
.
ADD_URL
,
map
,
new
HttpCallBack
(
"create_file"
));
}
catch
(
JSONException
e
)
{
...
...
@@ -347,14 +353,17 @@ public class VertifyActivity extends AppCompatActivity {
}
else
if
(
"create_file"
.
equals
(
httpType
)){
ocrInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
OcrInfo
>()
{
}.
getType
());
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;1分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
}
else
if
(
"0"
.
equals
(
httpType
)){
if
(
statusType
.
equals
(
"0"
)){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"header"
,
"X-Auth-Token"
);
map
.
put
(
"fileId"
,
ocrInfo
.
getId
());
map
.
put
(
"exportUser"
,
Configs
.
USER_NAME
+
"_"
+
Configs
.
USER_ID
);
map
.
put
(
"type"
,
statusType
);
//0导出;2分享
HttpHolder
.
createFileRecord
(
RequestConfig
.
EXPORT_CREATE_URL
,
map
,
new
HttpCallBack
(
statusType
));
}
else
{
HttpHolder
.
shareCcFile
(
ocrInfo
,
new
HttpCallBack
(
"share"
));
}
}
else
if
(
"0"
.
equals
(
httpType
)){
if
(
dialog
!=
null
&&
dialog
.
isShowing
())
dialog
.
dismiss
();
ExportInfo
exportInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
ExportInfo
>()
{
...
...
@@ -362,12 +371,14 @@ public class VertifyActivity extends AppCompatActivity {
if
(
null
!=
exportInfo
){
Toast
.
makeText
(
VertifyActivity
.
this
,
"导出成功,请在文件管理/documentocr下查看"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
else
if
(
"
1
"
.
equals
(
httpType
)){
ExportInfo
exportInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
Export
Info
>()
{
}
else
if
(
"
share
"
.
equals
(
httpType
)){
ShareInfo
shareInfo
=
GsonUtil
.
getInstance
().
fromJson
(
result
,
new
TypeToken
<
Share
Info
>()
{
}.
getType
());
if
(
null
==
exportInfo
){
if
(
null
==
shareInfo
){
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;
import
android.widget.BaseAdapter
;
import
android.widget.CheckBox
;
import
android.widget.CompoundButton
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
java.util.ArrayList
;
...
...
@@ -51,6 +52,7 @@ public class FragmentListAdapter extends BaseAdapter {
}
return
newInfos
;
}
@Override
public
int
getCount
()
{
return
infos
.
size
();
...
...
@@ -75,6 +77,7 @@ public class FragmentListAdapter extends BaseAdapter {
holder
.
title
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
title
);
holder
.
time
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
time
);
holder
.
radioButton
=
(
CheckBox
)
convertView
.
findViewById
(
R
.
id
.
radio
);
holder
.
iv
=
(
ImageView
)
convertView
.
findViewById
(
R
.
id
.
icon
);
convertView
.
setTag
(
holder
);
}
else
holder
=
(
ViewHolder
)
convertView
.
getTag
();
...
...
@@ -88,6 +91,17 @@ public class FragmentListAdapter extends BaseAdapter {
else
fileName
=
s
;
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
.
radioButton
.
setVisibility
(
show
);
holder
.
radioButton
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
...
...
@@ -109,7 +123,7 @@ public class FragmentListAdapter extends BaseAdapter {
@Override
public
void
onClick
(
View
v
)
{
listTextClickListener
.
onListTextCallBack
(
infos
.
get
(
position
)
);
listTextClickListener
.
onListTextCallBack
(
position
);
}
}
...
...
@@ -118,10 +132,11 @@ public class FragmentListAdapter extends BaseAdapter {
}
public
interface
ListTextClickListener
{
void
onListTextCallBack
(
OcrRootBean
info
);
void
onListTextCallBack
(
int
postion
);
}
class
ViewHolder
{
TextView
title
,
time
;
ImageView
iv
;
CheckBox
radioButton
;
}
}
app/src/main/java/cn/com/bril/androidocr/studio/ui/fragment/ExportFragment.java
View file @
da7093bf
This diff is collapsed.
Click to expand it.
app/src/main/java/cn/com/bril/androidocr/studio/ui/fragment/ShareFragment.java
View file @
da7093bf
This diff is collapsed.
Click to expand it.
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;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.support.v4.content.FileProvider
;
import
com.scanlibrary.ScanConstants
;
...
...
@@ -60,4 +63,16 @@ public class FileUtil {
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
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.media.MediaMetadataRetriever
;
import
android.net.Uri
;
import
android.widget.Toast
;
import
java.io.File
;
import
java.util.ArrayList
;
/**
* Created by sunny on 2018-3-19.
...
...
@@ -18,7 +20,7 @@ public class ShareUtil {
public
static
void
shareFile
(
Activity
activity
,
File
file
)
{
if
(
null
!=
file
&&
file
.
exists
())
{
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
.
setFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
share
.
addFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
);
...
...
@@ -47,4 +49,12 @@ public class ShareUtil {
}
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 @@
android:id=
"@+id/pdfLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"10dp"
>
android:padding=
"10dp"
android:visibility=
"gone"
>
<TextView
android:id=
"@+id/pdf"
...
...
app/src/main/res/layout/listview_item_layout.xml
View file @
da7093bf
...
...
@@ -10,7 +10,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"5dp"
android:src=
"@drawable/word"
/>
/>
<LinearLayout
android:layout_width=
"match_parent"
...
...
@@ -55,16 +55,15 @@
<CheckBox
android:id=
"@+id/radio"
android:layout_width=
"
18dp
"
android:layout_height=
"
18dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"
wrap_content
"
android:layout_centerVertical=
"true"
android:layout_alignParentRight=
"true"
android:layout_marginRight=
"15dp"
android:button=
"@null"
android:focusable=
"false"
android:visibility=
"gone"
android:background=
"@drawable/radio_selector"
/>
/>
<!--android:background="@drawable/radio_selector"-->
</RelativeLayout>
app/src/main/res/values/styles.xml
View file @
da7093bf
...
...
@@ -5,9 +5,9 @@
<!-- Customize your theme here. -->
<item
name=
"colorPrimary"
>
@color/colorPrimary
</item>
<item
name=
"colorPrimaryDark"
>
@color/normal
</item>
<item
name=
"colorAccent"
>
@color/
yellow
</item>
<item
name=
"colorAccent"
>
@color/
normal
</item>
<!--Button按钮正常状态颜色-->
<item
name=
"colorButtonNormal"
>
@color/
yellow
</item>
<item
name=
"colorButtonNormal"
>
@color/
normal
</item>
<!--//colorAccent-->
</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