From ae3d062b082d77c0da2269dee7eb2f9a4a5714ad Mon Sep 17 00:00:00 2001 From: Neto Chaves Date: Wed, 29 May 2019 13:18:49 -0300 Subject: [PATCH 01/17] notification enabled/disabled option --- functions/index.js | 6 +- src/Components/Config/configBody.js | 189 +++++++++++-------- src/Screens/PerfilSettings/perfilsettings.js | 3 +- 3 files changed, 115 insertions(+), 83 deletions(-) diff --git a/functions/index.js b/functions/index.js index ca0ad9a..ce7223f 100644 --- a/functions/index.js +++ b/functions/index.js @@ -45,8 +45,10 @@ return (exports.sendPushNotification = functions.firestore .doc(userId) .get() .then(doc => { - const { pushToken } = doc.data() - return admin.messaging().sendToDevice(pushToken, payload) + const { pushToken, notifications } = doc.data() + if (notifications) + return admin.messaging().sendToDevice(pushToken, payload) + else return null }) } })) diff --git a/src/Components/Config/configBody.js b/src/Components/Config/configBody.js index 888953a..57fabe7 100644 --- a/src/Components/Config/configBody.js +++ b/src/Components/Config/configBody.js @@ -1,4 +1,4 @@ -import React from "react" +import React, { Component } from "react" import { View, StyleSheet, @@ -8,93 +8,124 @@ import { Switch } from "react-native" import { Icon } from "react-native-elements" +import firebase from "react-native-firebase" -const configBody = props => { - const { navigation } = props - return ( - - - - Conta - - { - navigation.navigate("LanguagesScreen") - }} - > - - Idiomas - - - - +export default class configBody extends Component { + constructor() { + super() + this.state = { + switchState: false + } + this.ref = firebase + .firestore() + .collection("users") + .doc(firebase.auth().currentUser.uid) + } - { - navigation.navigate("EditPerfilScreen") - }} - > - - Perfil - - - - + componentDidMount() { + this.ref.get().then(doc => { + const { notifications } = doc.data() + this.setState({ switchState: notifications }) + }) + } - - - Notificação - - - - + switchHandler = () => { + const { switchState } = this.state + this.ref.update({ notifications: !switchState }) + this.setState(prevState => ({ switchState: !prevState.switchState })) + } - Aplicativo - + render() { + const { navigation } = this.props + const { switchState } = this.state + return ( + + + + Conta + + { + navigation.navigate("LanguagesScreen") + }} + > + + Idiomas + + + + - - - Enviar Feedback - + { + navigation.navigate("EditPerfilScreen") + }} + > + + Perfil + + + + - - - Compartilhar App - + + + Notificação + + + + - - - Avaliar App - + Aplicativo + - - - Política de Privacidade - + + + Enviar Feedback + + + + + Compartilhar App + + + + + Avaliar App + - - - Sobre + + + Política de Privacidade + + + + + Sobre + + + + Excluir Conta - - - Excluir Conta - - - - ) + + + ) + } } const styles = StyleSheet.create({ @@ -152,5 +183,3 @@ const styles = StyleSheet.create({ marginRight: 20 } }) - -export default configBody diff --git a/src/Screens/PerfilSettings/perfilsettings.js b/src/Screens/PerfilSettings/perfilsettings.js index e8ce721..0fdd8f7 100644 --- a/src/Screens/PerfilSettings/perfilsettings.js +++ b/src/Screens/PerfilSettings/perfilsettings.js @@ -73,7 +73,8 @@ export default class PerfilSettings extends Component { language_code: code, profile_img_url: profileImageUrl, online: true, - lastSeen: "" + lastSeen: "", + notifications: true }) }) } From a91907ba632dbffd2037a7ad5739a89e0da99db9 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 May 2019 13:41:26 -0300 Subject: [PATCH 02/17] =?UTF-8?q?Persistencia=20de=20troca=20de=20visualiz?= =?UTF-8?q?a=C3=A7=C3=A3o=20da=20lingua=20da=20mensagem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Chat/chatContainer.js | 4 +- src/Components/mensagem.js | 85 +++++++++++++++++++++++----- src/Screens/Chat/chat.js | 5 +- 3 files changed, 77 insertions(+), 17 deletions(-) diff --git a/src/Components/Chat/chatContainer.js b/src/Components/Chat/chatContainer.js index 01b5c1d..e19d8be 100644 --- a/src/Components/Chat/chatContainer.js +++ b/src/Components/Chat/chatContainer.js @@ -5,7 +5,7 @@ import getTime from "~/functions/getTime" import Message from "../mensagem" const Chat = props => { - const { messages } = props + const { messages, destUserUid } = props return ( { renderItem={({ item }) => { return ( { + const { content, original } = this.state + + this.ref + .doc(key) + .get() + .then(doc => { + const { isChanged } = doc.data() + if (isChanged){ + this.ref.doc(key).update({ + content: original, + contentTranstalet: content, + isChanged: false + }) + } else { + this.ref.doc(key).update({ + content: original, + contentTranstalet: content, + isChanged: true + }) + } + }) } verLinguaOriginal = () => { - const { original } = this.state - Alert.alert( - "Confirmar", - "Deseja ver a mensagem na linguagem original?", - [ - { text: "Sim", onPress: () => this.setState({ content: original }) }, - { text: "Não" } - ], - { cancelable: false } - ) + const { key } = this.state + + this.ref + .doc(key) + .get() + .then(doc => { + const { isChanged } = doc.data() + if (isChanged) { + Alert.alert( + "Confirmar", + "Deseja ver a tradução da mensagem?", + [ + { text: "Sim", onPress: () => this.alterarIdioma(key) }, + { text: "Não" } + ], + { cancelable: false } + ) + } else { + Alert.alert( + "Confirmar", + "Deseja ver a mensagem na linguagem original?", + [ + { text: "Sim", onPress: () => this.alterarIdioma(key) }, + { text: "Não" } + ], + { cancelable: false } + ) + } + + }) + + } render() { diff --git a/src/Screens/Chat/chat.js b/src/Screens/Chat/chat.js index 17378f5..0a65e47 100644 --- a/src/Screens/Chat/chat.js +++ b/src/Screens/Chat/chat.js @@ -204,7 +204,8 @@ export default class Conversas extends Component { content: newMessage.content, date: newMessage.date, contentTranslated: translated, - source: "2" + source: "2", + isChanged: false }) .then(() => true) .catch(error => error) @@ -267,7 +268,7 @@ export default class Conversas extends Component { status={status} /> - + Date: Wed, 29 May 2019 14:16:26 -0300 Subject: [PATCH 03/17] =?UTF-8?q?Ajustes=20de=20erro=20de=20digita=C3=A7?= =?UTF-8?q?=C3=A3o=20e=20troca=20do=20nome=20da=20prop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Chat/chatContainer.js | 2 +- src/Components/mensagem.js | 31 +++++++++++++--------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/Components/Chat/chatContainer.js b/src/Components/Chat/chatContainer.js index e19d8be..7a8d280 100644 --- a/src/Components/Chat/chatContainer.js +++ b/src/Components/Chat/chatContainer.js @@ -15,7 +15,7 @@ const Chat = props => { renderItem={({ item }) => { return ( { + alterarIdioma = chave => { const { content, original } = this.state this.ref - .doc(key) + .doc(chave) .get() .then(doc => { const { isChanged } = doc.data() - if (isChanged){ - this.ref.doc(key).update({ + if (isChanged) { + this.ref.doc(chave).update({ content: original, - contentTranstalet: content, + contentTranslated: content, isChanged: false }) } else { - this.ref.doc(key).update({ + this.ref.doc(chave).update({ content: original, - contentTranstalet: content, + contentTranslated: content, isChanged: true }) } @@ -137,10 +137,10 @@ export default class Mensagem extends PureComponent { } verLinguaOriginal = () => { - const { key } = this.state + const { chave } = this.state this.ref - .doc(key) + .doc(chave) .get() .then(doc => { const { isChanged } = doc.data() @@ -149,7 +149,7 @@ export default class Mensagem extends PureComponent { "Confirmar", "Deseja ver a tradução da mensagem?", [ - { text: "Sim", onPress: () => this.alterarIdioma(key) }, + { text: "Sim", onPress: () => this.alterarIdioma(chave) }, { text: "Não" } ], { cancelable: false } @@ -159,16 +159,13 @@ export default class Mensagem extends PureComponent { "Confirmar", "Deseja ver a mensagem na linguagem original?", [ - { text: "Sim", onPress: () => this.alterarIdioma(key) }, + { text: "Sim", onPress: () => this.alterarIdioma(chave) }, { text: "Não" } ], { cancelable: false } ) } - }) - - } render() { From 81728a6ec641e5816510b5cba900bb8b8c025e79 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 May 2019 15:34:23 -0300 Subject: [PATCH 04/17] Mais ajustes --- src/Components/mensagem.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Components/mensagem.js b/src/Components/mensagem.js index 86710ab..182a410 100644 --- a/src/Components/mensagem.js +++ b/src/Components/mensagem.js @@ -114,7 +114,8 @@ export default class Mensagem extends PureComponent { alterarIdioma = chave => { const { content, original } = this.state - + const translated = content + const noTranslated = original this.ref .doc(chave) .get() @@ -122,17 +123,18 @@ export default class Mensagem extends PureComponent { const { isChanged } = doc.data() if (isChanged) { this.ref.doc(chave).update({ - content: original, - contentTranslated: content, + content: translated, + contentTranslated: noTranslated, isChanged: false }) } else { this.ref.doc(chave).update({ - content: original, - contentTranslated: content, + content: translated, + contentTranslated: noTranslated, isChanged: true }) } + this.setState({ content: noTranslated, original: translated }) }) } From 17e00b59061990db9c6b96f1a156fba185bc60b8 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 May 2019 18:04:06 -0300 Subject: [PATCH 05/17] =?UTF-8?q?Fun=C3=A7=C3=A3o=20para=20gerar=20cor=20c?= =?UTF-8?q?riada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/functions/getColor.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/functions/getColor.js diff --git a/src/functions/getColor.js b/src/functions/getColor.js new file mode 100644 index 0000000..4f47cc8 --- /dev/null +++ b/src/functions/getColor.js @@ -0,0 +1,17 @@ +/* eslint-disable no-plusplus */ +const getColor = () => { + const hexadecimais = "0123456789ABCDEF" + let cor = "#" + while (1) { + for (let i = 0; i < 6; i++) { + cor += hexadecimais[Math.floor(Math.random() * 16)] + } + if (cor === "#FFFFFF") { + cor = "#" + } else { + return cor + } + } +} + +export default getColor From b31d5da3181e83dbf535d8361d298ee254d29136 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 May 2019 18:04:58 -0300 Subject: [PATCH 06/17] =?UTF-8?q?Indica=C3=A7=C3=A3o=20da=20prop=20para=20?= =?UTF-8?q?mostrar=20o=20nome=20do=20usu=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Chat/chatContainer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/Chat/chatContainer.js b/src/Components/Chat/chatContainer.js index 01b5c1d..87b5105 100644 --- a/src/Components/Chat/chatContainer.js +++ b/src/Components/Chat/chatContainer.js @@ -15,6 +15,7 @@ const Chat = props => { renderItem={({ item }) => { return ( Date: Wed, 29 May 2019 18:05:27 -0300 Subject: [PATCH 07/17] Componente atualizado para grupos --- src/Components/mensagem.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Components/mensagem.js b/src/Components/mensagem.js index ab4f30f..6b8fefc 100644 --- a/src/Components/mensagem.js +++ b/src/Components/mensagem.js @@ -2,7 +2,9 @@ import React, { PureComponent } from "react" import { Svg, Path } from "react-native-svg" import { View, Text, StyleSheet, TouchableOpacity, Alert } from "react-native" import { moderateScale } from "react-native-size-matters" +import getColor from "~/functions/getColor" +const cor = getColor() const styles = StyleSheet.create({ // Estilo para a mensagem do remetente remet: { @@ -31,6 +33,7 @@ const styles = StyleSheet.create({ right: 5 }, textRemet: { + fontFamily: "Open Sans", fontSize: 14, color: "white" }, @@ -41,7 +44,7 @@ const styles = StyleSheet.create({ marginRight: 10, alignItems: "center" }, - + // Estilo para a mensagem do destinatario dest: { flexDirection: "row", @@ -63,6 +66,12 @@ const styles = StyleSheet.create({ marginBottom: 5, padding: 10 }, + nomeRemetente: { + fontFamily: "Open Sans", + fontSize: 12, + fontWeight: "bold", + color: cor + }, arrowDest: { elevation: 5, position: "absolute", @@ -70,6 +79,7 @@ const styles = StyleSheet.create({ left: 5 }, textDest: { + fontFamily: "Open Sans", fontSize: 14, color: "black" }, @@ -91,14 +101,15 @@ export default class Mensagem extends PureComponent { content: "", date: "", source: "", - original: "" + original: "", + nomeRemetente: null } } componentDidMount() { - const { content, date, source, original } = this.props + const { content, date, source, original, nomeRemetente } = this.props - this.setState({ content, date, source, original }) + this.setState({ content, date, source, original, nomeRemetente }) } verLinguaOriginal = () => { @@ -115,7 +126,7 @@ export default class Mensagem extends PureComponent { } render() { - const { content, date, source } = this.state + const { content, date, source, nomeRemetente } = this.state let message // Remetente if (source === "1") { @@ -169,6 +180,11 @@ export default class Mensagem extends PureComponent { + {nomeRemetente && ( + + {nomeRemetente} + + )} {content} From dd9630b28a9dc6e4851c3261de48232f0d11423b Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Wed, 29 May 2019 20:02:11 -0300 Subject: [PATCH 08/17] =?UTF-8?q?Adicionada=20fun=C3=A7=C3=A3o=20de=20dar?= =?UTF-8?q?=20share=20do=20aplicativo=20para=20os=20amigos=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Config/configBody.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Components/Config/configBody.js b/src/Components/Config/configBody.js index 888953a..8d47f10 100644 --- a/src/Components/Config/configBody.js +++ b/src/Components/Config/configBody.js @@ -5,7 +5,8 @@ import { Text, TouchableOpacity, ScrollView, - Switch + Switch, + Share } from "react-native" import { Icon } from "react-native-elements" @@ -69,7 +70,15 @@ const configBody = props => { Enviar Feedback - + { + Share.share({ + message: + "Olá, já instalou o Unichat? Se não, é bem fácil. Apenas clique no link a seguir https://github.com/ES2-UFPI/Unichat/releases" + }) + }} + > Compartilhar App From f8f93c9076b6ce6d03f612ac019c4b37c16fc5cf Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Wed, 29 May 2019 20:21:22 -0300 Subject: [PATCH 09/17] =?UTF-8?q?Criado=20componente=20de=20header=20para?= =?UTF-8?q?=20tela=20de=20idiomas=20ao=20inv=C3=A9s=20de=20setar=20no=20ro?= =?UTF-8?q?utes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Languages/languagesHeader.js | 38 +++++++++++++++++++++ src/Screens/Languages/languages.js | 2 ++ src/routes.js | 5 +-- 3 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 src/Components/Languages/languagesHeader.js diff --git a/src/Components/Languages/languagesHeader.js b/src/Components/Languages/languagesHeader.js new file mode 100644 index 0000000..3025e81 --- /dev/null +++ b/src/Components/Languages/languagesHeader.js @@ -0,0 +1,38 @@ +import React from "react" + +import { View, StyleSheet, Text } from "react-native" + +const languagesHeader = () => { + return ( + + + Idiomas + + + ) +} + +const styles = StyleSheet.create({ + header: { + backgroundColor: "#fff", + elevation: 5, + marginTop: 0, + fontFamily: "OpenSans" + }, + headerContent: { + backgroundColor: "#fff", + marginBottom: 15, + marginTop: 15, + marginLeft: 15, + marginRight: 10, + flexDirection: "row" + }, + languagesInfo: { + flex: 1, + fontSize: 22, + textAlign: "center", + backgroundColor: "#fff" + } +}) + +export default languagesHeader diff --git a/src/Screens/Languages/languages.js b/src/Screens/Languages/languages.js index a15126d..7059708 100644 --- a/src/Screens/Languages/languages.js +++ b/src/Screens/Languages/languages.js @@ -8,6 +8,7 @@ import { TouchableOpacity, ToastAndroid } from "react-native" +import LanguagesHeader from "~/Components/Languages/languagesHeader" import { CheckBox } from "react-native-elements" import firebase from "react-native-firebase" import data from "~/assets/languages/languages.json" @@ -72,6 +73,7 @@ export default class Languages extends Component { } = this.state return ( + Idioma atual {currentLanguageName} diff --git a/src/routes.js b/src/routes.js index 89ebea7..d654080 100644 --- a/src/routes.js +++ b/src/routes.js @@ -140,10 +140,7 @@ const appStackNavigator = createStackNavigator( LanguagesScreen: { screen: Languages, navigationOptions: { - title: "Tela de Idiomas", - headerTitleStyle: { - fontWeight: "normal" - } + header: null } } }, From 7c4d10d3560a52d12403cc9d5027bf8e6d77091f Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Wed, 29 May 2019 20:23:08 -0300 Subject: [PATCH 10/17] =?UTF-8?q?Removido=20vari=C3=A1vel=20que=20n=C3=A3o?= =?UTF-8?q?=20estava=20em=20uso=20na=20fun=C3=A7=C3=A3o=20changeLanguage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Screens/Languages/languages.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Screens/Languages/languages.js b/src/Screens/Languages/languages.js index 7059708..2cec0ab 100644 --- a/src/Screens/Languages/languages.js +++ b/src/Screens/Languages/languages.js @@ -40,7 +40,7 @@ export default class Languages extends Component { }) } - changeLanguage = (item, index) => { + changeLanguage = item => { firebase .firestore() .collection("users") @@ -88,7 +88,7 @@ export default class Languages extends Component { return ( this.changeLanguage(item, index)} + onPress={() => this.changeLanguage(item)} > {item.name} From 4325eb4553a7ea620189bc09a34903b67d6d3b56 Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Wed, 29 May 2019 20:56:19 -0300 Subject: [PATCH 11/17] =?UTF-8?q?Adicionada=20l=C3=B3gica=20do=20bot=C3=A3?= =?UTF-8?q?o=20de=20voltar=20no=20componente=20de=20Idiomas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Languages/languagesHeader.js | 22 +++++++++++++++--- src/Screens/Languages/languages.js | 25 ++++++++++++++++++--- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/Components/Languages/languagesHeader.js b/src/Components/Languages/languagesHeader.js index 3025e81..de01dec 100644 --- a/src/Components/Languages/languagesHeader.js +++ b/src/Components/Languages/languagesHeader.js @@ -1,11 +1,22 @@ import React from "react" -import { View, StyleSheet, Text } from "react-native" +import { View, StyleSheet, Text, TouchableOpacity } from "react-native" +import { Icon } from "react-native-elements" -const languagesHeader = () => { +const languagesHeader = props => { return ( + { + const { navigation } = props + navigation.navigate("SettingsScreen") + }} + hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }} + > + + Idiomas @@ -27,11 +38,16 @@ const styles = StyleSheet.create({ marginRight: 10, flexDirection: "row" }, + backButton: { + justifyContent: "center" + }, languagesInfo: { flex: 1, fontSize: 22, textAlign: "center", - backgroundColor: "#fff" + backgroundColor: "#fff", + marginLeft: 20, + paddingRight: 20 } }) diff --git a/src/Screens/Languages/languages.js b/src/Screens/Languages/languages.js index 2cec0ab..9bf1b9c 100644 --- a/src/Screens/Languages/languages.js +++ b/src/Screens/Languages/languages.js @@ -6,7 +6,8 @@ import { FlatList, StyleSheet, TouchableOpacity, - ToastAndroid + ToastAndroid, + BackHandler } from "react-native" import LanguagesHeader from "~/Components/Languages/languagesHeader" import { CheckBox } from "react-native-elements" @@ -20,7 +21,8 @@ export default class Languages extends Component { dataSource: [], currentLanguageName: "", checkBoxIndex: -1, - checkBox: true + checkBox: true, + disabled: false } this.user = firebase.auth().currentUser @@ -31,6 +33,8 @@ export default class Languages extends Component { } componentDidMount() { + BackHandler.addEventListener("hardwareBackPress", this.handleBackPress) + this.setState({ dataSource: data }) @@ -40,6 +44,19 @@ export default class Languages extends Component { }) } + componentWillUnmount() { + BackHandler.removeEventListener("hardwareBackPress", this.handleBackPress) + } + + handleBackPress = () => { + const { navigation } = this.props + const { disabled } = this.state + if (!disabled) { + navigation.navigate("SettingsScreen") + } + return true + } + changeLanguage = item => { firebase .firestore() @@ -71,9 +88,11 @@ export default class Languages extends Component { checkBox, checkBoxIndex } = this.state + const { navigation } = this.props + return ( - + Idioma atual {currentLanguageName} From 3843fac3512d5d33f203b347c7cd94581e689041 Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Wed, 29 May 2019 21:08:09 -0300 Subject: [PATCH 12/17] =?UTF-8?q?Adicionado=20click=20no=20checkBox=20pois?= =?UTF-8?q?=20o=20mesmo=20n=C3=A3o=20estava=20funcionando,=20alterado=20ta?= =?UTF-8?q?manho=20das=20fontes=20dos=20textos.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Screens/Languages/languages.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Screens/Languages/languages.js b/src/Screens/Languages/languages.js index 9bf1b9c..a1206a6 100644 --- a/src/Screens/Languages/languages.js +++ b/src/Screens/Languages/languages.js @@ -113,10 +113,11 @@ export default class Languages extends Component { this.changeLanguage(item)} /> @@ -136,19 +137,19 @@ const styles = StyleSheet.create({ }, itemTextHeader: { backgroundColor: "#fff", - fontSize: 20, + fontSize: 18, paddingTop: 15, paddingLeft: 20, paddingBottom: 15 }, itemText: { - fontSize: 20 + fontSize: 18 }, headerTitle: { backgroundColor: "#F4F5F8" }, headerText: { - fontSize: 26, + fontSize: 24, alignSelf: "flex-start", paddingTop: 10, paddingBottom: 10, From 33902a771dc3be5933da133cf4fd34a1d417e6e7 Mon Sep 17 00:00:00 2001 From: Neto Chaves Date: Thu, 30 May 2019 20:58:49 -0300 Subject: [PATCH 13/17] update axios package --- package-lock.json | 38 ++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e6c70f..05114b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1468,12 +1468,19 @@ "dev": true }, "axios": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", - "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } } }, "axobject-query": { @@ -3414,25 +3421,20 @@ "dev": true }, "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { - "debug": "^3.2.6" + "debug": "=3.1.0" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "^2.1.1" + "ms": "2.0.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, diff --git a/package.json b/package.json index 150994f..97fc404 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "dependencies": { "@react-native-community/async-storage": "^1.3.4", "@react-native-community/netinfo": "^2.0.10", - "axios": "^0.18.0", + "axios": "^0.19.0", "eslint-config-prettier": "^4.1.0", "eslint-plugin-prettier": "^3.0.1", "prop-types": "^15.7.2", From c47c2d421cac9c419b4e1254f1b44706c726051a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro?= Date: Fri, 31 May 2019 20:21:21 -0300 Subject: [PATCH 14/17] Create PRIVACY-POLICY.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adicionado arquivo de template da nossa política de privacidade. --- PRIVACY-POLICY.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 PRIVACY-POLICY.md diff --git a/PRIVACY-POLICY.md b/PRIVACY-POLICY.md new file mode 100644 index 0000000..e26dc1b --- /dev/null +++ b/PRIVACY-POLICY.md @@ -0,0 +1,40 @@ +# Privacy Policy + +[["We" or "I", or Website or App name]] takes your privacy seriously. To better protect your privacy [["we" or "I"]] provide this privacy policy notice explaining the way your personal information is collected and used. + + +## Collection of Routine Information + +This [["website" or "app"]] track basic information about their [["visitors" or "users"]]. This information includes, but is not limited to, IP addresses, [["browser" or "app"]] details, timestamps and referring pages. None of this information can personally identify specific [["visitors" or "user"]] to this [["website" or "app"]]. The information is tracked for routine administration and maintenance purposes. + + +## Cookies + +Where necessary, this [["website" or "app"]] uses cookies to store information about a visitor’s preferences and history in order to better serve the [["visitor" or "user"]] and/or present the [["visitor" or "user"]] with customized content. + + +## Advertisement and Other Third Parties + +Advertising partners and other third parties may use cookies, scripts and/or web beacons to track [["visitors" or "user"]] activities on this [["website" or "app"]] in order to display advertisements and other useful information. Such tracking is done directly by the third parties through their own servers and is subject to their own privacy policies. This [["website" or "app"]] has no access or control over these cookies, scripts and/or web beacons that may be used by third parties. Learn how to [opt out of Google’s cookie usage](http://www.google.com/privacy_ads.html). + + +## Links to Third Party Websites + +[["We" or "I"]] have included links on this [["website" or "app"]] for your use and reference. [["We" or "I"]] are not responsible for the privacy policies on these websites. You should be aware that the privacy policies of these websites may differ from [["our" or "my"]] own. + + +## Security + +The security of your personal information is important to [["us" or "me"]], but remember that no method of transmission over the Internet, or method of electronic storage, is 100% secure. While [["we" or "I"]] strive to use commercially acceptable means to protect your personal information, [["we" or "I"]] cannot guarantee its absolute security. + + +## Changes To This Privacy Policy + +This Privacy Policy is effective as of [[Date]] and will remain in effect except with respect to any changes in its provisions in the future, which will be in effect immediately after being posted on this page. + +[["We" or "I"]] reserve the right to update or change [["our" or "my"]] Privacy Policy at any time and you should check this Privacy Policy periodically. If [["we" or "I"]] make any material changes to this Privacy Policy, [["we" or "I"]] will notify you either through the email address you have provided [["us" or "me"]], or by placing a prominent notice on [["our" or "my"]] [["website" or "app"]]. + + +## Contact Information + +For any questions or concerns regarding the privacy policy, please send [["us" or "me"]] an email to [[Contact Email Address]]. From 462c25ef5ea96297c6d4cee0b17ef8b5aa62c446 Mon Sep 17 00:00:00 2001 From: Neto Chaves Date: Fri, 31 May 2019 23:50:03 -0300 Subject: [PATCH 15/17] fix bug 142 and refactor routes --- functions/index.js | 4 +- src/index.js | 12 +++++- src/routes.js | 95 +++++++++++++++++++++++++++------------------- 3 files changed, 69 insertions(+), 42 deletions(-) diff --git a/functions/index.js b/functions/index.js index ca0ad9a..4678afd 100644 --- a/functions/index.js +++ b/functions/index.js @@ -24,14 +24,14 @@ return (exports.sendPushNotification = functions.firestore .catch(error => console.log(error)) const { contactName, contactPhoto } = data - if (source === "2") { + if (source === "1") { const payload = { data: { conversaId }, notification: { title: contactName, - body: contentTranslated, + body: content, sound: "default", android_channel_id: "main-channel", collapseKey: "unichat", diff --git a/src/index.js b/src/index.js index 20f1881..3c09a22 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,17 @@ import React from "react" import "~/config/ReactotronConfig" +import firebase from "react-native-firebase" -import Routes from "~/routes" +import { createRootNavigator } from "~/routes" -const App = () => +const App = () => { + let isAuth + firebase.auth().onAuthStateChanged(user => { + isAuth = user != null + }) + const Routes = createRootNavigator(isAuth) + return +} export default App diff --git a/src/routes.js b/src/routes.js index 89ebea7..84d0fe8 100644 --- a/src/routes.js +++ b/src/routes.js @@ -2,7 +2,8 @@ import React from "react" import { createAppContainer, createStackNavigator, - createMaterialTopTabNavigator + createMaterialTopTabNavigator, + createSwitchNavigator } from "react-navigation" import PerfilSettings from "~/Screens/PerfilSettings/perfilsettings" import PreviewImage from "~/Screens/PreviewImage/previewImg" @@ -14,17 +15,8 @@ import Conversas from "~/Screens/Conversas/conversas" import Settings from "~/Screens/Config/config" import EditPerfil from "~/Screens/EditPerfil/editperfil" import Languages from "~/Screens/Languages/languages" -import { Icon } from "react-native-elements" -import firebase from "react-native-firebase" -let rota = "AuthScreen" -firebase.auth().onAuthStateChanged(user => { - if (user) { - rota = "Conversas" - } else { - rota = "AuthScreen" - } -}) +import { Icon } from "react-native-elements" const tabBarNavigator = createMaterialTopTabNavigator( { @@ -84,72 +76,99 @@ const tabBarNavigator = createMaterialTopTabNavigator( } } ) -const appStackNavigator = createStackNavigator( + +const HomeStackNavigator = createStackNavigator( { - AuthScreen: { - screen: Auth, + SettingsScreen: { + screen: tabBarNavigator, navigationOptions: { header: null } }, - PerfilSettings: { - screen: PerfilSettings, + EditPerfilScreen: { + screen: EditPerfil, navigationOptions: { header: null } }, - PreviewImage: { - screen: PreviewImage, + LanguagesScreen: { + screen: Languages, + navigationOptions: { + title: "Tela de Idiomas", + headerTitleStyle: { + fontWeight: "normal" + } + } }, - VerificationScreen: { - screen: Verification, + Contacts: { + screen: tabBarNavigator, navigationOptions: { header: null } }, - Conversas: { - screen: tabBarNavigator, + + ChatScreen: { + screen: Chat, navigationOptions: { header: null } }, - ContactsScreen: { + Conversas: { screen: tabBarNavigator, navigationOptions: { header: null } - }, - ChatScreen: { - screen: Chat, + } + }, + { + initialRouteName: "Conversas" + }, + { header: null } +) + +const authStackNavigator = createStackNavigator( + { + AuthScreen: { + screen: Auth, navigationOptions: { header: null } }, - SettingsScreen: { - screen: tabBarNavigator, + PerfilSettings: { + screen: PerfilSettings, navigationOptions: { header: null } }, - EditPerfilScreen: { - screen: EditPerfil, + PreviewImage: { + screen: PreviewImage + }, + VerificationScreen: { + screen: Verification, navigationOptions: { header: null } }, - LanguagesScreen: { - screen: Languages, + Conversas: { + screen: tabBarNavigator, navigationOptions: { - title: "Tela de Idiomas", - headerTitleStyle: { - fontWeight: "normal" - } + header: null } } }, { - initialRouteName: rota + initialRouteName: "AuthScreen" }, { header: null } ) -export default createAppContainer(appStackNavigator) +export const createRootNavigator = (isAuth = false) => { + return createAppContainer( + createSwitchNavigator( + { + Home: HomeStackNavigator, + Auth: authStackNavigator + }, + { initialRouteName: isAuth ? "Home" : "Auth" } + ) + ) +} From 7c240a441ef72dae93d362b43e604b6b0392fe61 Mon Sep 17 00:00:00 2001 From: Sosolidkk Date: Fri, 31 May 2019 23:56:18 -0300 Subject: [PATCH 16/17] =?UTF-8?q?Adicionada=20fun=C3=A7=C3=A3o=20de=20ir?= =?UTF-8?q?=20para=20as=20pol=C3=ADticas=20de=20privacidade=20do=20App.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Components/Config/configBody.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Components/Config/configBody.js b/src/Components/Config/configBody.js index 888953a..6750c7f 100644 --- a/src/Components/Config/configBody.js +++ b/src/Components/Config/configBody.js @@ -5,7 +5,8 @@ import { Text, TouchableOpacity, ScrollView, - Switch + Switch, + Linking } from "react-native" import { Icon } from "react-native-elements" @@ -79,7 +80,14 @@ const configBody = props => { Avaliar App - + { + Linking.openURL( + "https://github.com/ES2-UFPI/Unichat/blob/dev/PRIVACY-POLICY.md" + ) + }} + > Política de Privacidade From a7ced9cdc44594589d6f22df1fe47fda825c2510 Mon Sep 17 00:00:00 2001 From: Neto Chaves Date: Sat, 1 Jun 2019 18:59:40 -0300 Subject: [PATCH 17/17] fiz error --- src/Components/Config/configBody.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Components/Config/configBody.js b/src/Components/Config/configBody.js index d414de1..b8d2aae 100644 --- a/src/Components/Config/configBody.js +++ b/src/Components/Config/configBody.js @@ -130,11 +130,6 @@ export default class configBody extends Component { Política de Privacidade - - - Política de Privacidade - - Sobre