diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java index c90331b..3a5b525 100644 --- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java +++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainActivity.java @@ -10,7 +10,6 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.media.MediaRecorder; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -43,17 +42,12 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.TimeUnit; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import okhttp3.Call; -import okhttp3.Callback; import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -import retrofit2.http.Body; public class MainActivity extends BaseActivity implements MainContract.View, View.OnClickListener { @@ -80,6 +74,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie private List<String> filepath = new ArrayList<>(); private List<String> filename = new ArrayList<>(); + String sidData =""; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -91,6 +86,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie mPresenter = new MainPresenter(this); mMainData = new MainData(); mChooseDeviceItemData = new ChooseDeviceItemData(); + mPresenter.onGetSid(); } @Override @@ -235,6 +231,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie Log.e("eee", getPath(data.getData())); } //照片的uri +// mPresenter.onGetSid(); onUploadFile(uriList, getResourceString(R.string.on_upload_image)); // onUploadFile1(); } @@ -365,6 +362,8 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie //如果能改成用retrofit加rxjava最好,已經嘗試過三天的,可能有缺什麼,不過緊急所以先求功能 private void onUploadFile(final ArrayList<String> uriList, String type) { + +// ongetsid(); showProgressDialog(type); new Thread(new Runnable() { @Override @@ -404,45 +403,54 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie String apiname = "SYNO.FileStation.Upload"; String method = "upload"; String version = "2"; - String sid = "Tx2aTlIDdA5zLsxYDOYP95AnZqw1iUaEBGnDbsszo1QqaJzIe3B7AFZY5quVBataqzdMt3h-59L-AUhM9R_5hQ"; + String sid = "4CY9mdpmlP5eh8KGLob3h3bqm6VvygRIu8BPwMIOy3UlYGBJ3VkM7Dgtw-hLIdH3ipntHHmJDK7y72Tio9ybLk"; String path1 = "/仁武氯乙烯廠製造一課/1_SOP導讀"; Boolean a = true; Boolean b = false; OkHttpClient client = new OkHttpClient().newBuilder() - .connectTimeout(30, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .writeTimeout(30, TimeUnit.SECONDS) + .connectTimeout(60, TimeUnit.SECONDS) + .readTimeout(60, TimeUnit.SECONDS) + .writeTimeout(60, TimeUnit.SECONDS) .build(); // MediaType mediaType = MediaType.parse("application/octet-stream"); - MediaType mediaType = MediaType.parse("text/plain"); +// MediaType mediaType = MediaType.parse("multiparty/form-data"); + MediaType mediaType = MediaType.parse("image/jpg"); MultipartBody.Builder buildernew = new MultipartBody.Builder() .setType(MultipartBody.FORM) - .addFormDataPart("api", apiname) - .addFormDataPart("method", method) - .addFormDataPart("version", version) - .addFormDataPart("_sid", sid) +// .addFormDataPart("api", apiname) +// .addFormDataPart("method", method) +// .addFormDataPart("version", version) +// .addFormDataPart("_sid", sid) .addFormDataPart("path",path1) - .addFormDataPart("create_parents", ""+b) - .addFormDataPart("overwrite", ""+a); + .addFormDataPart("create_parents", a.toString()) + .addFormDataPart("overwrite", a.toString()) + .addFormDataPart("data", "") + .addFormDataPart("success", ""); + Log.e("test_path",path1); + Log.e("test_create_parents",b.toString()); + Log.e("test_overwrite",a.toString()); + // .addFormDataPart("file", "b525a7db0c5da640_1.jpg", // RequestBody.create(mediaType,new File("/storage/emulated/0/Watashi AHD V.2/temp_images/b525a7db0c5da640_1.jpg") // )); - Log.e("test",""+buildernew.build().parts().get(0)); +// Log.e("test",""+buildernew.build().parts().get(0)); for (String path : uriList) { File uploadFile = new File(path); // RequestBody fileBody = RequestBody.create(mediaType,uploadFile); buildernew.addFormDataPart("file", uploadFile.getName(), - RequestBody.create(MediaType.parse("application/octet-stream"), path)); - Log.e("pathname", uploadFile.getName()); + RequestBody.create(MediaType.parse("multiparty/form-data"), path)); +// RequestBody.create(MediaType.parse("application/octet-stream"), path)); + + Log.e("test_filename", uploadFile.getName()); Log.e("path", path); - Log.e("file", uploadFile.getAbsolutePath()); + Log.e("test_file", uploadFile.getAbsolutePath()); } RequestBody body = buildernew.build(); // buildernew.build(); Request request = new Request.Builder() - .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi?api="+apiname+"&method="+method+"&version="+version+"&_sid="+sid) + .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi?api="+apiname+"&method="+method+"&version="+version+"&_sid="+sidData) // .url("https://fpcrtpms.synology.me:5001/webapi/entry.cgi") .method("POST", body) // .header("api",apiname) @@ -453,7 +461,7 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie // .post(buildernew.build()) .build(); - Log.e("requrstBody", request.toString()); + Log.e("test_url", request.url().toString()); try { Response response = client.newCall(request).execute(); Log.e("response", response.body().string()); @@ -517,6 +525,26 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie }).start(); } + private void ongetsid(){ + new Thread(new Runnable() { + @Override + public void run() { + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + Request request = new Request.Builder() + .url("https://webapp.fpcitc.com.tw/SOP/api/FileUpload/GetLogin") + .method("GET", null) + .addHeader("Content-Type", "application/x-www-form-urlencoded") + .build(); + try { + Response response = client.newCall(request).execute(); + Log.e("response", response.body().string()); + } catch (IOException e) { + e.printStackTrace(); + } + } + }).start(); + } @Override public void setCOData(List<COResponse> adapterData) { dialogString.clear(); @@ -567,6 +595,12 @@ public class MainActivity extends BaseActivity implements MainContract.View, Vie showItemDialog(dialogString, onShootTypeCategoryDialogItemClick); } + @Override + public void setSIDData(String sid) { + sidData = sid; + + } + private DialogInterface.OnClickListener onCompanyDialogItemClick = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java index d299038..201f0fc 100644 --- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java +++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainContract.java @@ -3,6 +3,7 @@ package com.example.audiovisualrecord.ui.main; import com.example.audiovisualrecord.base.BaseView; import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResponse; + import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResponse; import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDResponse; import com.example.audiovisualrecord.utils.api.searchmntfct.MNTFCTResponse; @@ -17,6 +18,7 @@ public interface MainContract { void setDPNMData(List<PMFCTResponse> adapterData); void setEQKDData(List<EQKDResponse> adapterData); void setTYPEData(List<TYPEResponse> adapterData); + void setSIDData(String sid); } interface Presenter<V extends MainContract.View> { @@ -27,5 +29,6 @@ public interface MainContract { void onGetSHIFTData(String CO, String PMFCT); void segVideo(String path,String name); void onGetTYPEData(String CO,String PMFCT); + void onGetSid(); } } diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java index 074b6b7..d44eafc 100644 --- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java +++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainData.java @@ -25,6 +25,7 @@ public class MainData { private List<PMFCTResponse> mPMFCTDataList; private List<EQKDResponse> mEQKDDataList; private List<TYPEResponse> mTYPEDataList; + private String MSidData; public List<COResponse> getmCODataList() { @@ -67,6 +68,14 @@ public class MainData { this.mTYPEDataList = mTYPEDataList; } + public String getMSidData() { + return MSidData; + } + + public void setMSidData(String MSidData) { + this.MSidData = MSidData; + } + // public String getmCO() { // return mMNTCO; // } diff --git a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java index c181326..55e4696 100644 --- a/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java +++ b/app/src/main/java/com/example/audiovisualrecord/ui/main/MainPresenter.java @@ -11,6 +11,7 @@ import com.example.audiovisualrecord.utils.api.ApiService; import com.example.audiovisualrecord.utils.api.HttpMethods; import com.example.audiovisualrecord.utils.api.apidata.CORequest.CORequest; import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResultList; +import com.example.audiovisualrecord.utils.api.apidata.searchsid.SIDDataList; import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPERequest; import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResultList; import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDRequest; @@ -205,6 +206,34 @@ public class MainPresenter<V extends MainContract.View> implements MainContract. } @Override + public void onGetSid() { +// TYPERequest mTypeRequest = new TYPERequest(KEY_SEARCH_TYPE,USER_ID,CO, PMFCT); + String url = view.getResourceString(R.string.api_on_getSID); + compositeDisposable.add(api.getSID(url) + .subscribeOn(schedulerProviderImp.io()) + .observeOn(schedulerProviderImp.ui()) + .subscribeWith(new DisposableObserver<SIDDataList>() { + @Override + public void onNext(SIDDataList mSIDDataList) { + view.setSIDData(mSIDDataList.getsIdDataList().getSid()); + 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()); + } + + @Override + public void onComplete() { + + } + }) + ); + } + + @Override public void segVideo(String path,String name) { File video = new File(path); int sizeLimit = 50 * 1024 * 1024; diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java index 3e4c2a1..6de2e62 100644 --- a/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java +++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/ApiService.java @@ -4,6 +4,7 @@ import com.example.audiovisualrecord.utils.api.apidata.CORequest.CORequest; import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResultList; import com.example.audiovisualrecord.utils.api.apidata.login.LoginRequest; import com.example.audiovisualrecord.utils.api.apidata.login.LoginResponse; +import com.example.audiovisualrecord.utils.api.apidata.searchsid.SIDDataList; import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPERequest; import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResultList; import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDRequest; @@ -15,6 +16,7 @@ import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTResultList; import io.reactivex.Observable; import retrofit2.http.Body; +import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Url; @@ -31,4 +33,6 @@ public interface ApiService { Observable<TYPEResultList>getTYPE(@Url String url, @Body TYPERequest mTypeRequest); @POST Observable<LoginResponse> onLogin(@Url String url, @Body LoginRequest mLoginRequest); + @GET + Observable<SIDDataList> getSID(@Url String url); } diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java new file mode 100644 index 0000000..4c078fb --- /dev/null +++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/SIDDataList.java @@ -0,0 +1,30 @@ +package com.example.audiovisualrecord.utils.api.apidata.searchsid; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class SIDDataList { + @SerializedName("data") + @Expose + private getSID sIdDataList; + + @SerializedName("success") + @Expose + private java.lang.String success; + + public getSID getsIdDataList() { + return sIdDataList; + } + + public void setsIdDataList(getSID sIdDataList) { + this.sIdDataList = sIdDataList; + } + + public java.lang.String getSuccess() { + return success; + } + + public void setSuccess(java.lang.String success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java new file mode 100644 index 0000000..9dcd1bc --- /dev/null +++ b/app/src/main/java/com/example/audiovisualrecord/utils/api/apidata/searchsid/getSID.java @@ -0,0 +1,18 @@ +package com.example.audiovisualrecord.utils.api.apidata.searchsid; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class getSID { + @SerializedName("sid") + @Expose + private java.lang.String sid; + + public java.lang.String getSid() { + return sid; + } + + public void setSid(java.lang.String sid) { + this.sid = sid; + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 916803c..3d684c9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -45,6 +45,8 @@ <string name="api_on_getEQNO">SearchEQNO</string> <string name="api_on_Login">https://cloud.fpcetg.com.tw/FPC/API/FM/SopRecord_API/INFO/Access</string> <string name="api_on_DisposableToken">DisposableToken</string> + <string name="api_on_getSID">https://webapp.fpcitc.com.tw/SOP/api/FileUpload/GetLogin</string> + <!--addDevice部分--> <string name="get_pmfct_error_no_data">廠課無資料</string> @@ -64,5 +66,8 @@ <string name="add_device_no_data_file">檔案還未選擇</string> <string name="add_device_error">查詢資料失敗,請重試或檢查網路狀態,或檢查資料是否正確</string> + + <!-- getsid--> + <string name="get_sid_error_no_data">sid無資料</string> </resources>