Commit cac9468f by Yu-Tung

上傳影片,影片分割後上傳&廠課破圖&加上傳完成或失敗的dialog&解決

parent 279c854b
AudiovisualRecord
\ No newline at end of file
......@@ -64,22 +64,6 @@ public class LoginActivity extends BaseActivity implements LoginContract.View, V
switch (v.getId()) {
case R.id.btn_login:
btnLogin.setEnabled(false);
// showProgressDialog("登入中");
// new Thread(){
// public void run(){
// try{
// sleep(5000);
// presenter.onLogin("", "");
// dismissProgressDialog();
// }
// catch(Exception e){
// e.printStackTrace();
// }
// finally{
// dismissProgressDialog();
// }
// }
// }.start();
presenter.onLogin("", "");
break;
......@@ -106,4 +90,9 @@ public class LoginActivity extends BaseActivity implements LoginContract.View, V
intent.putExtras(bag);
startActivity(intent);
}
@Override
public void setButtonEnable(Boolean boo) {
btnLogin.setEnabled(boo);
}
}
......@@ -6,6 +6,7 @@ import com.example.audiovisualrecord.base.BaseView;
public interface LoginContract {
interface View extends BaseView {
void onCompleteLogin(String token);
void setButtonEnable(Boolean boo);
}
interface Presenter<V extends View> extends BaseAttacher<V> {
......
......@@ -27,7 +27,6 @@ public class LoginPresenter<V extends LoginContract.View> implements LoginContra
public LoginPresenter(V view) {
this.view = view;
api = HttpMethods.getInstance().getApi();
// loginPreferences = new LoginPreferences(context);
compositeDisposable = new CompositeDisposable();
}
......@@ -41,11 +40,8 @@ public class LoginPresenter<V extends LoginContract.View> implements LoginContra
.subscribeWith(new DisposableObserver<LoginResponse>() {
@Override
public void onNext(LoginResponse loginResponse) {
Log.e("next", loginResponse.getmMsg());
if ("True".equals(loginResponse.getmResult())) {
// loginPreferences.setToken(loginResponse.getmToken());
view.onCompleteLogin(loginResponse.getmMsg());
} else {
view.showDialogCaveatMessage("登入失敗");
......@@ -60,12 +56,11 @@ public class LoginPresenter<V extends LoginContract.View> implements LoginContra
view.showDialogCaveatMessage("請檢查網路狀態");
}
view.showDialogCaveatMessage("登入失敗");
view.setButtonEnable(true);
}
@Override
public void onComplete() {
Log.e("com", "asdasd");
}
})
);
......
......@@ -2,12 +2,12 @@ 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.searchco.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;
import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTResponse;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTResponse;
import com.example.audiovisualrecord.utils.api.searchpz.PZResponse;
import com.example.audiovisualrecord.utils.api.searchdp.DPResponse;
import java.util.ArrayList;
import java.util.List;
......@@ -15,20 +15,19 @@ import java.util.List;
public interface MainContract {
interface View extends BaseView {
void setCOData(List<COResponse> adapterData);
void setPZData(List<MNTFCTResponse> adapterData);
void setDPNMData(List<PMFCTResponse> adapterData);
void setEQKDData(List<EQKDResponse> adapterData);
void setPZData(List<PZResponse> adapterData);
void setDPNMData(List<DPResponse> adapterData);
void setEQKDData(List<SHIFTResponse> adapterData);
void setTYPEData(List<TYPEResponse> adapterData);
void onUploadFile(ArrayList<String> uriList, String type,String sid);
}
interface Presenter<V extends MainContract.View> {
// void onGetDisposableToken(String DeviceId);
void onGetComData();
void onGetPZData();
void onGetDPData(String CO, String PZ);
void onGetSHIFTData(String CO, String PMFCT);
ArrayList<String> segVideo(String path,String name);
void segVideo(String path,String name);
void onGetTYPEData(String CO,String PMFCT);
void onGetSid(ArrayList<String> uriList, String type);
void onLogoutSid(String sid);
......
package com.example.audiovisualrecord.ui.main;
import com.example.audiovisualrecord.utils.api.apidata.CORequest.COResponse;
import com.example.audiovisualrecord.utils.api.apidata.searchco.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;
import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTResponse;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTResponse;
import com.example.audiovisualrecord.utils.api.searchpz.PZResponse;
import com.example.audiovisualrecord.utils.api.searchdp.DPResponse;
import java.util.List;
public class MainData {
// private String mMNTCO="";//保養公司代碼
// private String mMNTFCT="";//保養廠代碼
// private String mCO="";//公司代碼
// private String mPMFCT="";//生產廠代碼
// private String mPMFCTNM="";//生產廠代碼
// private String mEQKD="";//設備類別代碼
// private String mEQKDNM="";//設備類別名稱
// private String mEQNO="";//設備編號
// private String mEQNM="";//設備名稱
// private String mNTCO="";//保養公司代碼
private List<COResponse> mCODataList;
private List<MNTFCTResponse> mMNTFCTDataList;
private List<PMFCTResponse> mPMFCTDataList;
private List<EQKDResponse> mEQKDDataList;
private List<TYPEResponse> mTYPEDataList;
private List<COResponse> mCODataList; //公司代碼
private List<PZResponse> mPZDataList; //廠區代碼
private List<DPResponse> mDPDataList; //廠課代碼
private List<SHIFTResponse> mSHIFTDataList; //班別代碼
private List<TYPEResponse> mTYPEDataList; //錄影類型
private String MSidData;
......@@ -32,32 +21,32 @@ public class MainData {
return mCODataList;
}
public List<MNTFCTResponse> getmMNTFCTDataList() {
return mMNTFCTDataList;
public List<PZResponse> getmPZDataList() {
return mPZDataList;
}
public void setmMNTFCTDataList(List<MNTFCTResponse> mMNTFCTDataList) {
this.mMNTFCTDataList = mMNTFCTDataList;
public void setmPZDataList(List<PZResponse> mPZDataList) {
this.mPZDataList = mPZDataList;
}
public void setmCODataList(List<COResponse> mCODataList) {
this.mCODataList = mCODataList;
}
public List<PMFCTResponse> getmPMFCTDataList() {
return mPMFCTDataList;
public List<DPResponse> getmDPDataList() {
return mDPDataList;
}
public void setmPMFCTDataList(List<PMFCTResponse> mPMFCTDataList) {
this.mPMFCTDataList = mPMFCTDataList;
public void setmDPDataList(List<DPResponse> mDPDataList) {
this.mDPDataList = mDPDataList;
}
public List<EQKDResponse> getmEQKDDataList() {
return mEQKDDataList;
public List<SHIFTResponse> getmSHIFTDataList() {
return mSHIFTDataList;
}
public void setmEQKDDataList(List<EQKDResponse> mEQKDDataList) {
this.mEQKDDataList = mEQKDDataList;
public void setmSHIFTDataList(List<SHIFTResponse> mSHIFTDataList) {
this.mSHIFTDataList = mSHIFTDataList;
}
public List<TYPEResponse> getmTYPEDataList() {
......@@ -76,83 +65,4 @@ public class MainData {
this.MSidData = MSidData;
}
// public String getmCO() {
// return mMNTCO;
// }
//
// public void setmCO(String mMNTCO) {
// this.mMNTCO = mMNTCO;
// }
//
// public String getmPZ() {
// return mMNTFCT;
// }
//
// public void setmPZ(String mMNTFCT) {
// this.mMNTFCT = mMNTFCT;
// }
//
// public String getmCO() {
// return mCO;
// }
//
// public void setmCO(String mCO) {
// this.mCO = mCO;
// }
//
// public String getmPMFCT() {
// return mPMFCT;
// }
//
// public void setmPMFCT(String mPMFCT) {
// this.mPMFCT = mPMFCT;
// }
//
// public String getmDPNM() {
// return mPMFCTNM;
// }
//
// public void setmDPNM(String mPMFCTNM) {
// this.mPMFCTNM = mPMFCTNM;
// }
//
// public String getmEQKD() {
// return mEQKD;
// }
//
// public void setmEQKD(String mEQKD) {
// this.mEQKD = mEQKD;
// }
//
// public String getmEQKDNM() {
// return mEQKDNM;
// }
//
// public void setmEQKDNM(String mEQKDNM) {
// this.mEQKDNM = mEQKDNM;
// }
//
// public String getmEQNO() {
// return mEQNO;
// }
//
// public void setmEQNO(String mEQNO) {
// this.mEQNO = mEQNO;
// }
//
// public String getmEQNM() {
// return mEQNM;
// }
//
// public void setmEQNM(String mEQNM) {
// this.mEQNM = mEQNM;
// }
//
// public String getmPZ() {
// return mNTCO;
// }
//
// public void setmPZ(String mNTCO) {
// this.mNTCO = mNTCO;
// }
}
package com.example.audiovisualrecord.utils.api;
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.searchco.CORequest;
import com.example.audiovisualrecord.utils.api.apidata.searchco.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.logoutsid.LogoutSidResponse;
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;
import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDResultList;
import com.example.audiovisualrecord.utils.api.searchmntfct.MNTFCTRequest;
import com.example.audiovisualrecord.utils.api.searchmntfct.MNTFCTResultList;
import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTRequest;
import com.example.audiovisualrecord.utils.api.searchpmfct.PMFCTResultList;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTRequest;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTResultList;
import com.example.audiovisualrecord.utils.api.searchpz.PZRequest;
import com.example.audiovisualrecord.utils.api.searchpz.PZResultList;
import com.example.audiovisualrecord.utils.api.searchdp.DPRequest;
import com.example.audiovisualrecord.utils.api.searchdp.DPResultList;
import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.Url;
public interface ApiService {
@POST
Observable<COResultList> getCO(@Url String url, @Body CORequest mCORequest);
@POST
Observable<MNTFCTResultList> getPZ(@Url String url, @Body MNTFCTRequest mMNTFCTRequest);
Observable<PZResultList> getPZ(@Url String url, @Body PZRequest mPZRequest);
@POST
Observable<PMFCTResultList> getDP(@Url String url, @Body PMFCTRequest mPMFCTRequest);
Observable<DPResultList> getDP(@Url String url, @Body DPRequest mDPRequest);
@POST
Observable<EQKDResultList> getEQKD(@Url String url, @Body EQKDRequest mEQKDRequest);
Observable<SHIFTResultList> getSHIFT(@Url String url, @Body SHIFTRequest mSHIFTRequest);
@POST
Observable<TYPEResultList>getTYPE(@Url String url, @Body TYPERequest mTypeRequest);
@POST
......
package com.example.audiovisualrecord.utils.api.apidata.CORequest;
package com.example.audiovisualrecord.utils.api.apidata.searchco;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
......
package com.example.audiovisualrecord.utils.api.apidata.CORequest;
package com.example.audiovisualrecord.utils.api.apidata.searchco;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
......
package com.example.audiovisualrecord.utils.api.apidata.CORequest;
package com.example.audiovisualrecord.utils.api.apidata.searchco;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
......
package com.example.audiovisualrecord.utils.api.apidata.searchtype;
import com.example.audiovisualrecord.utils.api.searcheqkd.EQKDResponse;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
......
package com.example.audiovisualrecord.utils.api.searchpmfct;
package com.example.audiovisualrecord.utils.api.searchdp;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class PMFCTRequest {
public class DPRequest {
@SerializedName("AuthorizedId")
@Expose
private String authorizedId;
......@@ -16,7 +16,7 @@ public class PMFCTRequest {
@SerializedName("PZ")
@Expose
private String mPZ;
public PMFCTRequest(String authorizedId, String idNo, String mCO, String mPZ) {
public DPRequest(String authorizedId, String idNo, String mCO, String mPZ) {
this.authorizedId=authorizedId;
this.idNo=idNo;
this.mCO = mCO;
......
package com.example.audiovisualrecord.utils.api.searchpmfct;
package com.example.audiovisualrecord.utils.api.searchdp;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class PMFCTResponse {
public class DPResponse {
@SerializedName("CO")
@Expose
private String mCO;
......
package com.example.audiovisualrecord.utils.api.searcheqkd;
package com.example.audiovisualrecord.utils.api.searchdp;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class EQKDResultList {
public class DPResultList {
@SerializedName("ResultList")
@Expose
private List<EQKDResponse> mEQKDResponseList;
private List<DPResponse> mDPResponseList;
public List<EQKDResponse> getmEQKDResponseList() {
return mEQKDResponseList;
public List<DPResponse> getmDPResponseList() {
return mDPResponseList;
}
public void setmEQKDResponseList(List<EQKDResponse> mEQKDResponseList) {
this.mEQKDResponseList = mEQKDResponseList;
public void setmDPResponseList(List<DPResponse> mDPResponseList) {
this.mDPResponseList = mDPResponseList;
}
}
package com.example.audiovisualrecord.utils.api.searchmntfct;
package com.example.audiovisualrecord.utils.api.searchpz;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class MNTFCTRequest {
public class PZRequest {
@SerializedName("AuthorizedId")
@Expose
private String authorizedId;
@SerializedName("IdNo")
@Expose
private String idNo;
public MNTFCTRequest(String authorizedId, String idNo) {
public PZRequest(String authorizedId, String idNo) {
this.authorizedId=authorizedId;
this.idNo=idNo;
}
......
package com.example.audiovisualrecord.utils.api.searchmntfct;
package com.example.audiovisualrecord.utils.api.searchpz;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class MNTFCTResponse {
public class PZResponse {
@SerializedName("PZ")
@Expose
private String mPZ;
......
package com.example.audiovisualrecord.utils.api.searchmntfct;
package com.example.audiovisualrecord.utils.api.searchpz;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class MNTFCTResultList {
public class PZResultList {
@SerializedName("ResultList")
@Expose
private List<MNTFCTResponse> mNTFCTResponse;
private List<PZResponse> mNTFCTResponse;
public List<MNTFCTResponse> getmNTFCTResponse() {
public List<PZResponse> getmNTFCTResponse() {
return mNTFCTResponse;
}
public void setmNTFCTResponse(List<MNTFCTResponse> mNTFCTResponse) {
public void setmNTFCTResponse(List<PZResponse> mNTFCTResponse) {
this.mNTFCTResponse = mNTFCTResponse;
}
}
package com.example.audiovisualrecord.utils.api.searcheqkd;
package com.example.audiovisualrecord.utils.api.searchshift;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class EQKDRequest {
public class SHIFTRequest {
@SerializedName("AuthorizedId")
@Expose
private String authorizedId;
......@@ -16,7 +16,7 @@ public class EQKDRequest {
@SerializedName("PMFCT")
@Expose
private String mPMFCT;
public EQKDRequest(String authorizedId, String idNo, String mCO, String mPMFCT) {
public SHIFTRequest(String authorizedId, String idNo, String mCO, String mPMFCT) {
this.authorizedId=authorizedId;
this.idNo=idNo;
this.mCO=mCO;
......
package com.example.audiovisualrecord.utils.api.searcheqkd;
package com.example.audiovisualrecord.utils.api.searchshift;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class EQKDResponse {
public class SHIFTResponse {
@SerializedName("Shift")
@Expose
private String mShift;
......
package com.example.audiovisualrecord.utils.api.searchpmfct;
package com.example.audiovisualrecord.utils.api.searchshift;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class PMFCTResultList {
public class SHIFTResultList {
@SerializedName("ResultList")
@Expose
private List<PMFCTResponse> mPMFCTResponseList;
private List<SHIFTResponse> mSHIFTResponseList;
public List<PMFCTResponse> getmPMFCTResponseList() {
return mPMFCTResponseList;
public List<SHIFTResponse> getmSHIFTResponseList() {
return mSHIFTResponseList;
}
public void setmPMFCTResponseList(List<PMFCTResponse> mPMFCTResponseList) {
this.mPMFCTResponseList = mPMFCTResponseList;
public void setmSHIFTResponseList(List<SHIFTResponse> mSHIFTResponseList) {
this.mSHIFTResponseList = mSHIFTResponseList;
}
}
......@@ -6,6 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:id="@+id/mConstrainLayout"
>
<androidx.constraintlayout.widget.Guideline
......@@ -100,115 +101,116 @@
app:layout_constraintGuide_percent="0.95" />
<!-- 選擇區域 -->
<Button
<TextView
android:id="@+id/tv_company"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/p2_conpany"
app:layout_constraintHeight_percent="0.07"
app:layout_constraintWidth_percent="0.84"
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_12"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_10"
/>
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_12"
app:layout_constraintWidth_percent="0.84" />
<TextView
android:id="@+id/text_company"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintWidth_percent="0.45"
app:layout_constraintHeight_percent="0.05"
android:gravity="center"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@+id/tv_company"
app:layout_constraintBottom_toBottomOf="@id/tv_company"
app:layout_constraintHeight_percent="0.05"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_40"
/>
app:layout_constraintTop_toTopOf="@id/tv_company"
app:layout_constraintWidth_percent="0.45" />
<Button
<TextView
android:id="@+id/tv_factory"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/p2_factory"
app:layout_constraintHeight_percent="0.07"
app:layout_constraintWidth_percent="0.84"
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_20"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_10"
/>
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_20"
app:layout_constraintWidth_percent="0.84" />
<TextView
android:id="@+id/text_factory"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintWidth_percent="0.45"
app:layout_constraintHeight_percent="0.05"
android:gravity="center"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@+id/tv_factory"
app:layout_constraintBottom_toBottomOf="@id/tv_factory"
app:layout_constraintHeight_percent="0.05"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_40"
/>
app:layout_constraintTop_toTopOf="@+id/tv_factory"
app:layout_constraintWidth_percent="0.45" />
<Button
<TextView
android:id="@+id/tv_unit"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/p2_unit"
app:layout_constraintHeight_percent="0.07"
app:layout_constraintWidth_percent="0.84"
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_28"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_10"
/>
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_28"
app:layout_constraintWidth_percent="0.84" />
<TextView
android:id="@+id/text_unit"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintWidth_percent="0.35"
app:layout_constraintHeight_percent="0.05"
android:gravity="center"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@+id/tv_unit"
app:layout_constraintBottom_toBottomOf="@id/tv_unit"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_45"
/>
app:layout_constraintHeight_percent="0.05"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_40"
app:layout_constraintTop_toTopOf="@+id/tv_unit"
app:layout_constraintWidth_percent="0.46" />
<Button
<TextView
android:id="@+id/tv_class"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/p2_class"
android:gravity="center_horizontal"
app:layout_constraintHeight_percent="0.07"
app:layout_constraintWidth_percent="0.84"
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_36"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_10"
/>
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_36"
app:layout_constraintWidth_percent="0.84" />
<TextView
android:id="@+id/text_class"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintWidth_percent="0.45"
app:layout_constraintHeight_percent="0.05"
android:gravity="center"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@+id/tv_class"
app:layout_constraintBottom_toBottomOf="@id/tv_class"
app:layout_constraintHeight_percent="0.05"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_40"
/>
app:layout_constraintTop_toTopOf="@+id/tv_class"
app:layout_constraintWidth_percent="0.45" />
<Button
<TextView
android:id="@+id/tv_shoottype"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/p2_shoottype"
app:layout_constraintHeight_percent="0.07"
app:layout_constraintWidth_percent="0.84"
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_44"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_10"
/>
app:layout_constraintTop_toBottomOf="@+id/guide_line_horizontal_44"
app:layout_constraintWidth_percent="0.84" />
<TextView
android:id="@+id/text_shoottype"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintWidth_percent="0.45"
app:layout_constraintHeight_percent="0.05"
android:gravity="center"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@+id/tv_shoottype"
app:layout_constraintBottom_toBottomOf="@id/tv_shoottype"
app:layout_constraintHeight_percent="0.05"
app:layout_constraintStart_toEndOf="@id/guide_line_vertical_40"
/>
app:layout_constraintTop_toTopOf="@+id/tv_shoottype"
app:layout_constraintWidth_percent="0.45" />
<!-- 建立現場資料 -->
<View
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment