Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
AndiovisualRecord
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
Yu_Tung
AndiovisualRecord
Commits
d1ec12a4
Commit
d1ec12a4
authored
Jun 22, 2020
by
Yu-Tung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
判斷檔案上傳路徑&
parent
0fd37e62
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
299 additions
and
70 deletions
+299
-70
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+6
-4
BaseActivity.java
...java/com/example/audiovisualrecord/base/BaseActivity.java
+22
-41
LoginActivity.java
...com/example/audiovisualrecord/ui/login/LoginActivity.java
+8
-0
LoginPresenter.java
...om/example/audiovisualrecord/ui/login/LoginPresenter.java
+6
-1
MainActivity.java
...a/com/example/audiovisualrecord/ui/main/MainActivity.java
+32
-8
MainContract.java
...a/com/example/audiovisualrecord/ui/main/MainContract.java
+2
-0
MainPresenter.java
.../com/example/audiovisualrecord/ui/main/MainPresenter.java
+59
-16
audiovisualrecord.png
app/src/main/res/mipmap-xhdpi/audiovisualrecord.png
+0
-0
audiovisualrecord.png
app/src/main/res/mipmap-xxhdpi/audiovisualrecord.png
+0
-0
hs_err_pid20320.log
hs_err_pid20320.log
+164
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
d1ec12a4
...
...
@@ -15,18 +15,20 @@
<application
android:allowBackup=
"true"
android:icon=
"@mipmap/
ic_launcher
"
android:icon=
"@mipmap/
audiovisualrecord
"
android:label=
"@string/app_name"
android:roundIcon=
"@mipmap/
ic_launcher_roun
d"
android:roundIcon=
"@mipmap/
audiovisualrecor
d"
android:supportsRtl=
"true"
android:theme=
"@style/Theme.AppCompat.Light.NoActionBar"
>
<activity
android:name=
".ui.login.LoginActivity"
>
<activity
android:name=
".ui.login.LoginActivity"
android:screenOrientation=
"portrait"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=
".ui.main.MainActivity"
/>
<activity
android:name=
".ui.main.MainActivity"
android:screenOrientation=
"portrait"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
...
...
app/src/main/java/com/example/audiovisualrecord/base/BaseActivity.java
View file @
d1ec12a4
...
...
@@ -57,6 +57,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
.
create
()
.
show
();
}
@Override
public
void
showProgressDialog
(
String
text
)
{
dismissProgressDialog
();
...
...
@@ -155,6 +156,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
public
void
showToast
(
String
text
)
{
ToastCreator
.
makeText
(
this
,
text
,
Toast
.
LENGTH_SHORT
);
}
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
KITKAT
)
@Override
public
String
getPath
(
Uri
uri
)
{
...
...
@@ -163,24 +165,20 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
final
boolean
isKitKat
=
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
;
// DocumentProvider
if
(
isKitKat
&&
DocumentsContract
.
isDocumentUri
(
this
,
uri
))
{
if
(
isKitKat
&&
DocumentsContract
.
isDocumentUri
(
this
,
uri
))
{
// ExternalStorageProvider
if
(
isExternalStorageDocument
(
uri
))
{
if
(
isExternalStorageDocument
(
uri
))
{
final
String
docId
=
DocumentsContract
.
getDocumentId
(
uri
);
final
String
[]
split
=
docId
.
split
(
":"
);
final
String
type
=
split
[
0
];
if
(
"primary"
.
equalsIgnoreCase
(
type
))
{
if
(
"primary"
.
equalsIgnoreCase
(
type
))
{
return
Environment
.
getExternalStorageDirectory
()
+
"/"
+
split
[
1
];
}
}
// DownloadsProvider
else
if
(
isDownloadsDocument
(
uri
))
{
else
if
(
isDownloadsDocument
(
uri
))
{
final
String
id
=
DocumentsContract
.
getDocumentId
(
uri
);
final
Uri
contentUri
=
ContentUris
.
withAppendedId
(
...
...
@@ -190,37 +188,30 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
return
getDataColumn
(
this
,
contentUri
,
null
,
null
);
}
// MediaProvider
else
if
(
isMediaDocument
(
uri
))
{
else
if
(
isMediaDocument
(
uri
))
{
final
String
docId
=
DocumentsContract
.
getDocumentId
(
uri
);
final
String
[]
split
=
docId
.
split
(
":"
);
final
String
type
=
split
[
0
];
Uri
contentUri
=
null
;
if
(
"image"
.
equals
(
type
))
{
if
(
"image"
.
equals
(
type
))
{
contentUri
=
MediaStore
.
Images
.
Media
.
EXTERNAL_CONTENT_URI
;
}
else
if
(
"video"
.
equals
(
type
))
{
}
else
if
(
"video"
.
equals
(
type
))
{
contentUri
=
MediaStore
.
Video
.
Media
.
EXTERNAL_CONTENT_URI
;
}
else
if
(
"audio"
.
equals
(
type
))
{
}
else
if
(
"audio"
.
equals
(
type
))
{
contentUri
=
MediaStore
.
Audio
.
Media
.
EXTERNAL_CONTENT_URI
;
}
final
String
selection
=
"_id=?"
;
final
String
[]
selectionArgs
=
new
String
[]
{
split
[
1
]
};
final
String
[]
selectionArgs
=
new
String
[]
{
split
[
1
]
};
return
getDataColumn
(
this
,
contentUri
,
selection
,
selectionArgs
);
}
}
// MediaStore (and general)
else
if
(
"content"
.
equalsIgnoreCase
(
uri
.
getScheme
()))
{
else
if
(
"content"
.
equalsIgnoreCase
(
uri
.
getScheme
()))
{
// Return the remote address
if
(
isGooglePhotosUri
(
uri
))
return
uri
.
getLastPathSegment
();
...
...
@@ -228,8 +219,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
return
getDataColumn
(
this
,
uri
,
null
,
null
);
}
// File
else
if
(
"file"
.
equalsIgnoreCase
(
uri
.
getScheme
()))
{
else
if
(
"file"
.
equalsIgnoreCase
(
uri
.
getScheme
()))
{
return
uri
.
getPath
();
}
...
...
@@ -247,25 +237,20 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
* @return - The value of the _data column, which is typically a file path.
*/
private
static
String
getDataColumn
(
Context
context
,
Uri
uri
,
String
selection
,
String
[]
selectionArgs
)
{
String
selection
,
String
[]
selectionArgs
)
{
Cursor
cursor
=
null
;
final
String
column
=
"_data"
;
final
String
[]
projection
=
{
column
};
final
String
[]
projection
=
{
column
};
try
{
try
{
cursor
=
context
.
getContentResolver
().
query
(
uri
,
projection
,
selection
,
selectionArgs
,
null
);
if
(
cursor
!=
null
&&
cursor
.
moveToFirst
())
{
if
(
cursor
!=
null
&&
cursor
.
moveToFirst
())
{
final
int
index
=
cursor
.
getColumnIndexOrThrow
(
column
);
return
cursor
.
getString
(
index
);
}
}
finally
{
}
finally
{
if
(
cursor
!=
null
)
cursor
.
close
();
}
...
...
@@ -277,8 +262,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
* @param uri - The Uri to check.
* @return - Whether the Uri authority is ExternalStorageProvider.
*/
private
static
boolean
isExternalStorageDocument
(
Uri
uri
)
{
private
static
boolean
isExternalStorageDocument
(
Uri
uri
)
{
return
"com.android.externalstorage.documents"
.
equals
(
uri
.
getAuthority
());
}
...
...
@@ -286,8 +270,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
* @param uri - The Uri to check.
* @return - Whether the Uri authority is DownloadsProvider.
*/
private
static
boolean
isDownloadsDocument
(
Uri
uri
)
{
private
static
boolean
isDownloadsDocument
(
Uri
uri
)
{
return
"com.android.providers.downloads.documents"
.
equals
(
uri
.
getAuthority
());
}
...
...
@@ -295,8 +278,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
* @param uri - The Uri to check.
* @return - Whether the Uri authority is MediaProvider.
*/
private
static
boolean
isMediaDocument
(
Uri
uri
)
{
private
static
boolean
isMediaDocument
(
Uri
uri
)
{
return
"com.android.providers.media.documents"
.
equals
(
uri
.
getAuthority
());
}
...
...
@@ -304,8 +286,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BaseView
* @param uri - The Uri to check.
* @return - Whether the Uri authority is Google Photos.
*/
private
static
boolean
isGooglePhotosUri
(
Uri
uri
)
{
private
static
boolean
isGooglePhotosUri
(
Uri
uri
)
{
return
"com.google.android.apps.photos.content"
.
equals
(
uri
.
getAuthority
());
}
}
app/src/main/java/com/example/audiovisualrecord/ui/login/LoginActivity.java
View file @
d1ec12a4
...
...
@@ -44,6 +44,12 @@ public class LoginActivity extends BaseActivity implements LoginContract.View, V
}
@Override
protected
void
onPause
()
{
super
.
onPause
();
btnLogin
.
setEnabled
(
true
);
}
@Override
public
void
init
()
{
editAccount
=
findViewById
(
R
.
id
.
edit_account
);
editPassword
=
findViewById
(
R
.
id
.
edit_password
);
...
...
@@ -57,6 +63,7 @@ public class LoginActivity extends BaseActivity implements LoginContract.View, V
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
())
{
case
R
.
id
.
btn_login
:
btnLogin
.
setEnabled
(
false
);
// showProgressDialog("登入中");
// new Thread(){
// public void run(){
...
...
@@ -74,6 +81,7 @@ public class LoginActivity extends BaseActivity implements LoginContract.View, V
// }
// }.start();
presenter
.
onLogin
(
""
,
""
);
break
;
}
}
...
...
app/src/main/java/com/example/audiovisualrecord/ui/login/LoginPresenter.java
View file @
d1ec12a4
...
...
@@ -45,7 +45,9 @@ public class LoginPresenter<V extends LoginContract.View> implements LoginContra
if
(
"True"
.
equals
(
loginResponse
.
getmResult
()))
{
// loginPreferences.setToken(loginResponse.getmToken());
view
.
onCompleteLogin
(
loginResponse
.
getmMsg
());
}
else
{
view
.
showDialogCaveatMessage
(
"登入失敗"
);
}
}
...
...
@@ -53,7 +55,10 @@ public class LoginPresenter<V extends LoginContract.View> implements LoginContra
@Override
public
void
onError
(
Throwable
e
)
{
Log
.
e
(
"err"
,
e
.
getMessage
());
if
(
e
.
getMessage
().
contains
(
"No address associated with hostname"
))
{
view
.
showDialogCaveatMessage
(
"請檢查網路狀態"
);
}
view
.
showDialogCaveatMessage
(
"登入失敗"
);
}
...
...
app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java
View file @
d1ec12a4
...
...
@@ -61,6 +61,14 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
private
Button
btnCapturePicture
,
btnRecordVideo
,
btnGetImageFromGallery
,
btnGetVideoFromGallery
,
btnDeviceEdit
,
btnCentralCloud
,
btnChoseDevice
,
btnBasicInformation
;
private
File
photoFile
;
private
String
pathCompany
=
""
;
private
String
pathFactoryArea
=
""
;
private
String
pathFactoryClass
=
""
;
private
String
pathClass
=
""
;
private
String
pathShootType
=
""
;
private
String
uploadPath
=
"/"
;
// Bundle bag;
String
token
,
imageFilePath
;
int
countFile
=
0
;
...
...
@@ -248,7 +256,10 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
filename
.
add
(
FileUtil
.
fileName
(
getPath
(
data
.
getClipData
().
getItemAt
(
i
).
getUri
())));
Log
.
e
(
"gggg"
,
""
+
uriList
.
get
(
i
));
Log
.
e
(
"dddd"
,
""
+
filename
.
get
(
i
));
mPresenter
.
segVideo
(
uriList
.
get
(
i
),
filename
.
get
(
i
));
}
Log
.
e
(
"aaa"
,
count
+
""
);
...
...
@@ -256,13 +267,18 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
uriList
.
clear
();
String
path
=
FileUtil
.
getFileAbsolutePath
(
this
,
data
.
getData
());
String
name
=
FileUtil
.
fileName
(
path
);
mPresenter
.
segVideo
(
path
,
name
);
Log
.
e
(
"path"
,
path
);
// TODO here====================
// onUploadFile(compressList, getResourceString(R.string.on_upload_vedio));
//影片的uri
}
}
if
(
requestCode
==
PICK_FILE_REQUEST_CODE
&&
resultCode
==
RESULT_OK
)
{
Uri
selectedFile
=
data
.
getData
();
...
...
@@ -362,6 +378,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
//如果能改成用retrofit加rxjava最好,已經嘗試過三天的,可能有缺什麼,不過緊急所以先求功能
private
void
onUploadFile
(
final
ArrayList
<
String
>
uriList
,
String
type
)
{
uploadPath
=
mPresenter
.
onJudgmentPath
(
pathCompany
,
pathFactoryArea
,
pathFactoryClass
,
pathClass
,
pathShootType
);
// ongetsid();
showProgressDialog
(
type
);
...
...
@@ -403,8 +420,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
String
apiname
=
"SYNO.FileStation.Upload"
;
String
method
=
"upload"
;
String
version
=
"2"
;
String
sid
=
"4CY9mdpmlP5eh8KGLob3h3bqm6VvygRIu8BPwMIOy3UlYGBJ3VkM7Dgtw-hLIdH3ipntHHmJDK7y72Tio9ybLk"
;
String
path1
=
"/仁武氯乙烯廠製造一課/1_SOP導讀"
;
String
path1
=
uploadPath
;
Boolean
a
=
true
;
Boolean
b
=
false
;
...
...
@@ -564,7 +580,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
for
(
MNTFCTResponse
mMNTFCTResponse
:
adapterData
)
{
dialogString
.
add
(
mMNTFCTResponse
.
getmPZNM
());
}
showItemDialog
(
dialogString
,
on
Maintenance
DialogItemClick
);
showItemDialog
(
dialogString
,
on
FavtoryArea
DialogItemClick
);
}
@Override
...
...
@@ -574,7 +590,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
for
(
PMFCTResponse
mPMFCTResponse
:
adapterData
)
{
dialogString
.
add
(
mPMFCTResponse
.
getmDPNM
());
}
showItemDialog
(
dialogString
,
on
Production
DialogItemClick
);
showItemDialog
(
dialogString
,
on
FactoryClass
DialogItemClick
);
}
@Override
...
...
@@ -584,7 +600,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
for
(
EQKDResponse
mEQKDResponse
:
adapterData
)
{
dialogString
.
add
(
mEQKDResponse
.
getmShift
());
}
showItemDialog
(
dialogString
,
on
DeviceCategory
DialogItemClick
);
showItemDialog
(
dialogString
,
on
ClassUnit
DialogItemClick
);
}
@Override
...
...
@@ -607,34 +623,41 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
tvCompany
.
setText
(
mMainData
.
getmCODataList
().
get
(
which
).
getcONM
());
pathCompany
=
mMainData
.
getmCODataList
().
get
(
which
).
getcONM
();
mChooseDeviceItemData
.
setCompany
(
mMainData
.
getmCODataList
().
get
(
which
).
getcONM
());
mChooseDeviceItemData
.
setCompanyId
(
mMainData
.
getmCODataList
().
get
(
which
).
getcO
());
}
};
private
DialogInterface
.
OnClickListener
on
Maintenance
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
private
DialogInterface
.
OnClickListener
on
FavtoryArea
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
tvFactory
.
setText
(
mMainData
.
getmMNTFCTDataList
().
get
(
which
).
getmPZNM
());
pathFactoryArea
=
mMainData
.
getmMNTFCTDataList
().
get
(
which
).
getmPZNM
();
mChooseDeviceItemData
.
setFactoryAreaName
(
mMainData
.
getmMNTFCTDataList
().
get
(
which
).
getmPZNM
());
// mChooseDeviceItemData.setMaintenancePlantCompanyId(mMainData.getmMNTFCTDataList().get(which).getmPZ());
mChooseDeviceItemData
.
setFactoryAreaId
(
mMainData
.
getmMNTFCTDataList
().
get
(
which
).
getmPZ
());
}
};
private
DialogInterface
.
OnClickListener
on
Production
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
private
DialogInterface
.
OnClickListener
on
FactoryClass
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
tvUnit
.
setText
(
mMainData
.
getmPMFCTDataList
().
get
(
which
).
getmDPNM
());
pathFactoryClass
=
mMainData
.
getmPMFCTDataList
().
get
(
which
).
getmDPNM
();
mChooseDeviceItemData
.
setFactoryClassCode
(
mMainData
.
getmPMFCTDataList
().
get
(
which
).
getmDP
());
mChooseDeviceItemData
.
setFactoryClass
(
mMainData
.
getmPMFCTDataList
().
get
(
which
).
getmDPNM
());
mChooseDeviceItemData
.
setProductionPlantId
(
mMainData
.
getmPMFCTDataList
().
get
(
which
).
getmPMFCT
());
}
};
private
DialogInterface
.
OnClickListener
on
DeviceCategory
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
private
DialogInterface
.
OnClickListener
on
ClassUnit
DialogItemClick
=
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
tvClass
.
setText
(
mMainData
.
getmEQKDDataList
().
get
(
which
).
getmShift
());
pathClass
=
mMainData
.
getmEQKDDataList
().
get
(
which
).
getmShift
();
mChooseDeviceItemData
.
setDeviceCategory
(
mMainData
.
getmEQKDDataList
().
get
(
which
).
getmShift
());
// mChooseDeviceItemData.setDeviceCategryId(mMainData.getmEQKDDataList().get(which).getmEQKD());
}
...
...
@@ -644,6 +667,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
tvShootType
.
setText
(
mMainData
.
getmTYPEDataList
().
get
(
which
).
getmType
());
pathShootType
=
mMainData
.
getmTYPEDataList
().
get
(
which
).
getmType
();
mChooseDeviceItemData
.
setShootType
(
mMainData
.
getmTYPEDataList
().
get
(
which
).
getmType
());
}
};
...
...
app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java
View file @
d1ec12a4
...
...
@@ -31,5 +31,7 @@ public interface MainContract {
void
onGetTYPEData
(
String
CO
,
String
PMFCT
);
void
onGetSid
();
void
onLogoutSid
(
String
sid
);
String
onJudgmentPath
(
String
pathCompany
,
String
pathFactoryArea
,
String
pathFactoryClass
,
String
pathClass
,
String
pathShootType
);
}
}
app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java
View file @
d1ec12a4
package
com
.
example
.
audiovisualrecord
.
ui
.
main
;
import
android.os.Environment
;
import
android.text.LoginFilter
;
import
android.util.Log
;
...
...
@@ -35,7 +36,7 @@ import static com.arthenica.mobileffmpeg.Config.RETURN_CODE_SUCCESS;
public
class
MainPresenter
<
V
extends
MainContract
.
View
>
implements
MainContract
.
Presenter
<
V
>
{
// private String KEY_SEARCH_CO = "6c66fcbd-6dfe-45a2-ad6b-cbcda09b25bd";
// private String KEY_SEARCH_CO = "6c66fcbd-6dfe-45a2-ad6b-cbcda09b25bd";
private
String
KEY_SEARCH_CO
=
"3b0f7c72-5479-46c1-b26d-224748e64d7a"
;
private
String
KEY_SEARCH_PZ
=
"78bc27f8-6c1b-4172-ba61-05798001671b"
;
private
String
KEY_SEARCH_DP
=
"1c76477f-1fb0-49fb-a5bd-e75311bbe691"
;
...
...
@@ -43,13 +44,20 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
private
String
KEY_SEARCH_TYPE
=
"145ce81d-7bae-4848-a38a-e0e738385681"
;
private
String
USER_ID
=
"N000158385"
;
private
String
pathCompany
=
""
;
private
String
pathFactoryArea
=
""
;
private
String
pathFactoryClass
=
""
;
private
String
pathClass
=
""
;
private
String
pathShootType
=
""
;
private
V
view
;
private
String
LOGIN_AUTHORIZED_ID
=
"acd9be92-46bf-4185-8721-5b60c67f0742"
;
private
ApiService
api
;
SchedulerProviderImp
schedulerProviderImp
=
new
SchedulerProviderImp
();
private
CompositeDisposable
compositeDisposable
;
public
MainPresenter
(
V
view
){
public
MainPresenter
(
V
view
)
{
this
.
view
=
view
;
api
=
HttpMethods
.
getInstance
().
getApi
();
compositeDisposable
=
new
CompositeDisposable
();
...
...
@@ -124,7 +132,7 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
public
void
onNext
(
PMFCTResultList
mPMFCTResultList
)
{
if
(
mPMFCTResultList
.
getmPMFCTResponseList
().
size
()
<
1
)
{
view
.
showDialogCaveatMessage
(
view
.
getResourceString
(
R
.
string
.
get_pmfct_error_no_data
));
}
else
{
}
else
{
view
.
setDPNMData
(
mPMFCTResultList
.
getmPMFCTResponseList
());
}
...
...
@@ -157,7 +165,7 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
public
void
onNext
(
EQKDResultList
mEQKDResultList
)
{
if
(
mEQKDResultList
.
getmEQKDResponseList
().
size
()
<
1
)
{
view
.
showDialogCaveatMessage
(
view
.
getResourceString
(
R
.
string
.
get_shift_error_no_data
));
}
else
{
}
else
{
view
.
setEQKDData
(
mEQKDResultList
.
getmEQKDResponseList
());
}
}
...
...
@@ -178,9 +186,9 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
@Override
public
void
onGetTYPEData
(
String
CO
,
String
PMFCT
)
{
final
TYPERequest
mTypeRequest
=
new
TYPERequest
(
KEY_SEARCH_TYPE
,
USER_ID
,
CO
,
PMFCT
);
final
TYPERequest
mTypeRequest
=
new
TYPERequest
(
KEY_SEARCH_TYPE
,
USER_ID
,
CO
,
PMFCT
);
String
url
=
view
.
getResourceString
(
R
.
string
.
api_on_getTYPE
);
compositeDisposable
.
add
(
api
.
getTYPE
(
url
,
mTypeRequest
)
compositeDisposable
.
add
(
api
.
getTYPE
(
url
,
mTypeRequest
)
.
subscribeOn
(
schedulerProviderImp
.
io
())
.
observeOn
(
schedulerProviderImp
.
ui
())
.
subscribeWith
(
new
DisposableObserver
<
TYPEResultList
>()
{
...
...
@@ -188,14 +196,14 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
public
void
onNext
(
TYPEResultList
mTYPEResultList
)
{
if
(
mTYPEResultList
.
getmTYPEResponseList
().
size
()
<
1
)
{
view
.
showDialogCaveatMessage
(
view
.
getResourceString
(
R
.
string
.
get_type_error_no_data
));
}
else
{
}
else
{
view
.
setTYPEData
(
mTYPEResultList
.
getmTYPEResponseList
());
}
}
@Override
public
void
onError
(
Throwable
e
)
{
view
.
showDialogCaveatMessage
(
view
.
getResourceString
(
R
.
string
.
add_device_error
)
);
view
.
showDialogCaveatMessage
(
"請重試或檢查網路狀態"
);
}
@Override
...
...
@@ -217,13 +225,14 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
@Override
public
void
onNext
(
SIDDataList
mSIDDataList
)
{
view
.
setSIDData
(
mSIDDataList
.
getsIdDataList
().
getSid
());
Log
.
e
(
"sss"
,
mSIDDataList
.
getSuccess
());
Log
.
e
(
"sss"
,
mSIDDataList
.
getSuccess
());
}
@Override
public
void
onError
(
Throwable
e
)
{
// view.showDialogCaveatMessage(view.getResourceString( R.string.add_device_error));
Log
.
e
(
"aaaa"
,
e
.
getMessage
());
view
.
showDialogCaveatMessage
(
"請重試或檢查網路狀態"
);
Log
.
e
(
"error"
,
e
.
getMessage
());
}
@Override
...
...
@@ -236,19 +245,21 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
@Override
public
void
onLogoutSid
(
String
sid
)
{
String
url
=
"https://webapp.fpcitc.com.tw/SOP/api/FileUpload/PostLogout?sid="
+
sid
;
String
url
=
"https://webapp.fpcitc.com.tw/SOP/api/FileUpload/PostLogout?sid="
+
sid
;
compositeDisposable
.
add
(
api
.
onLogoutSid
(
url
)
.
subscribeOn
(
schedulerProviderImp
.
io
())
.
observeOn
(
schedulerProviderImp
.
ui
())
.
subscribeWith
(
new
DisposableObserver
<
LogoutSidResponse
>()
{
@Override
public
void
onNext
(
LogoutSidResponse
mLogoutSidResponse
)
{
Log
.
e
(
"success"
,
mLogoutSidResponse
.
getSuccess
());
Log
.
e
(
"success"
,
mLogoutSidResponse
.
getSuccess
());
}
@Override
public
void
onError
(
Throwable
e
)
{
if
(
e
.
getMessage
().
contains
(
"No address associated with hostname"
))
{
view
.
showDialogCaveatMessage
(
"請檢查網路狀態"
);
}
}
@Override
...
...
@@ -260,7 +271,13 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
}
@Override
public
void
segVideo
(
String
path
,
String
name
)
{
public
void
segVideo
(
final
String
path
,
final
String
name
)
{
view
.
showProgressDialog
(
"影片分割中"
);
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
File
video
=
new
File
(
path
);
int
sizeLimit
=
50
*
1024
*
1024
;
Log
.
e
(
"size"
,
video
.
length
()
+
""
);
...
...
@@ -276,25 +293,51 @@ public class MainPresenter<V extends MainContract.View> implements MainContract.
}
if
(
video
.
length
()
>
sizeLimit
)
{
for
(
int
i
=
0
;
i
<
loop
;
i
++)
{
int
rc
=
FFmpeg
.
execute
(
"-ss "
+
startTime
+
" -i "
+
path
+
" -t "
+
segTime
+
" "
+
Environment
.
getExternalStorageDirectory
().
toString
()
+
"/seg_"
+
i
+
name
+
".mp4"
);
int
rc
=
FFmpeg
.
execute
(
"-ss "
+
startTime
+
" -i "
+
path
+
" -t "
+
segTime
+
" "
+
Environment
.
getExternalStorageDirectory
().
toString
()
+
"/seg_"
+
i
+
name
);
if
(
rc
==
RETURN_CODE_SUCCESS
)
{
Log
.
i
(
Config
.
TAG
,
"Command execution completed successfully."
);
}
else
if
(
rc
==
RETURN_CODE_CANCEL
)
{
Log
.
i
(
Config
.
TAG
,
"Command execution cancelled by user."
);
}
else
{
Log
.
i
(
Config
.
TAG
,
String
.
format
(
"Command execution failed with rc=%d and the output below."
,
rc
));
Config
.
printLastCommandOutput
(
Log
.
INFO
);
}
startTime
+=
segTime
;
}
view
.
dismissProgressDialog
();
}
else
{
//沒超過
view
.
dismissProgressDialog
();
}
}
}).
start
();
}
@Override
public
String
onJudgmentPath
(
String
pathCompany
,
String
pathFactoryArea
,
String
pathFactoryClass
,
String
pathClass
,
String
pathShootType
)
{
String
path
=
""
;
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"SOP導讀"
.
equals
(
pathShootType
))
{
path
=
"/仁武氯乙烯廠製造一課/1_SOP導讀"
;
}
else
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"SOP審視會議"
.
equals
(
pathShootType
))
{
path
=
"/仁武氯乙烯廠製造一課/2_SOP審視修訂"
;
}
else
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"落實度查核"
.
equals
(
pathShootType
)
&&
"DA"
.
equals
(
pathClass
))
{
path
=
"/仁武氯乙烯廠製造一課/3_SOP落實度查核/DA"
;
}
else
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"落實度查核"
.
equals
(
pathShootType
)
&&
"DB"
.
equals
(
pathClass
))
{
path
=
"/仁武氯乙烯廠製造一課/3_SOP落實度查核/DB"
;
}
else
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"落實度查核"
.
equals
(
pathShootType
)
&&
"DC"
.
equals
(
pathClass
))
{
path
=
"/仁武氯乙烯廠製造一課/3_SOP落實度查核/DC"
;
}
else
if
(
"仁武氯乙烯廠製造一課"
.
equals
(
pathFactoryClass
)
&&
"落實度查核"
.
equals
(
pathShootType
)
&&
"DD"
.
equals
(
pathClass
))
{
path
=
"/仁武氯乙烯廠製造一課/3_SOP落實度查核/DD"
;
}
return
path
;
}
// @Override
...
...
app/src/main/res/mipmap-xhdpi/audiovisualrecord.png
0 → 100644
View file @
d1ec12a4
5.43 KB
app/src/main/res/mipmap-xxhdpi/audiovisualrecord.png
0 → 100644
View file @
d1ec12a4
9.64 KB
hs_err_pid20320.log
0 → 100644
View file @
d1ec12a4
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
# placed in the first 32GB address space. The Java Heap base address is the
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
# to set the Java Heap base and to place the Java Heap above 32GB virtual address.
# This output file may be truncated or incomplete.
#
# Out of Memory Error (memory/allocation.inline.hpp:61), pid=20320, tid=0x0000000000003a8c
#
# JRE version: (8.0_202-b03) (build )
# Java VM: OpenJDK 64-Bit Server VM (25.202-b03 mixed mode windows-amd64 compressed oops)
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
--------------- T H R E A D ---------------
Current thread (0x000000000312e800): JavaThread "Unknown thread" [_thread_in_vm, id=14988, stack(0x0000000003130000,0x0000000003230000)]
Stack: [0x0000000003130000,0x0000000003230000]
[error occurred during error reporting (printing stack bounds), id 0xc0000005]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x000000000312e800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=14988, stack(0x0000000003130000,0x0000000003230000)]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
heap address: 0x00000006c1200000, size: 4078 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x00000007c0000000
Heap:
PSYoungGen total 76288K, used 1310K [0x000000076b100000, 0x0000000770600000, 0x00000007c0000000)
eden space 65536K, 2% used [0x000000076b100000,0x000000076b247af0,0x000000076f100000)
from space 10752K, 0% used [0x000000076fb80000,0x000000076fb80000,0x0000000770600000)
to space 10752K, 0% used [0x000000076f100000,0x000000076f100000,0x000000076fb80000)
ParOldGen total 175104K, used 0K [0x00000006c1200000, 0x00000006cbd00000, 0x000000076b100000)
object space 175104K, 0% used [0x00000006c1200000,0x00000006c1200000,0x00000006cbd00000)
Metaspace used 778K, capacity 4480K, committed 4480K, reserved 1056768K
class space used 74K, capacity 384K, committed 384K, reserved 1048576K
Card table byte_map: [0x00000000126f0000,0x0000000012ef0000] byte_map_base: 0x000000000f0e7000
Marking Bits: (ParMarkBitMap*) 0x0000000069869f30
Begin Bits: [0x0000000013c40000, 0x0000000017bf8000)
End Bits: [0x0000000017bf8000, 0x000000001bbb0000)
Polling page: 0x00000000014d0000
CodeCache: size=245760Kb used=328Kb max_used=328Kb free=245431Kb
bounds [0x0000000003330000, 0x00000000035a0000, 0x0000000012330000]
total_blobs=57 nmethods=0 adapters=38
compilation: enabled
Compilation events (0 events):
No events
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (10 events):
Event: 0.021 loading class java/lang/Short
Event: 0.021 loading class java/lang/Short done
Event: 0.021 loading class java/lang/Integer
Event: 0.022 loading class java/lang/Integer done
Event: 0.022 loading class java/lang/Long
Event: 0.022 loading class java/lang/Long done
Event: 0.022 loading class java/lang/NullPointerException
Event: 0.022 loading class java/lang/NullPointerException done
Event: 0.022 loading class java/lang/ArithmeticException
Event: 0.022 loading class java/lang/ArithmeticException done
Dynamic libraries:
0x00007ff69da30000 - 0x00007ff69da61000 E:\Program Files\Android\Android Studio\jre\jre\bin\java.exe
0x00007ffb317a0000 - 0x00007ffb31990000 C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffb2fc30000 - 0x00007ffb2fce2000 C:\WINDOWS\System32\KERNEL32.DLL
0x00007ffb2e730000 - 0x00007ffb2e9d4000 C:\WINDOWS\System32\KERNELBASE.dll
0x00007ffb316b0000 - 0x00007ffb31753000 C:\WINDOWS\System32\ADVAPI32.dll
0x00007ffb2fb90000 - 0x00007ffb2fc2e000 C:\WINDOWS\System32\msvcrt.dll
0x00007ffb30de0000 - 0x00007ffb30e77000 C:\WINDOWS\System32\sechost.dll
0x00007ffb2fe20000 - 0x00007ffb2ff40000 C:\WINDOWS\System32\RPCRT4.dll
0x00007ffb31440000 - 0x00007ffb315d4000 C:\WINDOWS\System32\USER32.dll
0x00007ffb2f160000 - 0x00007ffb2f181000 C:\WINDOWS\System32\win32u.dll
0x00007ffb30050000 - 0x00007ffb30076000 C:\WINDOWS\System32\GDI32.dll
0x00007ffb2f400000 - 0x00007ffb2f595000 C:\WINDOWS\System32\gdi32full.dll
0x00007ffb2f7b0000 - 0x00007ffb2f84e000 C:\WINDOWS\System32\msvcp_win.dll
0x00007ffb2f190000 - 0x00007ffb2f28a000 C:\WINDOWS\System32\ucrtbase.dll
0x00007ffb22d60000 - 0x00007ffb22fe4000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.900_none_e6beb9d913147d17\COMCTL32.dll
0x00007ffb2f850000 - 0x00007ffb2fb85000 C:\WINDOWS\System32\combase.dll
0x00007ffb2f6d0000 - 0x00007ffb2f750000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x00007ffb2ffa0000 - 0x00007ffb2ffce000 C:\WINDOWS\System32\IMM32.DLL
0x0000000068d40000 - 0x0000000068e12000 E:\Program Files\Android\Android Studio\jre\jre\bin\msvcr100.dll
0x00000000690a0000 - 0x00000000698e6000 E:\Program Files\Android\Android Studio\jre\jre\bin\server\jvm.dll
0x00007ffb2ffd0000 - 0x00007ffb2ffd8000 C:\WINDOWS\System32\PSAPI.DLL
0x00007ffb2ada0000 - 0x00007ffb2adc4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x00007ffb28ca0000 - 0x00007ffb28caa000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ffb1a040000 - 0x00007ffb1a049000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ffb31220000 - 0x00007ffb3128f000 C:\WINDOWS\System32\WS2_32.dll
0x00007ffb2ad20000 - 0x00007ffb2ad4d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x00007ffb2f5a0000 - 0x00007ffb2f5ea000 C:\WINDOWS\System32\cfgmgr32.dll
0x00007ffb00a30000 - 0x00007ffb00a3f000 E:\Program Files\Android\Android Studio\jre\jre\bin\verify.dll
0x00007ffaf7530000 - 0x00007ffaf7559000 E:\Program Files\Android\Android Studio\jre\jre\bin\java.dll
0x00007ffaf2330000 - 0x00007ffaf2346000 E:\Program Files\Android\Android Studio\jre\jre\bin\zip.dll
VM Arguments:
java_command: org.jetbrains.git4idea.http.GitAskPassApp Password for 'https://github.com':
java_class_path (initial): E:/Program Files/Android/Android Studio/plugins/git4idea/lib/git4idea-rt.jar;E:/Program Files/Android/Android Studio/lib/xmlrpc-2.0.1.jar;E:/Program Files/Android/Android Studio/lib/commons-codec-1.10.jar;E:/Program Files/Android/Android Studio/lib/util.jar
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=E:/Program Files/Git/mingw64/libexec/git-core;E:/Program Files/Git/mingw64/libexec/git-core;E:\Program Files\Git\mingw64\bin;E:\Program Files\Git\usr\bin;C:\Users\PCKing\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_144\bin;D:\wamp64\bin\php\php5.6.31;C:\ProgramData\ComposerSetup\bin;C:\WINDOWS\System32\OpenSSH\;D:\Program Files\Crucial\Crucial Storage Executive;E:\Program Files\Git\cmd;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Users\PCKing\AppData\Local\Microsoft\WindowsApps;C:\Users\PCKing\AppData\Roaming\Composer\vendor\bin;C:\Users\PCKing\AppData\Local\GitHubDesktop\bin
USERNAME=PCKing
DISPLAY=:0.0
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 9, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.900)
CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 16695424k(3741100k free), swap 16695424k(5892k free)
vm_info: OpenJDK 64-Bit Server VM (25.202-b03) for windows-amd64 JRE (1.8.0_202-release-1483-b03), built by "builder" with MS VC++ 10.0 (VS2010)
time: Sat Jun 20 17:35:03 2020
timezone: x_зǮɶ
elapsed time: 0 seconds (0d 0h 0m 0s)
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