radian 2 жил өмнө
parent
commit
7293712c19

+ 147 - 42
app/src/main/assets/css/study.css

@@ -1,11 +1,24 @@
+@font-face {
+    font-family: 'Fallinlove'; src: url('file:///android_asset/font/Fallinlove.ttf') format('truetype');
+}
+@font-face {
+    font-family: 'ThennaFRit'; src: url('file:///android_asset/font/ThennaFRit.otf');
+}
+@font-face {
+    font-family: 'ChosunKm'; src: url('file:///android_asset/font/ChosunKm.TTF');
+}
 /*  Object Start */
 body {
   margin:0 auto;
   padding:0;
   align:center;
-  background-image: linear-gradient(-225deg, #3D4E81 0%, #5753C9 48%, #6E7FF3 100%);
+  /*background-image: linear-gradient(-225deg, #3D4E81 0%, #5753C9 48%, #6E7FF3 100%);
+  height : 100vh;
+  width : 100vw;*/
   height : 100vh;
   width : 100vw;
+  background-image: url('file:///android_asset/img/enBack.png');
+  background-size: 100vw 100vh ;
 }
 body::-webkit-scrollbar {
     display: none; /* Chrome, Safari, Opera*/
@@ -27,20 +40,38 @@ section {
   margin-top:1vh;
 }
 .today-index-title-1 {
-  background:#ffcc33;
+    font-family: 'ChosunKm';
+    color:#fff;
+    padding:1vh;
+    background: linear-gradient(223deg, rgba(3,18,51,0.5) 0%, rgba(72,83,128,1) 100%);
+    opacity: 0.8;
 }
 .today-index-title-2 {
-  background:#ff33ff;
+      font-family: 'ChosunKm';
+      color:rgba(49,64,103,1);
+      text-shadow:-3px -3px rgba(3,18,51,1), 1px 1px rgba(255,255,255,0.5);
+      padding:1vh;
+      border-radius:10px;
+      background:rgba(72,83,128,1);
+}
+.today-index-title-3 {
+      font-family: 'ChosunKm';
+      color:#fff;
+      padding:1vh;
+      background: linear-gradient(43deg, rgba(3,18,51,0.5) 0%, rgba(72,83,128,1) 100%);
+      opacity: 0.7;
 }
 .headTitleBar{
   background-image: linear-gradient(225deg, #3D4E81 0%, #5753C9 48%, #6E7FF3 100%);
   display:talble;
   width:100vw;
+  opacity:0.9;
 }
 .headTitle{
   color:#fff;
   font-weight:900;
   font-size: 3vh;
+  font-family:ChosunKm;
   height:7vh;
   display:table-cell;
   vertical-align:middle;
@@ -59,39 +90,50 @@ section {
   padding-right: 1vh;
 }
 .menuIcon {
-  background:#fff;
   font-size: 5rem;
-  border-bottom: 0.5vh solid #5753C9;
+  border-bottom: 0.5vh solid #fff;
   margin: 10px;
   text-align: center;
-  color: #5753C9;
+  color: #fff;
+  opacity:0.7;
 }
 .menuTitle {
-  font-size: 20px;
-  font-weight:900;
-  color: #5753C9  ;
+  font-size: 1.5rem;
+  font-weight:400;
+  font-family:ChosunKm;
+  color: #fff  ;
   text-align: center;
   height:25px;
+  opacity:0.7;
 }
 .menuIconBox {
 	border-radius:3vh;
-	background:#fff;
 	height:20vh;
 	width:40vw;
 	display:inline-block;
 	margin:2vh;
 	padding:20px;
 }
+.menuIconBoxBack {
+    position:relative;
+    top:-20vh;
+    left:-5vw;
+    border-radius:3vh;
+	height:25vh;
+	width:50vw;
+	background:#fff;
+	opacity:0.1;
+}
 .wordTitleZone{
     position:absolute;
-    top:19.5vh;
+    top:20vh;
     left:0;
     height:10vh;
     width:100%;
 }
 .enWordZone{
     position:absolute;
-    top:36vh;
+    top:36.5vh;
     left:0;
     height:10vh;
     width:100%;
@@ -99,10 +141,14 @@ section {
 .wordTitle {
   font-size:3.8rem;
   padding-left:7vw;
+  font-family:Fallinlove;
+  color:#d9d9ff;
 }
 .meaning {
-  font-size:30px;
-  color:#565656;
+  font-size:2rem ;
+  color:#fff;
+  font-family:ChosunKm;
+  margin-top:1vh;
 }
 .buttonZone {
   margin:3vh;
@@ -135,22 +181,30 @@ section {
 }
 .exam {
   font-size:30px;
-  color:#fff;
+  font-family: 'ThennaFRit';
+  color:rgba(255,255,255,0.8);
   margin:15px;
+
 }
 .answer{
-  font-size:30px;
+  font-size:3.5vh;
+  font-family:ChosunKm;
   color:#fff;
   padding:0 1vh 0 2vh;
+  opacity: 0.8;
 }
 .lightpen   {
-  width: 88vw;
-  background: yellow;
-  transform: skewX(-15deg);
-  height: 10vh;
+  width: 98vw;
+  height:11vh;
+  background: #d9d9ff;
+  /*
+  형광펜 효과
+  transform: skewX(-15deg);  height: 10vh;
+  */
+  border-radius:5vh;
   position: absolute;
-  top: -5px;
-  left: 20px;
+  top: -2.4vh;
+  left: 1vw;
   opacity: 0.3;
  }
 
@@ -164,15 +218,35 @@ section {
    width:94vw;
  }
  .configContent{
-     background: #fff;
-     border-radius: 5px;
      height: 5vh;
      padding: 4vh 0 0 0vw;
      width: 87vw;
      display:flex;
      margin: 0 auto;
  }
- .inputBox{
+ .configContentBack{
+     position:relative;
+     top:-9vh;
+     left:1vw;
+     background:#fff;
+     opacity:0.1;
+     width: 96vw;
+     height: 10vh;
+     border-radius:5vh;
+     z-index:-99;
+ }
+ .configContentGbnBack{
+     position:relative;
+     top:-9vh;
+     left:1vw;
+     background:#fff;
+     opacity:0.1;
+     width: 96vw;
+     height: 7vh;
+     border-radius:3.5vh;
+     z-index:-99;
+ }
+  .inputBox{
   height:5vh;
   width: 50vw;
   color:#454545;
@@ -190,43 +264,72 @@ section {
 #study {
     margin:0 auto;
     width: 90vw;
-    height: 50vh;
+    height: 45vh;
     margin-top: 10vh;
-    background: #fff;
-    border-radius: 15px;
     padding: 10px;
+    /*background:#969696;
+    background-image: url('file:///android_asset/img/enwordback.png');
+    background-size: 110vw 70vh ;
+    background-repeat:no-repeat;
+    background-position:55% 20%;
+    opacity: 0.8;
+    */
+    color:#fff;
+}
+.study-back{
+    position:relative;
+    top:-23vh;
+    left:-2vw;
+    width:105%;
+    height:60%;
+    border-radius: 15px;
+    background:#fff;
+    opacity: 0.1;
 }
 
 #testWord{
-  font-size:30px;
+  font-size:4vh;
   color:#ffffff;
-  background:#d7006b;
+  font-family:ThennaFRit;
   display:inline-block;
   width:80vw;
   height:40px;
   font-weight:900;
-  padding:10px;
-  margin:20px;
+  padding:2vh;
+  margin:2vh;
+  opacity: 0.8;
+}
+.testWordBack{
+  position:relative;
+  top:-11vh;
+  left:8vw;
+  width:80vw;
+  height:10vh;
+  background:#d7006b;
+  display:inline-block;
+  z-index:-99;
+  opacity: 0.3;
 }
 
 /* pushBtn Start*/
 /* 6 */
 .custom-btn {
   width: 85vw;
-  color: #fff;
+  color: rgba(255,255,255,0.8);
   border-radius: 5px;
   padding: 10px 25px;
   font-family: 'Lato', sans-serif;
   font-weight: 500;
   font-size:1.2em;
+  font-family: 'ChosunKm';
   background: transparent;
   cursor: pointer;
   transition: all 0.3s ease;
   position: relative;
   display: inline-block;
    box-shadow:inset 2px 2px 2px 0px rgba(255,255,255,.5),
-   7px 7px 20px 0px rgba(0,0,0,.1),
-   4px 4px 5px 0px rgba(0,0,0,.1);
+   7px 7px 20px 0px rgba(115,115,115,.1),
+   4px 4px 5px 0px rgba(115,115,115,.1);
   outline: none;
 }
 
@@ -342,8 +445,9 @@ background: linear-gradient(0deg, rgba(0,3,255,1) 0%, rgba(2,126,251,1) 100%);
 
 /* 3 */
 .btn-3 {
+  font-family: 'ChosunKm';
   background: rgb(0,172,238);
-background: linear-gradient(0deg, rgba(0,172,238,1) 0%, rgba(2,126,251,1) 100%);
+  background: linear-gradient(0deg, rgba(3,18,51,0.5) 0%, rgba(54,71,114,0.5) 100%);
   width: 130px;
   height: 40px;
   line-height: 42px;
@@ -356,6 +460,7 @@ background: linear-gradient(0deg, rgba(0,172,238,1) 0%, rgba(2,126,251,1) 100%);
   display: block;
   width: 100%;
   height: 100%;
+  font-family: 'ChosunKm';
 }
 .btn-3:before,
 .btn-3:after {
@@ -363,7 +468,7 @@ background: linear-gradient(0deg, rgba(0,172,238,1) 0%, rgba(2,126,251,1) 100%);
   content: "";
   right: 0;
   top: 0;
-   background: rgba(2,126,251,1);
+   background: rgba(54,71,114,1);
   transition: all 0.3s ease;
 }
 .btn-3:before {
@@ -966,7 +1071,7 @@ background-image: linear-gradient(315deg, #4dccc6 0%, #96e4df 74%);
 /* 16 */
 .btn-16 {
   border: none;
-  color: #000;
+  color: #fff;
 }
 .btn-16:after {
   position: absolute;
@@ -1002,15 +1107,15 @@ background-image: linear-gradient(315deg, #4dccc6 0%, #96e4df 74%);
 }
 ::-webkit-scrollbar-track {
     -webkit-border-radius: 10px;
-    background: #cacaff;
+    background: rgba(54,56,77,1);
     border-radius: 10px;
-    border:1px solid blue;
+    border:1px solid rgba(3,18,51,1);
 }
 ::-webkit-scrollbar-thumb {
     -webkit-border-radius: 10px;
     border-radius: 10px;
-    background: #FFF;
-    border:1px solid blue;
+    background: rgba(131,139,158,1);
+    border:1px solid rgba(3,18,51,1);
 }
 ::-webkit-scrollbar-thumb:window-inactive {
     background: #fff;

+ 9 - 25
app/src/main/assets/html/index.html

@@ -7,30 +7,11 @@
   <script src="../js/common.js"></script>
   <script src="../js/jquery.alert.min.js"></script>
   <style type="text/css">
-	 span {font-size:10vh;font-weight:900;}
-	 a {color:#4a4a4a;text-decoration:none;}
-	 body{
-	     background:#9900ff;
-	 }
+	 span {font-size:10vh;font-weight:400;}
 	 #back{
 	     width:100vw;
 	     height:100vh;
-	 }
-    #back::before{
-        content: "";
-        background-image:url('../img/todayen.png');
-        background-size: cover;
-        opacity: 0.3;
-        position: absolute;
-        top: -100px;
-        left: -45px;
-        right: 0px;
-        bottom: 0px;
-        z-index:-99;
-    }
-	 .todyas {background:#ffcc33;}
-	 #main{
-	     opacity: 1;
+	     overflow:hidden;
 	 }
   </style>
   <script type="text/javascript">
@@ -58,11 +39,14 @@
  <body onload='init()' onclick="goToMenuPage()">
  <div id="back">
   <!-- 클릭시 Main Content 로 이동-->
-   <div id='mainIndex'>
-    <div><span class="today-index-title-1" >오</span><span>늘</span></div>
+   <div id='mainIndex' >
+    <div><span class="today-index-title-1" >오늘</span></div>
     <div style="text-align:center;margin:3vh;"><span class="today-index-title-2">영단어</span></div>
-    <div style="text-align:right;"><span>공부</span><span  class="today-index-title-1">할까?</span></div>
+    <div style="text-align:right;"><span  class="today-index-title-3">공부할까?</span></div>
+  </div>
+  <div class="iya" style="position:absolute;top:85vh;left:40vw;">
+    <img src="../img/iya.png" style="width:20vw;height;10vh;opacity: 0.7;"/>
   </div>
  </div>
-  </body>
+ </body>
 </html>

+ 8 - 6
app/src/main/assets/html/menu.html

@@ -18,14 +18,17 @@
    <div class="menuIconBox" id='configMenu'>
       <div class='menuIcon'><i class="axi axi-cog"></i></div>
       <div class='menuTitle'>설정</div>
+      <div class='menuIconBoxBack'></div>
    </div>
    <div class="menuIconBox"  id="studyMenu">
       <div class='menuIcon'><i class="axi axi-edit2"></i></div>
       <div class='menuTitle'>학습</div>
+      <div class='menuIconBoxBack'></div>
    </div>
    <div class="menuIconBox" id="historyMenu">
       <div class='menuIcon'><i class="axi axi-clipboard"></i></div>
       <div class='menuTitle'>학습이력</div>
+       <div class='menuIconBoxBack'></div>
   </div>
  </div>
  </body>
@@ -33,11 +36,10 @@
 <script>
    $(function(){
     $(".menuIconBox").on("click", function(e){
-       $(this).css("background","#000");
-       $(this).children("*").css("background","#000");
+       //$(this).css("background","#000");
+       //$(this).children("*").css("background","#000");
        $(this).children("*").css("color","#fff");
 
-
        $(this).children(".menuIcon").css("text-shadow","0 0 5px #fff, 0 0 10px #fff, 0 0 20px #ff0080, 0 0 30px #ff0080, 0 0 40px #ff0080, 0 0 55px #ff0080, 0 0 75px #ff0080");
 
        if($(this).attr("id")=="configMenu"){
@@ -54,9 +56,9 @@
 
   function restore(obj){
        $(obj).children(".menuIcon").css("text-shadow","");
-       $(obj).css("background","#fff");
-       $(obj).children("*").css("background","#fff");
-       $(obj).children("*").css("color","#5753C9");
+       $(obj).css("background","");
+       $(obj).children("*").css("background","");
+       $(obj).children("*").css("color","#fff");
   }
 
   function appClose(){

+ 7 - 7
app/src/main/assets/html/result.html

@@ -29,19 +29,19 @@
     <div id="score" style="margin:0 auto;width:80vw;border-radius:10px;background:#000;display:block;padding:2vh;">
     </div>
   </div>
-  <div id="scoreDetail" style="width:80vw;color:#fff;height:5vh;margin:0 auto;display:block;text-align:center;padding:2px;">
+  <div id="scoreDetail" style="width:80vw;color:rgba(255,255,255,0.8);height:5vh;margin:0 auto;display:block;text-align:center;padding:2px;font-family: 'ChosunKm';">
   </div>
   <div style="margin:0 auto;height:55vh;width:95vw;overflow-x:hidden;overflow-y:auto;border:1px solid #fff;border-radius:5px;">
     <ol id='result'>
     </ol>
     <div id="perpect" style="display:none;"></div>
     <div id='perpectBtn' style="display:none;">
-         <div style="margin-top:2vh;text-align:center;" id='studyBtn' ><button class='custom-btn btn-4'  onclick="goToStudyPage()"><sapn><i class="axi axi-pencil"></i> 재학습</sapn></button></div>
-         <div style="margin-top:2vh;text-align:center;" id='testBtn'  ><button class='custom-btn btn-4'  onclick="goToTestPage()"><sapn><i class="axi axi-bmg-checklist"></i> 재테스트</sapn></button></div>
-         <div style="margin-top:2vh;text-align:center;" id='menuBtn'  ><button class='custom-btn btn-4'  onclick="goToMenuPage()"><sapn><i class="axi axi-menu2"></i> 메뉴</sapn></button></div>
+         <div style="margin-top:2vh;text-align:center;" id='studyBtn' ><button class='custom-btn btn-3'  onclick="goToStudyPage()"><sapn><i class="axi axi-pencil"></i> 재학습</sapn></button></div>
+         <div style="margin-top:2vh;text-align:center;" id='testBtn'  ><button class='custom-btn btn-3'  onclick="goToTestPage()"><sapn><i class="axi axi-bmg-checklist"></i> 재테스트</sapn></button></div>
+         <div style="margin-top:2vh;text-align:center;" id='menuBtn'  ><button class='custom-btn btn-3'  onclick="goToMenuPage()"><sapn><i class="axi axi-menu2"></i> 메뉴</sapn></button></div>
     </div>
   </div>
-  <div style="margin-top:2vh;text-align:center;display:none;" id='reBtn' ><button class='custom-btn btn-4'  onclick="goToRestudyPage()"><sapn><i class="axi axi-repeat3"></i>오답학습</sapn></button></div>
+  <div style="margin-top:2vh;text-align:center;display:none;" id='reBtn' ><button class='custom-btn btn-3'  onclick="goToRestudyPage()"><sapn><i class="axi axi-repeat3"></i>오답학습</sapn></button></div>
  </section>
  <inpu type="text" id="selDate" />
  <canvas id="canvas"></canvas>
@@ -135,8 +135,8 @@
       $("#perpect").css({"margin":"0 auto"});
       $("#perpect").append("<div style='margin:0 auto;font-size:10vh;font-wight:900;color:#fff;width:50vw;text-align:center;height:10vh;'>&nbsp;</div>");
       $("#perpect").append("<div style='margin:0 auto;font-size:10vh;font-wight:900;color:#fff;width:50vw;text-align:center;'><i class='axi axi-birthday-cake'></i></div>");
-      $("#perpect").append("<div style='margin:0 auto;font-size:3vh;font-wight:900;color:#fff;width:80vw;text-align:center;'>수고하셨습니다.!!!</div>");
-      $("#perpect").append("<div style='margin:0 auto;font-size:3vh;font-wight:900;color:#fff;width:80vw;text-align:center;'>만점을 획득 하셨습니다.!!!</div>");
+      $("#perpect").append("<div style='margin:0 auto;font-size:3vh;font-wight:900;color:#fff;width:80vw;text-align:center;font-family:ChosunKm;'>수고하셨습니다.!!!</div>");
+      $("#perpect").append("<div style='margin:0 auto;font-size:3vh;font-wight:900;color:#fff;width:80vw;text-align:center;font-family:ChosunKm;'>만점을 획득 하셨습니다.!!!</div>");
       //만점이면 녹색 네온
       $("#score").css({"text-shadow":"0 0 5px #fff, 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #0fa, 0 0 40px #0fa, 0 0 55px #0fa, 0 0 75px #0fa, 0 0 90px #0fa"});
 

+ 37 - 23
app/src/main/assets/html/study.html

@@ -16,6 +16,7 @@
      <div class="headIcon"><i class="axi axi-menu2"></i></div>
  </section>
  <section>
+   <!-- id ="start" 시작 -->
    <div id="study">
      <!-- 단어 Titile 시작 -->
        <div style="display:table;width:100%;">
@@ -34,7 +35,9 @@
            </div>
        </div>
      <!-- 단어 Titile 끝 -->
+     <!-- 여백-->
      <div style="height:5vh;"></div>
+     <!-- 여백-->
      <!-- 단어 뷰 시작 -->
      <div style="display:table;width:100%;">
       <div style="display:table-row;height:4vh;">
@@ -57,21 +60,11 @@
      </div>
     </div>
     <!-- 단어 뜻 끝 -->
-       <!-- 빈 영어 노트 시작-->
-       <div style="display:none;width:100%;">
-           <div style="display:table-row;height:4vh;">
-               <div style="display:table-cell;border-top:2px solid #969696;"></div>
-           </div>
-           <div  style="display:table-row;height:4vh;">
-               <div style="display:table-cell;border-top:2px dotted #969696;"></div>
-           </div>
-           <div  style="display:table-row;height:4vh;">
-               <div style="display:table-cell;border-top:2px dotted #ff0000;border-bottom:2px solid #969696;"></div>
-           </div>
-       </div>
-       <!--  빈 영어 노트 시작- -->
+       <!-- back 흰색 투명 시작-->
+       <div class='study-back'></div>
+       <!-- back 흰색 투명 끝-->
    </div>
-
+   <!-- id ="start" 끝 -->
    <!-- 하단버튼 시작 -->
    <center>
    <div class='buttonZone'>
@@ -93,6 +86,9 @@
    <input type="hidden" id="reviewGbn" />
    <input type="hidden" id="twinkleCnt" />
    <input type="hidden" id="speedCnt" />
+   <input type="hidden" id="reviewClickGbn" />
+   <input type="hidden" id="reviewIsGbn" /> <!-- 복습할 이력이 있는지 여부 -->
+   <input type="hidden" id="reviewActGbn" /> <!-- 복습할 했는지 여부 -->
  </body>
 </html>
 <script>
@@ -110,6 +106,7 @@
     $("#reNewBtn").hide();
     $("#selDate").val("");
     window.connector.getConfigJson();
+    window.connector.getStudyDayMaster(Util.getToday());
     window.connector.getActName();
   });
   function setConfigJson(list){
@@ -131,32 +128,32 @@
   function setSelectDate(selectDate){
      $("#selDate").val(selectDate);
      let actName = this.actNm;
-     console.log("=-=-=-=-=-=-=-=-=-"+actName+"=-=-=-=-=-=-=-=-=-=-=-");
      if(selectDate!=null && selectDate!="" && selectDate!=undefined){
          if(actName.indexOf("Study") > 0){
-             console.log("StudyActStudyActStudyActStudyActStudyAct");
              window.connector.getStudyDayContent(selectDate);
          }else{
-             console.log("RestudyActRestudyActRestudyActRestudyActRestudyAct");
              window.connector.getReWordContent(selectDate);
          }
 
      }else{
          if(actName.indexOf("Study") > 0){
              console.log("StudyActStudyActStudyActStudyActStudyAct");
-             if($("#reviewGbn").val() =="Y" ){
-                  window.connector.updateReviewActGbn( $("#selDate").val(), 'Y');
-                 //console.log("복습.............복습.............복습.............복습.............복습.............");
+             console.log(" #reviewGbn >>>> " + $("#reviewGbn").val());
+             console.log(" #reviewIsGbn >>>> " + $("#reviewIsGbn").val());
+             console.log(" #reviewActGbn >>>> " + $("#reviewActGbn").val());
+
+             if($("#reviewGbn").val() =="Y" && $("#reviewIsGbn").val() =="Y" && $("#reviewActGbn").val() !="Y" ){
                  // 복습일 경우.. 복습할지 문의
                  $.confirm('이전 학습을 복습하시겠습니까?',{
                     title:'안내',
-                    callEvent:function(){window.connector.getStudyDayContent($("#selDate").val(selectDate)); },
-                    cancelEvent:function(){window.connector.getWordContent("today");},
+                    callEvent:function(){window.connector.getWordContent("reStudy"); $("#reviewClickGbn").val("Y"); window.connector.updateReviewActGbn( Util.getToday() , 'Y');},
+                    cancelEvent:function(){window.connector.getWordContent("today"); window.connector.updateReviewActGbn( Util.getToday() , 'N');},
                     confirmButton:'복습',
                     cancelButton:'학습'
                 });
              }else{
                  window.connector.getWordContent("today");
+                 window.connector.updateReviewActGbn( Util.getToday() , $("#reviewActGbn").val());
              }
          }else{
              console.log("RestudyActRestudyActRestudyActRestudyActRestudyAct");
@@ -169,6 +166,9 @@
 
   function goToTestPage(){
       $("#testBtn").css("text-shadow","0 0 5px #fff, 0 0 10px #fff, 0 0 20px #ff0080, 0 0 30px #ff0080, 0 0 40px #ff0080, 0 0 55px #ff0080, 0 0 75px #ff0080");
+
+      console.log("################## $(#selDate).val(); ###############"+$("#selDate").val());
+
       setTimeout(()=>{
          var selDate = $("#selDate").val();
          if(selDate!=null && selDate!="" && selDate!=undefined){
@@ -191,7 +191,6 @@
            if(this.blinkIdx == 1000){
               return;
            }
-
            if(this.index > studyList.length-1){
               $("#testBtn").show();
               $("#reNewBtn").show();
@@ -206,6 +205,21 @@
                      if(blinkIdx<1000){
                         setTimeout("start()", this.speedCnt);
                      }
+
+                     if($("#reviewClickGbn").val() == 'Y' && this.index == 0 && $("#reviewGbn").val() =="N"){
+                          console.log("##############################################################################");
+                          let selectDate = wordList[this.index].studyDate;
+                          if(selectDate!=null && selectDate!="" && selectDate!=undefined){
+                              $("#selDate").val(selectDate);
+                              if($("#reviewGbn").val() =="Y" ){
+                                 window.connector.updateReviewActGbn( selectDate , 'Y');
+                              }
+                          }
+                     }
+                     if(this.index == 0){
+                       $("#selDate").val(wordList[this.index].studyDate);
+                     }
+
                }else{
                      $("#wordArea").text(" ");
 

+ 13 - 6
app/src/main/assets/html/test.html

@@ -14,8 +14,8 @@
   <div class="headIcon"><i class="axi axi-menu2"></i></div>
  </section>
  <section style="margin-top:3vh;">
-  <div class='answer'><span id="testNo"></span>아래의 단어의 뜻으로 올바른것을 선택해 주세요.</div>
-  <div><center><div id='testWord'></div></center></div>
+  <div class='answer'><span id="testNo"></span>아래의 단어의 뜻으로 해당되는 것을 선택해 주세요.</div>
+  <div style='height:10vh;margin:3vh 0 7vh 0;'><center><div id='testWord'></div></center><div class='testWordBack'></div></div>
   <div>
     <div id='example'>
     </div>
@@ -49,7 +49,7 @@
      $("#selDate").val(selectDate);
      //console.log("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"+selectDate);
      if(selectDate!=null && selectDate!="" && selectDate!=undefined){
-         //console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>> select Date >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
+         console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>> select Date >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
          window.connector.getStudyDayContent(selectDate);
      }else{
          //console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>> Today >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
@@ -98,7 +98,7 @@
   function setTestExam(list){
    //console.log(list);
     for(var i=0; i< list.length ; i++){
-      $("#example").append("<div style='margin:0 auto;width:85vw;'><button class='custom-btn btn-1' onclick='answerCheck("+list[i].id+")' ><span>"+list[i].meaning+"</span></button></div>");
+      $("#example").append("<div style='margin:1vh auto;width:85vw;'><button class='custom-btn btn-16' onclick='answerCheck("+list[i].id+")' ><span id='A"+list[i].id+"'>"+list[i].meaning+"</span></button></div>");
       $("#example").append("<div style='height:1vh'>&nbsp;</div>");
     }
   }
@@ -106,14 +106,21 @@
     if(selectId == this.currId){
       //console.log("=-=-=-=-=-= ok =-=-=-=-=-=- selectId >>"+selectId +" ,  this.currId >> "+ this.currId);
       window.connector.updateIncorrect("Y", this.currId);
+      $("#A"+this.currId).css("color" , "#cacaff");
+      $("#A"+this.currId).parent().css("text-shadow" ,  "/* White glow */ 0 0 7px #fff, 0 0 10px #fff, 0 0 21px #fff, /* Green glow */ 0 0 42px #0fa");
       answerTrue();
     }else{
      // console.log("=-=-=-=-=-= fail =-=-=-=-=-=- selectId >> "+selectId +" ,  this.currId >> "+ this.currId);
+      $("#A"+selectId).css("text-decoration" , "line-through");
+      $("#A"+selectId).css("color" , "#cc0066");
+      $("#A"+selectId).parent().css("text-shadow" ,  "/* White glow */ 0 0 7px #fff, 0 0 10px #fff, 0 0 21px #fff, /* Green glow */ 0 0 42px #ff00ff");
+
+      $("#A"+this.currId).css("color" , "#cacaff");
+      $("#A"+this.currId).parent().css("text-shadow" ,  "/* White glow */ 0 0 7px #fff, 0 0 10px #fff, 0 0 21px #fff, /* Green glow */ 0 0 42px #0fa");
       window.connector.updateIncorrect("N", this.currId);
       answerFalse();
-
     }
-    setTimeout("startExam()" ,"700");
+    setTimeout("startExam()" ,"1000");
 
   }
 

BIN
app/src/main/assets/todayen.db


+ 13 - 4
app/src/main/java/kr/co/iyapp/todayen/activity/StudyResultActivity.java

@@ -1,5 +1,7 @@
 package kr.co.iyapp.todayen.activity;
 
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+
 import androidx.appcompat.app.AppCompatActivity;
 
 import android.app.Activity;
@@ -45,10 +47,17 @@ public class StudyResultActivity extends AppCompatActivity {
 
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
-        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
-            webView.goBack();
-            Activity act = (Activity) this.context;
-            act.finish();
+        Log.d("XXX", "1111XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
+        Log.d("XXX"," keyCode > "+keyCode +"   "+KeyEvent.KEYCODE_BACK);
+        Log.d("XXX","###########################################################3");
+
+        if ( (keyCode == KeyEvent.KEYCODE_BACK) ) {
+
+            Log.d("XXX", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
+            //webView.goBack();
+            finishAffinity();
+            Intent intent = new Intent(this.context, MenuActivity.class);
+            context.startActivity(intent.addFlags(FLAG_ACTIVITY_NEW_TASK));
             return true;
         }
         return super.onKeyDown(keyCode, event);

+ 6 - 1
app/src/main/java/kr/co/iyapp/todayen/activity/TestActivity.java

@@ -50,12 +50,17 @@ public class TestActivity extends AppCompatActivity {
         webView = (WebView) findViewById(R.id.webView);
         webView.getSettings().setJavaScriptEnabled(true); //자바스크립트 허용
 
-        webView.loadUrl("file:///android_asset/html/test.html");
         webView.setWebChromeClient(new WebChromeClient());  // 새창 띄우지 않기
         webView.setWebViewClient(new TestActivity.WevViewClientClass());
 
         Intent intent = getIntent();
         String selectDate = intent.getStringExtra("selectDate") == null?"": intent.getStringExtra("selectDate");
+        String reverseGbn = intent.getStringExtra("reverseGbn") == null?"N": intent.getStringExtra("reverseGbn");
+        String url ="file:///android_asset/html/test.html";
+        if("Y".equals(reverseGbn)){
+            url ="file:///android_asset/html/reverseTest.html";
+        }
+        webView.loadUrl(url);
 
         webView.addJavascriptInterface(new HtmlBridge(webView, TestActivity.this, tts , selectDate), "connector");
 

+ 111 - 21
app/src/main/java/kr/co/iyapp/todayen/dao/TodayEnglishDAO.java

@@ -183,10 +183,11 @@ public class TodayEnglishDAO {
                     sql = "select * from  study_content where study_date is null "+incorrectSql+" order by random() limit (select value from study_config where keys ='dayCnt')"+incorrectSql;
                 }
             }else if(todayGbn.equals("reStudy")){
-                // 구분자가 오늘이 아니면 즉 복습이면 오늘이 아닌 날중에 가장 마지막날(max(study_date))
-                sql = "select * from  study_content where study_date = (select max(study_date) from  study_content where study_date != date('now', 'localtime') )"+incorrectSql;
+                // 구분자가 오늘이 아니면 즉 복습이면 오늘이 아닌 날중에 가장 마지막날(max(study_date)) 틀린거 상관 없이 학습
+                // incorrectSql 없어야 함
+                sql = "select * from  study_content where study_date = (select max(study_date) from  study_content where study_date != date('now', 'localtime') ) order by random()" ;
             }else{
-                sql = "select * from  study_content where study_date = date('"+todayGbn+"')  "+incorrectSql;
+                sql = "select * from  study_content where study_date = date('"+todayGbn+"')  "+incorrectSql+" order by random()";
             }
 
             Log.d(TAG, "sql >>>> \n□□□□ " + sql);
@@ -203,10 +204,11 @@ public class TodayEnglishDAO {
                         json.put("id"            , mCur.getString(0));
                         json.put("word"          , mCur.getString(1));
                         json.put("meaning"       , mCur.getString(2));
-                        json.put("studyDate"     , mCur.getString(3));
-                        json.put("level"         , mCur.getString(4));
-                        json.put("useYn"         , mCur.getString(5));
-                        json.put("incorrect"     , mCur.getString(6));
+                        json.put("wordCls"       , mCur.getString(3));
+                        json.put("studyDate"     , mCur.getString(4));
+                        json.put("level"         , mCur.getString(5));
+                        json.put("useYn"         , mCur.getString(6));
+                        json.put("incorrect"     , mCur.getString(7));
 
                     } catch (Exception e1) {
                         e1.getMessage();
@@ -244,7 +246,7 @@ public class TodayEnglishDAO {
             String sql = "";
 
             // 구분자가 오늘이 아니면 즉 복습이면 오늘이 아닌 날중에 가장 마지막날(max(study_date))
-            sql = "select * from  study_content where study_date = '"+date+"' ";
+            sql = "select * from  study_content where study_date = '"+date+"' order by random() ";
 
             Log.d(TAG, "sql >>>> \n□□□□ " + sql);
 
@@ -260,10 +262,11 @@ public class TodayEnglishDAO {
                         json.put("id"            , mCur.getString(0));
                         json.put("word"          , mCur.getString(1));
                         json.put("meaning"       , mCur.getString(2));
-                        json.put("studyDate"     , mCur.getString(3));
-                        json.put("level"         , mCur.getString(4));
-                        json.put("useYn"         , mCur.getString(5));
-                        json.put("incorrect"     , mCur.getString(6));
+                        json.put("wordCls"       , mCur.getString(3));
+                        json.put("studyDate"     , mCur.getString(4));
+                        json.put("level"         , mCur.getString(5));
+                        json.put("useYn"         , mCur.getString(6));
+                        json.put("incorrect"     , mCur.getString(7));
 
                     } catch (Exception e1) {
                         e1.getMessage();
@@ -391,10 +394,11 @@ public class TodayEnglishDAO {
                         json.put("id"            , mCur.getString(0));
                         json.put("word"          , mCur.getString(1));
                         json.put("meaning"       , mCur.getString(2));
-                        json.put("studyDate"     , mCur.getString(3));
-                        json.put("level"         , mCur.getString(4));
-                        json.put("useYn"         , mCur.getString(5));
-                        json.put("incorrect"     , mCur.getString(6));
+                        json.put("wordCls"       , mCur.getString(3));
+                        json.put("studyDate"     , mCur.getString(4));
+                        json.put("level"         , mCur.getString(5));
+                        json.put("useYn"         , mCur.getString(6));
+                        json.put("incorrect"     , mCur.getString(7));
 
                     } catch (Exception e1) {
                         e1.getMessage();
@@ -481,10 +485,11 @@ public class TodayEnglishDAO {
                         json.put("id"            , mCur.getString(0));
                         json.put("word"          , mCur.getString(1));
                         json.put("meaning"       , mCur.getString(2));
-                        json.put("studyDate"     , mCur.getString(3));
-                        json.put("level"         , mCur.getString(4));
-                        json.put("useYn"         , mCur.getString(5));
-                        json.put("incorrect"     , mCur.getString(6));
+                        json.put("wordCls"       , mCur.getString(3));
+                        json.put("studyDate"     , mCur.getString(4));
+                        json.put("level"         , mCur.getString(5));
+                        json.put("useYn"         , mCur.getString(6));
+                        json.put("incorrect"     , mCur.getString(7));
 
                     } catch (Exception e1) {
                         e1.getMessage();
@@ -532,7 +537,7 @@ public class TodayEnglishDAO {
                         json.put("id"            , mCur.getString(0));
                         json.put("word"          , mCur.getString(1));
                         json.put("meaning"       , mCur.getString(2));
-                        json.put("word_cls"      , mCur.getString(3));
+                        json.put("wordCls"       , mCur.getString(3));
                         json.put("studyDate"     , mCur.getString(4));
                         json.put("level"         , mCur.getString(5));
                         json.put("useYn"         , mCur.getString(6));
@@ -632,4 +637,89 @@ public class TodayEnglishDAO {
             }
         }
     }
+
+    public void deleteRemoveStudyDayMaster() {
+        mDb = dbutl.connetion();
+        try {
+
+            String deleteSql  = "delete from study_day_master  where  study_date= date('now', 'localtime')";
+            Log.d(TAG, "deleteSql >>>> \n□□□□ " + deleteSql);
+            mDb.execSQL(deleteSql);
+
+        } catch (SQLException mSQLException) {
+            Log.e(TAG, "getTestData >>" + mSQLException.toString());
+        } finally {
+            if (mDb != null) {
+                mDb.close();
+            }
+        }
+    }
+
+
+    public void insertDayPoint(String day, String point) {
+        mDb = dbutl.connetion();
+        try {
+            String sql ="insert  into study_day_point (study_date, test_seq, test_point) values (date('"+day+"'), (select count(study_date)+1 as cnt from study_day_point sdp where study_date = date('"+day+"')) , "+point+") ";
+            mDb.execSQL(sql);
+            Log.d("sql >>>> \n", sql);
+        } catch (SQLException mSQLException) {
+            Log.e(TAG, "mergeDayMaster >>" + mSQLException.toString());
+            throw mSQLException;
+        } finally {
+            if (mDb != null) {
+                mDb.close();
+            }
+        }
+    }
+
+    public JSONObject getStudyDayMaster(String date) {
+        Cursor mCur = null;
+
+        JSONObject obj = new JSONObject();
+        try {
+            // DB connetion
+            mDb = dbutl.connetion();
+            String sql = "\n select " ;
+            sql +="\n	   study_date";
+            sql +="\n	,  ifnull(review_act_gbn, 'N') as review_act_gbn  ";
+            sql +="\n	,  case";
+            sql +="\n		   when cnt > 0 then 'Y' else 'N'";
+            sql +="\n	  end as review_is_gbn";
+            sql +="\nfrom";
+            sql +="\n	(";
+            sql +="\n	select";
+            sql +="\n		date('"+date+"') as study_date,";
+            sql +="\n		(select  review_act_gbn from study_day_master where study_date = date('"+date+"')) as  review_act_gbn,";
+            sql +="\n		(select	count(*) from study_day_master	where study_date != date('"+date+"') ) as cnt";
+            sql +="\n    )";
+
+            Log.d(TAG, "sql >>>> \n□□□□ " + sql);
+
+            mCur = mDb.rawQuery( sql , null);
+
+            if (mCur != null) {
+                // 칼럼의 마지막까지
+                try{
+                    while (mCur.moveToNext()) {
+                        obj.put("studyDate"    , mCur.getString(0));
+                        obj.put("reviewActGbn" , mCur.getString(1));
+                        obj.put("reviewIsGbn"  , mCur.getString(2));
+                    }
+                }catch(JSONException j){
+                    Log.e(TAG, "getStudyDayMaster >>" + j.toString());
+                }
+            }
+            Log.d(TAG, "getStudyDayMaster >>" + obj);
+        } catch (Exception e) {
+            Log.e(TAG, "getStudyDayMaster >>" + e.toString());
+        } finally {
+            if (mCur != null) {
+                mCur.close();
+            }
+            if (mDb != null) {
+                mDb.close();
+            }
+        }
+        return obj;
+    }// method end
 }

+ 47 - 8
app/src/main/java/kr/co/iyapp/todayen/util/HtmlBridge.java

@@ -34,6 +34,7 @@ public class HtmlBridge<context> {
     private JSONArray list;
     private String selectDate;
     private String actName;
+    private Toast mToast;
 
     public HtmlBridge(WebView webView, Context context ){
         this.da = new TodayEnglishDAO(context);
@@ -42,6 +43,7 @@ public class HtmlBridge<context> {
         this.actName = context.getClass().getName();
         this.config  = getConfig();
         Log.i("ActivityName >>>>> ", context.getClass().getName());
+        mToast = Toast.makeText( context, "", Toast.LENGTH_SHORT);
     }
 
     public HtmlBridge(WebView webView, Context context , String selectDate){
@@ -52,6 +54,7 @@ public class HtmlBridge<context> {
         this.actName = context.getClass().getName();
         this.config  = getConfig();
         Log.i("ActivityName >>>>> ", context.getClass().getName());
+        mToast = Toast.makeText( context, "", Toast.LENGTH_SHORT);
     }
 
     public HtmlBridge(WebView webView, Context context,  TextToSpeech tts,  String selectDate){
@@ -172,17 +175,25 @@ public class HtmlBridge<context> {
         //Log.d("HtmlBridge","=-=-=-=-=-=-=- "+keys+"  ,  "+value+" =-=-=-=-=-=-=-");
         if(keys.equals("dayCnt")){
             da.updateRemoveStudyDay();
+            da.deleteRemoveStudyDayMaster();
         }
 
-       int result =  da.updateConfig(keys , value);
-       if(result > 0){
-           if(keys.equals("dayCnt")){
-               Toast.makeText( context,  label+"["+value+"]이(가) 저장되었고,\n금일 데이터가 초기화 되었습니다.", Toast.LENGTH_LONG).show();
-           }else{
-               Toast.makeText( context,  label+"["+value+"]이(가) 저장되었습니다.", Toast.LENGTH_LONG).show();
-           }
+        int result =  da.updateConfig(keys , value);
+        if(result > 0){
+            if(keys.equals("dayCnt")){
+                //Toast.makeText( context,  label+"["+value+"]이(가) 저장되었고,\n금일 데이터가 초기화 되었습니다.", Toast.LENGTH_LONG).show();
+                mToast.cancel();
+                mToast.setText(label+"["+value+"]이(가) 저장되었고,\n금일 데이터가 초기화 되었습니다.");
+                mToast.show();
+
+            }else{
+                //Toast.makeText( context,  label+"["+value+"]이(가) 저장되었습니다.", Toast.LENGTH_LONG).show();
+                mToast.cancel();
+                mToast.setText(label+"["+value+"]이(가) 저장되었습니다.");
+                mToast.show();
+            }
 
-       }
+        }
     }
 
     @JavascriptInterface
@@ -208,6 +219,15 @@ public class HtmlBridge<context> {
         Intent intent = new Intent(this.context, TestActivity.class);
         context.startActivity(intent);
 //        Activity act = (Activity) this.context;
+//        act.finish();
+    }
+    @JavascriptInterface
+    public void goToReverseTestPage() {
+        //Toast.makeText( context, "settings in ...", Toast.LENGTH_LONG).show();
+        Intent intent = new Intent(this.context, TestActivity.class);
+        intent.putExtra("reverseGbn", "Y");
+        context.startActivity(intent);
+//        Activity act = (Activity) this.context;
 //        act.finish();
     }
     @JavascriptInterface
@@ -361,6 +381,25 @@ public class HtmlBridge<context> {
         da.mergeDayMaster(selDate, reviewActGbn);
     }
 
+    @JavascriptInterface
+    public void popToast(String msg) {
+        mToast.cancel();
+        mToast.setText(msg);
+        mToast.show();
+    }
+    @JavascriptInterface
+    public void insertDayPoint(String selDate , String point) {
+        da.insertDayPoint(selDate, point);
+    }
+    @JavascriptInterface
+    public void getStudyDayMaster(String date){
+        JSONObject json = da.getStudyDayMaster(date);
+        handler.post(new Runnable() {
+            public void run() {
+                webView.loadUrl("javascript:Util.setPageData("+json+")");
+            }
+        });
+    }
 }