瀏覽代碼

Merge branch 'master' of https://git.s.mooo.com/khjde1207/emptyapp

goodboy 5 年之前
父節點
當前提交
be3b28b36a

+ 0 - 9
App.js

@@ -63,12 +63,3 @@ const App = () => {
 
 export default App;
 
-
- // let setLang = async ()  =>{
-  //   // let lan = await AsyncStorage.getItem('user:lan')
-  //   // if(!lan){
-  //   //   lan = "en";
-  //   // }
-  //   // console.log(">>>>>>>>>>>>>>>" , lan);
-  //   i18n.locale = "ko";
-  // }

二進制
datas/img/ic_launcher_round.png


+ 29 - 0
datas/키 서명 .txt

@@ -0,0 +1,29 @@
+
+https://github.com/facebook/react-native-fbsdk
+
+// 키 가져 오는 방법 페이스북 
+keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
+keytool -exportcert -alias kr.wise7034.RealTimeEmergencyDepartmentInfo.remote -keystore ./android/app/kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore | openssl sha1 -binary | openssl base64
+keytool -exportcert -alias kr.wise7034.RealTimeEmergencyDepartmentInfo.remote -keystore ./kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore | openssl sha1 -binary | openssl base64
+
+keytool -exportcert -alias kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore -keystore ./kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore | openssl sha1 -binary | openssl base64
+1. https://developers.facebook.com/apps/ 
+2. 앱 선택 
+3. 설정 -> 기본 설정 -> 키 해시 추가. 
+
+
+// 키 가져 오는 방법 구글
+keytool -list -v -alias kr.wise7034.RealTimeEmergencyDepartmentInfo.remote -keystore ./android/app/kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore
+keytool -list -v -alias kr.wise7034.RealTimeEmergencyDepartmentInfo.remote -keystore ./kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore
+
+keytool -list -v -alias kr.wise7034.RealTimeEmergencyDepartmentInfo -keystore ./kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore
+
+
+// 디버그 모드로 실행시 릴리즈 키를 바라보게 하는 방법. 
+./android/keystores/debug.keystore.properties  수정 
+
+key.store=kr.wise7034.RealTimeEmergencyDepartmentInfo.keystore
+key.alias=kr.wise7034.RealTimeEmergencyDepartmentInfo.remote
+key.store.password=/*plusonnet*/
+key.alias.password=/*plusonnet*/
+© Gitea 버전: 1.9.0+dev-259-gd9dcd0934 페이지: 21ms 템플릿: 4ms  한국어  JavaScript licenses API 웹 사이트 Go1.12.5

+ 60 - 4
src/i18n/ko.js

@@ -3,11 +3,67 @@ export default {
 
     },
     AcceptTerms : {
-        termsTitle : ["서비스 약관", "개인정보보호 정책","마케팅 이용동의"],
+        termsTitle : ["이용약관", "개인정보처리방침 "],
         termsContents : [
-            "당사는 A 라 하며 .....",
-            "개인정보는 ......",
-            "수집한 정보는 ........."
+            `약관동의 
+
+            :선원수좌회 홈페이지는 온라인상에서 귀하의 개인정보보호를 소중히 생각합니다. 
+            
+            [개인정보보호정책] 
+            선원수좌회 홈페이지는 이용하는 회원님들의 권익을 보호하여 사용자들이 안심하고 서비스를 받을 수 있도록 준수합니다. 
+            
+            [개인정보의 수집목적 및 방법] 
+            선원수좌회 홈페이지는 “개인정보보호법’등 관계법령 및 선원수좌회의 개인정보처리방침에서 정하는 바에 따라 회원의 개인정보를 보호하며 선원수좌회는 개인정보를 개인의 동의 없이 수집하지 않습니다.
+             
+            선원수좌회의 개인정보보호정책 또는 이용용약관의 내용에 대해 「동의함」,「동의 안함」으로 선택하는 절차를 마련하여 「동의함」선택하면 개인정보수집에 대해 동의한 것으로 봅니다.
+             
+            
+            [회원 이용 범위] 
+            선원수좌회 홈페이지에 접속하여 이 약관에 동의하고, 회원이 선원수좌회 홈페이지에 연계된 주요 홈페이지의 이용을 원할 경우 홈페이지의 이용여부를 승낙하는 것만으로 별도의 가입없이 해당 홈페이지를 이용할 수 있습니다.
+            `,
+            `개인정보처리방침 
+            :선원수좌회(이하 거조사)가 취급하는 모든 개인 정보는 관련 법령에 근거하거나 
+            정보주체의 동의에 의해 수집.보유 및 처리됩니다. 
+            
+            1.개인정보 처리 목적 
+            :선원수좌회 홈페이지의 서비스를 제공함에 있어 각종 종무자료의 검색과 이용, 각종 게시판 이용 및 민원 처리를 목적으로 개인정보를 처리합니다.
+             
+            
+            2.개인정보의 보안 
+            :회원의 주민번호는 암호화되어 보관되며, 회원의 탈퇴 신청시 개인정보는 삭제됩니다. 
+            
+            
+            3.개인정보 이용 및 제공 
+            :선원수좌회는 홈페이지에 고지 또는 이용약관에 명시된 개인정보 수집 및 이용의 목적 이외의 용도로 개인정보를 이용하거나 제3자에게 제공하지 않습니다. 다만, 다음의 경우 개인정보 이용, 제공할 수 있습니다.
+             
+            *회원의 별도 동의를 얻은 경우 
+            *부정한 행위 등으로 법적인 조치를 취하고자 하는 경우 및 사법기관의 요청이 있는 경우 
+            *통계작성 및 학술연구 등의 목적을 위하여 필요한 경우로서 특정 개인을 알아볼 수 없는 형태로 개인정보를 제공하는 경우 
+            
+            4. 개인정보에 대한 접근 제한 
+            :개인정보 처리 시스템에 대한 접근권한의 설정, 변경,삭제를 통하여 개인정보에 대한 접근을 
+            통제하고 기록하여 정보의 노출을 방지합니다. 
+            
+            
+            5. 개인정보 수정 및 이용자의 권리 
+            :이용자는 본인의 개인정보의 열람 및 오류의 정정을 요구할 수 있으며 홈페이지 관리자는 본인 확인 절차를 통해 이용자의 요청을 즉각 처리할 수 있습니다.
+             
+            
+            6. 개인정보 관리책임자 
+            :선원수좌회 홈페이지 관리자 (기획실 홍보팀) 
+            
+            
+            7. 개인정보 처리방침의 변경 
+            :선원수좌회는 홈페이지 개인정보 처리방침의 변경이 있을 경우 홈페이지에 공지합니다. 
+            
+            8. 권익침해 구제방법 
+            :회원은 개인정보침해로 인한 구제를 받기 위하여 아래의 기관에 신고, 상담 할 수 있습니다. 
+            
+            *개인정보분쟁조정위원회 : (국번없이) 118(내선2번) 
+            *정보보호마크인증위원회 : 02-580-0533~4 (http://eprivacy.or.kr) 
+            *대검찰청 사이버범죄수사단 : 02-3480-3582 (http://www.spo.go.kr/) 
+            *경찰청 사이버테러대응센터 : 1566-0112 (http://www.netan.go.kr/) 
+                `,
             ],
             agree : "전체 동의",
             not_agree : "동의 안함",

+ 3 - 1
src/navigation/SwitchNavigator.js

@@ -33,6 +33,9 @@ const SwitchNavigator = createStackNavigator(
   {
     Login,
     AcceptTerms,
+    TermsPopup,
+    
+
     Guide1,
     Guide2,
     Root: {
@@ -42,7 +45,6 @@ const SwitchNavigator = createStackNavigator(
       })
     },
     Setting,
-
     AccountInfo,
     Notice,
     FAQ,

+ 0 - 1
src/pages/_10_Setting.js

@@ -65,7 +65,6 @@ const ItemView = ( props) =>{
         props.navigation.navigate(props.data.page);
 
     }
-    console.log(itemKey);    
     return ( 
         <C.EL.ListItem cls="w100"
         title={i18n.t(`Setting.${itemKey}`)}

+ 3 - 2
src/pages/_2_AcceptTerms.js

@@ -56,13 +56,14 @@ export default (props)=>{
                                 
                                 <C.EL.Divider cls="ma1"/> 
 
-                                <C.EL.Button  title={title} ccls="w100%"
+                                <C.EL.Button  title={title} ccls="w100%"   
+                                onPress = {()=>{ props.navigation.navigate("TermsPopup",{title:title, contentsIdx : idx })}}
                                     tcls="flx0.9"
                                     iconRight icon={
                                         <C.EL.Icon
                                         ccls="ml3"
                                         name="popup"
-                                        type="entypo"
+                                        type="entypo" 
                                         color="white"
                                         
                                         />

+ 15 - 3
src/pages/_5_Root.js

@@ -9,7 +9,8 @@ import Player from "../components/Player";
 import { PlayerConextProvider } from '../components/PlayerReducer'
 C.addColor("#d7d7d7", "color-listbg");
 import {BTNS_ORG as BTNS} from '../data/dummy';
-import { BackHandler } from 'react-native';
+import { BackHandler  , ToastAndroid} from 'react-native';
+// import {ToastAndroid} from 'react-native';
 
 const tabPosition = {x:0, y:0, w:0, h:0};
 
@@ -36,12 +37,23 @@ export default (props)=>{
     }else{
         Page = List; 
     }
-
+    let bClose = false;
     useEffect(()=>{
         BackHandler.addEventListener(
             'hardwareBackPress',
             ()=>{
-
+                if(props.navigation.isFocused()){
+                    if(bClose){
+                        // console.log(BackAndroid); 
+                        BackHandler.exitApp();
+                    }
+                    bClose =true ;
+                    ToastAndroid.show('한번더 뒤로 가기를 누르면 종료 됩니다.', ToastAndroid.SHORT);
+                    setTimeout(()=>{
+                        bClose = false;
+                    },800)
+                }
+                
                 // 소형화 로직
                 
                 return  props.navigation.isFocused();

+ 5 - 1
src/pages/_6_Main.js

@@ -176,7 +176,11 @@ const Imgs = (props)=>{
                 </C.ImageBackground >
                 <C.View cls="flx1 ai-e mh2">  
                     <C.Text> 
-                        {props.soundDuration}
+                        {
+                            props.naration_duration ? 
+                            (props.naration_duration/60).toFixed(2).replace(".",":") : ""
+                            
+                        }
                     </C.Text>
                 </C.View>
         </C.View>

+ 5 - 1
src/pages/_7_List.js

@@ -99,7 +99,11 @@ const Imgs = (props)=>{
                 </C.ImageBackground >
                 <C.View cls="flx1 ai-e mh2">  
                     <C.Text> 
-                        {props.soundDuration}
+                        {
+                            props.naration_duration ? 
+                            (props.naration_duration/60).toFixed(2).replace(".",":") : ""
+                            
+                        }
                     </C.Text>
                 </C.View>
         </C.View>

+ 1 - 0
src/popup/_10_1_AccountInfo.js

@@ -17,6 +17,7 @@ export default (props)=>{
     }
     let logout = async ()=>{   
         await LM.logout();
+        
         props.navigation.navigate('Login');
 
     }

+ 10 - 40
src/popup/_1_TermsPopup.js

@@ -12,56 +12,26 @@ C.addColor("#c87320" , "color-not_agreeBtn");
 
 export default (props)=>{
     // 다국어 처리 영역 
-    let {termsTitle, termsContents, agree , not_agree}  = i18n.t("AcceptTerms");
+    // const { navigation } = props;
+    const {title  : termsTitle, contentsIdx } = props.navigation.state.params;
+
+    let { termsContents, agree , not_agree}  = i18n.t("AcceptTerms");
     let {close}  = i18n.t("TermsPopup");
-    
 
     return (
         <C.SafeAreaView cls="po-full jc-c ai-c"> 
-            <C.View cls="flx0.8 w80% ai-c sdof_0_5 sdo2 bc-color-gray-light-v3 el2 pa2"> 
-                <C.Text cls="f4 fw-b">{termsTitle[0]}</C.Text> 
+            <C.View cls="flx0.8 w90% ai-c sdof_0_5 sdo2 bc-color-gray-light-v3 el2 pa2"> 
+                <C.Text cls="f4 fw-b">{termsTitle}</C.Text> 
                 <C.EL.Divider cls="ma1 w100%"/> 
                 <C.View cls="flx1 jc-sa">
-                    <C.ScrollView>
+                    <C.ScrollView cccls="pa1">
                         <C.Text>
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}{termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}{termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
-                        {termsContents}
+                        {termsContents[contentsIdx]}
+                      
                         </C.Text>
                     </C.ScrollView>
 
-                    <C.EL.Button ccls="mt1"  btncls="bgc-color-agreeBtn" title={close}/>
+                    <C.EL.Button ccls="mt1"  btncls="bgc-color-agreeBtn" title={close} onPress={()=>props.navigation.goBack()} />
                 </C.View>
 
             </C.View>

+ 2 - 5
src/provider/Auth.js

@@ -22,12 +22,8 @@ class Lm  {
     logout = async ()=>{
         let result = await  LoginManager.logOut();
         try {
-            console.log("=====")  
-            // await GoogleSignin.revokeAccess();
-            console.log("222222")  
+            await GoogleSignin.revokeAccess();
             await GoogleSignin.signOut();
-
-            console.log("111")  
         } catch (error) {
             console.log(error)  
         }
@@ -37,6 +33,7 @@ class Lm  {
         result = await NaverLogin.logout();
         
         AsyncStorage.removeItem("@naverToken");
+        AsyncStorage.removeItem("@terms" );
         return true;
     }
 }