Ver Fonte

서명 이미지 오류 수정

junekeunsong há 4 anos atrás
pai
commit
06500b00a0

+ 8 - 0
.idea/compiler.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <bytecodeTargetLevel>
+      <module name="knuh_consent.app" target="1.8" />
+    </bytecodeTargetLevel>
+  </component>
+</project>

+ 1 - 0
.idea/gradle.xml

@@ -14,6 +14,7 @@
           </set>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />
+        <option name="useQualifiedModuleNames" value="true" />
       </GradleProjectSettings>
     </option>
   </component>

+ 1 - 0
app/build.gradle

@@ -90,6 +90,7 @@ android {
             applicationIdSuffix ".bonwon_dev"
             buildConfigField "String", "originalPackageName", "\"com.dbs.mplus.knuh\""
             buildConfigField "String", "CONSENT_SERVER_URL", "\"https://emadev.knuh.kr:8096/\""
+//            buildConfigField "String", "CONSENT_SERVER_URL", "\"http://192.168.199.212:8081/\""
             buildConfigField "String", "CONSENT_EFORM_SERVER_URL", "\"https://emadev.knuh.kr:8095/eformservice.aspx\""
             buildConfigField "String", "INST_CD", "\"031\""
             manifestPlaceholders = [appLabel: "본원교육"]

+ 1 - 0
app/src/main/java/com/dbs/mplus/knuh/activity/activityEvent/TopMenu.java

@@ -93,6 +93,7 @@ public class TopMenu {
       mData.put("userId", instance.userId);
 
       userSignDataInfoVO = getUserSignDataInfo(mData);
+      Log.e(TAG, "signImage -- > " + userSignDataInfoVO.getSignData());
 
       if (userSignDataInfoVO == null || userSignDataInfoVO.getUserNm().equals("")) {
         instance.dismissProgress();

+ 4 - 0
app/src/main/java/com/dbs/mplus/knuh/consent/ConsentFacade.java

@@ -96,6 +96,10 @@ public class ConsentFacade {
     SaveType[] preventSaveAtInitializationError = {SaveType.Save, SaveType.TempSave, SaveType.TempSave2}; // 컨트롤 오류가 있을 경우 저장 이벤트 막기
     runOption.setPreventSaveAtInitializationError(preventSaveAtInitializationError);
 
+//    runOption.setCompressionSave(true);
+//    runOption.setCompressionTempSave(true);
+//    runOption.setCompressionTempSave2(true);
+
 //    runOption.setUiStyle("{"
 //        + "'required-input':{'border':{'visible':'false','color':{'b':0,'g':0,'r':225,'a':120},'width':2},'background':{'visible':'true','color':{'b':0,'g':0,'r':225,'a':120}}}"
 //        + ",'toast-message':{'signature-missing-data':{'text':'" + mContext.getString(R.string.emptySign) + "'}}"

+ 14 - 3
app/src/main/java/com/dbs/mplus/knuh/customView/CustomSignDialog.java

@@ -33,10 +33,12 @@ import com.dbs.mplus.knuh.httpTask.SoapParser;
 import com.dbs.mplus.knuh.model.UserSignDataInfoVO;
 import com.dbs.mplus.knuh.util.ConsentConfig;
 import com.dbs.mplus.knuh.util.Util;
+import com.github.chrisbanes.photoview.PhotoView;
 import com.github.gcacace.signaturepad.views.SignaturePad;
 
 import org.ksoap2.serialization.SoapObject;
 
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -67,6 +69,7 @@ public class CustomSignDialog extends Dialog {
   private Button btnCancel;
   private Button btnConfirm;
   private SignaturePad spSignImage;
+//  private PhotoView ivSignImage;
 
   public CustomSignDialog(@NonNull Context context, AppCompatActivity activity, UserSignDataInfoVO userSignDataInfoVO) {
     super(context);
@@ -98,6 +101,10 @@ public class CustomSignDialog extends Dialog {
     spSignImage     = (SignaturePad) findViewById(R.id.spSignImage);
     btnConfirm      = (Button) findViewById(R.id.btnConfirm);
     btnCancel       = (Button) findViewById(R.id.btnCancel);
+//    ivSignImage     = (PhotoView) findViewById(R.id.ivSignImage);
+//    ivSignImage.setVisibility(View.GONE);
+
+//    spSignImage.setVisibility(View.GONE);
 
     Drawable btnCancelBackground = (Drawable) btnCancel.getBackground();
     btnCancelBackground.setColorFilter(ContextCompat.getColor(mContext, R.color.alertCancelColor), PorterDuff.Mode.SRC_ATOP);
@@ -112,12 +119,15 @@ public class CustomSignDialog extends Dialog {
     signImageSeqNo  = userSignDataInfoVO.getSignImageSeqNo();
     signImage       = userSignDataInfoVO.getSignData().getBytes();
 
+    byte[] imgbytes = Base64.decode(signImage, Base64.DEFAULT);
+
     tvUserNm.setText(userNm);
     etUserId.setText(userId);
 
     if (!signImage.equals("")) {
-      Bitmap bitmap = BitmapFactory.decodeByteArray(signImage, 0, signImage.length);
+      Bitmap bitmap = BitmapFactory.decodeByteArray(imgbytes, 0, imgbytes.length);
       spSignImage.setSignatureBitmap(bitmap);
+//      ivSignImage.setImageBitmap(bitmap);
     }
 
     // 보건의료정보팀일 경우 환자조회가 가능하도록
@@ -137,7 +147,7 @@ public class CustomSignDialog extends Dialog {
     @Override
     public void onClick(View v) {
       if (v == startSignLayout) {
-        CustomSignPad customSignPad = new CustomSignPad(mContext, signPadImg);
+        CustomSignPad customSignPad = new CustomSignPad(mContext, spSignImage.getSignatureBitmap());
         customSignPad.setDialogListener(new CustomSignPad.CustomSignPadListener() {
           @Override
           public void onConfirmClicked(Bitmap signPadImage) {
@@ -217,7 +227,8 @@ public class CustomSignDialog extends Dialog {
         byte[] signArr = stream.toByteArray() ;
         String strSignImg = "";
         try {
-          strSignImg = Util.base64Encode(signArr);
+//          strSignImg = Util.base64Encode(signArr);
+          strSignImg = Base64.encodeToString(signArr, Base64.DEFAULT);
           stream.close();
         } catch (UnsupportedEncodingException e) {
           e.printStackTrace();

+ 31 - 4
app/src/main/java/com/dbs/mplus/knuh/customView/CustomSignPad.java

@@ -13,6 +13,7 @@ import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
 import android.widget.LinearLayout;
+import android.widget.Toast;
 
 import com.dbs.mplus.knuh.R;
 import com.github.gcacace.signaturepad.views.SignaturePad;
@@ -31,6 +32,8 @@ public class CustomSignPad extends Dialog {
 
   private Bitmap signImage;
 
+  private boolean isCleared = false;
+
   public CustomSignPad(@NonNull Context context, Bitmap signImage) {
     super(context);
     mContext = context;
@@ -77,6 +80,23 @@ public class CustomSignPad extends Dialog {
     btnConfirm = (Button) findViewById(R.id.btnConfirm);
     btnInit    = (Button) findViewById(R.id.btnInit);
 
+    signPad.setOnSignedListener(new SignaturePad.OnSignedListener() {
+      @Override
+      public void onStartSigning() {
+        isCleared = false;
+      }
+
+      @Override
+      public void onSigned() {
+        isCleared = false;
+      }
+
+      @Override
+      public void onClear() {
+        isCleared = true;
+      }
+    });
+
     Drawable btnInitBackGround   = (Drawable) btnInit.getBackground();
     btnInitBackGround.setColorFilter(ContextCompat.getColor(mContext, R.color.alertCancelColor), PorterDuff.Mode.SRC_ATOP);
 
@@ -88,7 +108,6 @@ public class CustomSignPad extends Dialog {
     }
   }
 
-
   private void setEvent() {
     btnConfirm.setOnClickListener(onClickListener);
     btnInit.setOnClickListener(onClickListener);
@@ -98,9 +117,17 @@ public class CustomSignPad extends Dialog {
     @Override
     public void onClick(View v) {
       if (v == btnConfirm) {
-        Bitmap signImage = signPad.getTransparentSignatureBitmap();
-        customSignPadListener.onConfirmClicked(signImage);
-        dismiss();
+//        Bitmap signImage = signPad.getTransparentSignatureBitmap();
+
+        Bitmap signPadImage = signPad.getSignatureBitmap();
+
+        if (isCleared == true) {
+          Toast.makeText(mContext, mContext.getString(R.string.emptySigned) , Toast.LENGTH_SHORT).show();
+        } else {
+          customSignPadListener.onConfirmClicked(signPadImage);
+          dismiss();
+        }
+
       } else if (v == btnInit) {
         signPad.setEnabled(true);
         signPad.clear();

+ 22 - 11
app/src/main/res/layout/activity_custom_sign_dialog.xml

@@ -142,24 +142,35 @@
                         android:layout_width="1dp"
                         android:layout_height="match_parent"
                         android:background="@color/black" />
+
                     <LinearLayout
-                        android:id="@+id/startSignLayout"
+
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
                         android:orientation="horizontal"
                         android:layout_weight="0.25" >
 
-                        <com.github.gcacace.signaturepad.views.SignaturePad
-                            android:id="@+id/spSignImage"
+                        <RelativeLayout
                             android:layout_width="match_parent"
-                            android:layout_height="match_parent"
-                            android:layout_margin="16dp"
-                            app:penColor="@color/black" />
-<!--                        <ImageView-->
-<!--                            android:id="@+id/ivSignImage"-->
-<!--                            android:layout_width="match_parent"-->
-<!--                            android:layout_height="match_parent"-->
-<!--                            android:layout_margin="16dp"/>-->
+                            android:layout_height="match_parent">
+
+                            <com.github.gcacace.signaturepad.views.SignaturePad
+                                android:id="@+id/spSignImage"
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent"
+                                android:layout_margin="16dp"
+                                app:penColor="@color/black" />
+                            <!--                        <com.github.chrisbanes.photoview.PhotoView-->
+                            <!--                            android:id="@+id/ivSignImage"-->
+                            <!--                            android:layout_width="match_parent"-->
+                            <!--                            android:layout_height="match_parent"-->
+                            <!--                            android:layout_margin="16dp"/>-->
+                            <LinearLayout
+                                android:id="@+id/startSignLayout"
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent" />
+
+                        </RelativeLayout>
                     </LinearLayout>
                 </LinearLayout>
             </LinearLayout>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -126,6 +126,7 @@
     <string name="saveFailConsentMsg">%1s저장에 실패한 동의서가 있습니다. 저장하시겠습니까?\n %1s</string>
     <string name="saveFailreTryMsg">저장에 실패하였습니다.\n 다시 시도하시겠습니까? (%1s/3)</string>
     <string name="saveFail">저장에 실패하였습니다.</string>
+    <string name="emptySigned">서명이 없습니다. 다시 서명해주세요.</string>
 
     <string name="certPassConsentConfirmNotSave">[확인저장] 할 수 없습니다. [인증저장] 으로 진행하시기 바랍니다.</string>
     <string name="baseDataError">기본 정보 설정에 실패하였습니다. \n다시 시도해주세요.</string>