diff --git a/.github/workflows/ci-nightly.yaml b/.github/workflows/ci-nightly.yaml
index 140d74f76..dfa37cf7b 100644
--- a/.github/workflows/ci-nightly.yaml
+++ b/.github/workflows/ci-nightly.yaml
@@ -26,16 +26,17 @@ jobs:
cache-key: ${{ needs.create-cache-key.outputs.cache-key }}
arch: ${{ matrix.arch }}
- android-macos-integration-test:
- strategy:
- matrix:
- arch: [arm64-v8a, armeabi-v7a]
- uses: ./.github/workflows/android-macos-integration-test.yaml
- needs: [ create-timestamp, create-cache-key, android-build ]
- with:
- timestamp: ${{ needs.create-timestamp.outputs.timestamp }}
- cache-key: ${{ needs.create-cache-key.outputs.cache-key }}
- abi: ${{ matrix.arch }}
+ # those are really long, near to one hour and sometimes more
+ #android-macos-integration-test:
+ # strategy:
+ # matrix:
+ # arch: [arm64-v8a, armeabi-v7a]
+ # uses: ./.github/workflows/android-macos-integration-test.yaml
+ # needs: [ create-timestamp, create-cache-key, android-build ]
+ # with:
+ # timestamp: ${{ needs.create-timestamp.outputs.timestamp }}
+ # cache-key: ${{ needs.create-cache-key.outputs.cache-key }}
+ # abi: ${{ matrix.arch }}
android-ubuntu-integration-test-ci:
strategy:
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 2e3b47d98..b8817dc18 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -27,7 +27,6 @@ jobs:
arch: ${{ matrix.arch }}
# those are really long, near to one hour and sometimes more
- # I leave them in ci-nightly.
#android-macos-integration-test:
# strategy:
# matrix:
diff --git a/__tests__/__snapshots__/History.snapshot.tsx.snap b/__tests__/__snapshots__/History.snapshot.tsx.snap
index f00ac2255..6854532e9 100644
--- a/__tests__/__snapshots__/History.snapshot.tsx.snap
+++ b/__tests__/__snapshots__/History.snapshot.tsx.snap
@@ -815,7 +815,7 @@ exports[`Component History - test History currency USD, privacy high & mode adva
"borderColor": "#18bd18",
"borderRadius": 15,
"borderWidth": 1,
- "marginHorizontal": 0,
+ "marginHorizontal": 10,
"paddingHorizontal": 10,
"paddingVertical": 5,
}
@@ -875,7 +875,7 @@ exports[`Component History - test History currency USD, privacy high & mode adva
"borderColor": "#888888",
"borderRadius": 15,
"borderWidth": 1,
- "marginHorizontal": 10,
+ "marginHorizontal": 0,
"paddingHorizontal": 10,
"paddingVertical": 5,
}
@@ -1395,7 +1395,7 @@ exports[`Component History - test History no currency, privacy normal & mode bas
"borderColor": "#18bd18",
"borderRadius": 15,
"borderWidth": 1,
- "marginHorizontal": 0,
+ "marginHorizontal": 10,
"paddingHorizontal": 10,
"paddingVertical": 5,
}
@@ -1455,7 +1455,7 @@ exports[`Component History - test History no currency, privacy normal & mode bas
"borderColor": "#888888",
"borderRadius": 15,
"borderWidth": 1,
- "marginHorizontal": 10,
+ "marginHorizontal": 0,
"paddingHorizontal": 10,
"paddingVertical": 5,
}
diff --git a/__tests__/__snapshots__/Messages.snapshot.tsx.snap b/__tests__/__snapshots__/Messages.snapshot.tsx.snap
index bfdb3083a..f26a9bf06 100644
--- a/__tests__/__snapshots__/Messages.snapshot.tsx.snap
+++ b/__tests__/__snapshots__/Messages.snapshot.tsx.snap
@@ -1,11 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Component Messages - test Messages currency USD, privacy high & mode advanced - snapshot 1`] = `
-
-
+
`;
exports[`Component Messages - test Messages no currency, privacy normal & mode basic - snapshot 1`] = `
-
-
+
`;
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 8d2326fae..080b51173 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -107,7 +107,7 @@ android {
applicationId 'org.ZingoLabs.Zingo' // Real
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 217 // Real
+ versionCode 218 // Real
versionName "zingo-1.11.0" // Real
missingDimensionStrategy 'react-native-camera', 'general'
testBuildType System.getProperty('testBuildType', 'debug')
diff --git a/app/AppState/AppStateLoaded.ts b/app/AppState/AppStateLoaded.ts
index 38c0a54ba..69163450b 100644
--- a/app/AppState/AppStateLoaded.ts
+++ b/app/AppState/AppStateLoaded.ts
@@ -28,6 +28,7 @@ export default interface AppStateLoaded {
poolsModalVisible: boolean;
insightModalVisible: boolean;
addressBookModalVisible: boolean;
+ messagesModalVisible: boolean;
// change server helper
newServer: ServerType;
diff --git a/app/AppState/enums/MenuItemEnum.ts b/app/AppState/enums/MenuItemEnum.ts
index a1da86c65..b217243a7 100644
--- a/app/AppState/enums/MenuItemEnum.ts
+++ b/app/AppState/enums/MenuItemEnum.ts
@@ -14,4 +14,5 @@ export enum MenuItemEnum {
Info = 'Info',
VoteForNym = 'Vote For Nym',
Support = 'Support',
+ Chats = 'Chats',
}
diff --git a/app/LoadedApp/LoadedApp.tsx b/app/LoadedApp/LoadedApp.tsx
index 444e0e500..c39a2c7b6 100644
--- a/app/LoadedApp/LoadedApp.tsx
+++ b/app/LoadedApp/LoadedApp.tsx
@@ -17,7 +17,7 @@ import {
} from 'react-native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome';
-import { faList, faUpload, faDownload, faCog, faComments, faRefresh } from '@fortawesome/free-solid-svg-icons';
+import { faList, faUpload, faDownload, faCog, faRefresh } from '@fortawesome/free-solid-svg-icons';
import { useTheme } from '@react-navigation/native';
import { DrawerLayout } from 'react-native-gesture-handler';
import { I18n } from 'i18n-js';
@@ -91,8 +91,8 @@ import Send from '../../components/Send';
import Receive from '../../components/Receive';
import Settings from '../../components/Settings';
import Menu from './components/Menu';
-import { Messages } from '../../components/Messages';
import RegText from '../../components/Components/RegText';
+import { MessagesModal } from '../../components/Messages';
const About = React.lazy(() => import('../../components/About'));
const Seed = React.lazy(() => import('../../components/Seed'));
@@ -517,6 +517,7 @@ export class LoadedAppClass extends Component {},
+ messagesModalVisible: false,
});
};
@@ -1256,6 +1258,8 @@ export class LoadedAppClass extends Component
+ this.setState({ messagesModalVisible: false })}>
+ }>
+ this.setState({ messagesModalVisible: false })}
+ />
+
+
+
{mode === ModeEnum.advanced ||
(valueTransfersTotal !== null && valueTransfersTotal > 0) ||
(!readOnly && !!totalBalance && totalBalance.spendableOrchard + totalBalance.spendablePrivate > 0) ? (
({
tabBarIcon: ({ focused }) => fnTabBarIcon(route, focused, navigation),
tabBarLabelPosition: 'below-icon',
@@ -2116,15 +2140,18 @@ export class LoadedAppClass extends Component
-
+
{() => (
-
)}
-
- {() => (
-
- )}
-
) : (
<>
@@ -2195,7 +2203,7 @@ export class LoadedAppClass extends Component
) : (
-
+
{() => (
= ({ onItemSelected, closeDrawer
{translate('loadedapp.settings') as string}
+ onItemSelectedWrapper(MenuItemEnum.Chats)}
+ style={{ ...item, color: colors.primary }}>
+ {translate('messages.title-chats') as string}
+
+
onItemSelectedWrapper(MenuItemEnum.AddressBook)}
diff --git a/app/translations/en.json b/app/translations/en.json
index 4cdd82329..69615ecca 100644
--- a/app/translations/en.json
+++ b/app/translations/en.json
@@ -1,6 +1,6 @@
{
"zingo": "Zingo",
- "version": "zingo-1.11.0 (217)",
+ "version": "zingo-1.11.0 (218)",
"loading": "loading...",
"connectingserver": "Connecting to the server...",
"wait": "Please wait...",
@@ -36,8 +36,8 @@
"syncing": "Syncing -",
"synced": "Synced",
"messages": {
- "title": "Messages",
- "title-chats": "Chats",
+ "title": "Messages (experimental)",
+ "title-chats": "Chats (experimental)",
"empty": "No Messages yet.",
"message-placeholder": "Message",
"message-placeholder-error": "No spendable funds available",
diff --git a/app/translations/es.json b/app/translations/es.json
index a3ca03e16..58c1b878c 100644
--- a/app/translations/es.json
+++ b/app/translations/es.json
@@ -1,6 +1,6 @@
{
"zingo": "Zingo",
- "version": "zingo-1.11.0 (217)",
+ "version": "zingo-1.11.0 (218)",
"loading": "cargando...",
"connectingserver": "Conectando con el servidor...",
"wait": "Por favor espere...",
@@ -36,8 +36,8 @@
"syncing": "Sincronizando -",
"synced": "Sincronizada",
"messages": {
- "title": "Mensajes",
- "title-chats": "Chats",
+ "title": "Mensajes (experimental)",
+ "title-chats": "Chats (experimental)",
"empty": "Todavía no hay mensajes.",
"message-placeholder": "Mensaje",
"message-placeholder-error": "No hay fondos disponibles gastables",
diff --git a/app/translations/pt.json b/app/translations/pt.json
index 5098f8447..ae2aa0d27 100644
--- a/app/translations/pt.json
+++ b/app/translations/pt.json
@@ -1,6 +1,6 @@
{
"zingo": "Zingo",
- "version": "zingo-1.11.0 (217)",
+ "version": "zingo-1.11.0 (218)",
"loading": "carregando...",
"connectingserver": "Conectando-se ao servidor...",
"wait": "Aguarde um momento...",
@@ -36,8 +36,8 @@
"syncing": "Sincronizando -",
"synced": "Sincronizada",
"messages": {
- "title": "Mensagens",
- "title-chats": "Chats",
+ "title": "Mensagens (experimental)",
+ "title-chats": "Chats (experimental)",
"empty": "Nenhuma mensagem ainda.",
"message-placeholder": "Mensagem",
"message-placeholder-error": "Não há fundos disponíveis para gastar",
diff --git a/app/translations/ru.json b/app/translations/ru.json
index 9b1d3d9e8..6aa5c9559 100644
--- a/app/translations/ru.json
+++ b/app/translations/ru.json
@@ -1,6 +1,6 @@
{
"zingo": "Zingo",
- "version": "zingo-1.11.0 (217)",
+ "version": "zingo-1.11.0 (218)",
"loading": "загрузка...",
"connectingserver": "Подключение к серверу...",
"wait": "Пожалуйста, подождите...",
@@ -36,8 +36,8 @@
"syncing": "Синхронизация -",
"synced": "Синхронизировано",
"messages": {
- "title": "Сообщения",
- "title-chats": "Чаты",
+ "title": "Сообщения (экспериментально)",
+ "title-chats": "Чаты (экспериментально)",
"empty": "Сообщений пока нет.",
"message-placeholder": "Сообщение",
"message-placeholder-error": "Нет средств, которые можно потратить",
diff --git a/components/Header/Header.tsx b/components/Header/Header.tsx
index fb5800945..5955ce9bf 100644
--- a/components/Header/Header.tsx
+++ b/components/Header/Header.tsx
@@ -355,7 +355,7 @@ const Header: React.FunctionComponent = ({
await RPC.rpcSetInterruptSyncAfterBatch(GlobalConst.false);
// change to the history screen, just in case.
if (navigation) {
- navigation.navigate(translate('loadedapp.messages-menu') as string);
+ navigation.navigate(translate('loadedapp.history-menu') as string);
}
// scroll to top in history, just in case.
if (setScrollToTop) {
diff --git a/components/History/History.tsx b/components/History/History.tsx
index f1e852135..8741b7665 100644
--- a/components/History/History.tsx
+++ b/components/History/History.tsx
@@ -105,7 +105,7 @@ const History: React.FunctionComponent = ({
const [valueTransfersSliced, setValueTransfersSliced] = useState([]);
const [isAtTop, setIsAtTop] = useState(true);
const [loading, setLoading] = useState(true);
- const [filter, setFilter] = useState(FilterEnum.withFunds);
+ const [filter, setFilter] = useState(FilterEnum.all);
const scrollViewRef = useRef(null);
useScrollToTop(scrollViewRef);
@@ -247,49 +247,49 @@ const History: React.FunctionComponent = ({
}}>
{
- setFilter(FilterEnum.withFunds);
+ setFilter(FilterEnum.all);
setLoading(true);
}}>
- {translate('history.filter-withfunds') as string}
+ {translate('messages.filter-all') as string}
{
- setFilter(FilterEnum.all);
+ setFilter(FilterEnum.withFunds);
setLoading(true);
}}>
- {translate('messages.filter-all') as string}
+ {translate('history.filter-withfunds') as string}
diff --git a/components/History/components/ValueTransferLine.tsx b/components/History/components/ValueTransferLine.tsx
index 415e9292c..49b497b13 100644
--- a/components/History/components/ValueTransferLine.tsx
+++ b/components/History/components/ValueTransferLine.tsx
@@ -1,6 +1,6 @@
/* eslint-disable react-native/no-inline-styles */
-import React, { useContext, useEffect, useRef, useState } from 'react';
-import { Animated, Dimensions, Platform, View, TouchableOpacity } from 'react-native';
+import React, { useContext, useRef } from 'react';
+import { Animated, Platform, View, TouchableOpacity } from 'react-native';
import { useTheme } from '@react-navigation/native';
import { FontAwesomeIcon } from '@fortawesome/react-native-fontawesome';
import {
@@ -9,7 +9,7 @@ import {
faRefresh,
faComment,
faTriangleExclamation,
- faComments,
+ //faComments,
faFileLines,
faPaperPlane,
} from '@fortawesome/free-solid-svg-icons';
@@ -35,7 +35,7 @@ import 'moment/locale/ru';
import { ContextAppLoaded } from '../../../app/context';
import AddressItem from '../../Components/AddressItem';
import { RPCValueTransfersStatusEnum } from '../../../app/rpc/enums/RPCValueTransfersStatusEnum';
-import Utils from '../../../app/utils';
+//import Utils from '../../../app/utils';
type ValueTransferLineProps = {
index: number;
@@ -56,7 +56,7 @@ const ValueTransferLine: React.FunctionComponent = ({
setValueTransferDetailIndex,
setValueTransferDetailModalShowing,
nextLineWithSameTxid,
- setMessagesAddressModalShowing,
+ //setMessagesAddressModalShowing,
addressProtected,
}) => {
const context = useContext(ContextAppLoaded);
@@ -74,13 +74,13 @@ const ValueTransferLine: React.FunctionComponent = ({
const { colors } = useTheme() as unknown as ThemeType;
moment.locale(language);
- const [messagesAddress, setMessagesAddress] = useState(false);
+ //const [messagesAddress, setMessagesAddress] = useState(false);
- const dimensions = {
- width: Dimensions.get('window').width,
- height: Dimensions.get('window').height,
- };
- const maxWidthHit = useRef(false);
+ //const dimensions = {
+ // width: Dimensions.get('window').width,
+ // height: Dimensions.get('window').height,
+ //};
+ //const maxWidthHit = useRef(false);
const swipeableRef = useRef(null);
const getAmountColor = (_vt: ValueTransferType) => {
@@ -104,10 +104,11 @@ const ValueTransferLine: React.FunctionComponent = ({
return _vt.memos && _vt.memos.length > 0 && !!_vt.memos.join('');
};
- useEffect(() => {
- setMessagesAddress(Utils.isMessagesAddress(vt));
- }, [vt]);
+ //useEffect(() => {
+ // setMessagesAddress(Utils.isMessagesAddress(vt));
+ //}, [vt]);
+ /*
const handleRenderRightActions = (
progress: Animated.AnimatedInterpolation,
dragX: Animated.AnimatedInterpolation,
@@ -170,6 +171,7 @@ const ValueTransferLine: React.FunctionComponent = ({
>
);
};
+ */
const handleRenderLeftActions = (
progress: Animated.AnimatedInterpolation,
@@ -277,10 +279,8 @@ const ValueTransferLine: React.FunctionComponent = ({
void;
+ // privacy
+ setPrivacyOption: (value: boolean) => Promise;
+ // addLastSnackbar from context
+ // shielding / sending
+ setScrollToTop: (value: boolean) => void;
+ scrollToTop: boolean;
+ setScrollToBottom: (value: boolean) => void;
+ scrollToBottom: boolean;
+ closeModal: () => void;
+ // read-only wallet
+ setUfvkViewModalVisible?: (v: boolean) => void;
+ // for messages
+ sendTransaction: (s: SendPageStateClass) => Promise;
+ setServerOption: (
+ value: ServerType,
+ selectServer: SelectServerEnum,
+ toast: boolean,
+ sameServerChainName: boolean,
+ ) => Promise;
+};
+
+const MessagesModal: React.FunctionComponent = ({
+ syncingStatusMoreInfoOnClick,
+ setPrivacyOption,
+ setUfvkViewModalVisible,
+ setScrollToTop,
+ scrollToTop,
+ setScrollToBottom,
+ scrollToBottom,
+ sendTransaction,
+ setServerOption,
+ closeModal,
+}) => {
+ const context = useContext(ContextAppLoaded);
+ const { language } = context;
+ moment.locale(language);
+
+ return (
+
+ );
+};
+
+export default React.memo(MessagesModal);
diff --git a/components/Messages/components/ContactList.tsx b/components/Messages/components/ContactList.tsx
index 56793f4a5..9f7f555b0 100644
--- a/components/Messages/components/ContactList.tsx
+++ b/components/Messages/components/ContactList.tsx
@@ -10,6 +10,7 @@ import {
TouchableOpacity,
ActivityIndicator,
TextInput,
+ SafeAreaView,
} from 'react-native';
import moment from 'moment';
import 'moment/locale/es';
@@ -41,7 +42,7 @@ import ContactLine from './ContactLine';
import RegText from '../../Components/RegText';
type ContactListProps = {
- toggleMenuDrawer: () => void;
+ toggleMenuDrawer?: () => void;
syncingStatusMoreInfoOnClick: () => void;
setPrivacyOption: (value: boolean) => Promise;
setUfvkViewModalVisible?: (v: boolean) => void;
@@ -56,6 +57,8 @@ type ContactListProps = {
toast: boolean,
sameServerChainName: boolean,
) => Promise;
+ closeModal?: () => void;
+ noDrawMenu?: boolean;
};
const ContactList: React.FunctionComponent = ({
@@ -69,6 +72,8 @@ const ContactList: React.FunctionComponent = ({
scrollToBottom,
sendTransaction,
setServerOption,
+ closeModal,
+ noDrawMenu,
}) => {
const context = useContext(ContextAppLoaded);
const { translate, valueTransfers, language, server, addressBook, addresses, doRefresh, zenniesDonationAddress } =
@@ -272,7 +277,7 @@ const ContactList: React.FunctionComponent = ({
//console.log('search text:', searchText, 'field:', searchTextField);
return (
- = ({
justifyContent: 'flex-start',
width: '100%',
height: '100%',
+ backgroundColor: colors.background,
}}>
{isMessagesAddressModalShowing && (
= ({
setUfvkViewModalVisible={setUfvkViewModalVisible}
noPrivacy={true}
noBalance={true}
+ closeScreen={closeModal}
+ noDrawMenu={noDrawMenu}
/>
{searchMode && (
@@ -614,7 +622,7 @@ const ContactList: React.FunctionComponent = ({
)}
>
)}
-
+
);
};
diff --git a/components/Messages/index.js b/components/Messages/index.js
index 0f79f4267..1692f1c2c 100644
--- a/components/Messages/index.js
+++ b/components/Messages/index.js
@@ -1,5 +1,6 @@
import Messages from './Messages';
import MessagesAddress from './MessagesAddress';
import MessagesAll from './MessagesAll';
+import MessagesModal from './MessagesModal';
-export { Messages, MessagesAddress, MessagesAll };
+export { Messages, MessagesAddress, MessagesAll, MessagesModal };
diff --git a/components/Send/Send.tsx b/components/Send/Send.tsx
index 9dfbaa205..4dd4357f7 100644
--- a/components/Send/Send.tsx
+++ b/components/Send/Send.tsx
@@ -729,7 +729,7 @@ const Send: React.FunctionComponent = ({
clearState();
if (navigation) {
- navigation.navigate(translate('loadedapp.messages-menu') as string);
+ navigation.navigate(translate('loadedapp.history-menu') as string);
}
// scroll to top in history, just in case.
@@ -787,7 +787,7 @@ const Send: React.FunctionComponent = ({
clearState();
if (navigation) {
- navigation.navigate(translate('loadedapp.messages-menu') as string);
+ navigation.navigate(translate('loadedapp.history-menu') as string);
}
// scroll to top in history, just in case.
diff --git a/ios/ZingoMobile.xcodeproj/project.pbxproj b/ios/ZingoMobile.xcodeproj/project.pbxproj
index 727ae0781..1e7672e35 100644
--- a/ios/ZingoMobile.xcodeproj/project.pbxproj
+++ b/ios/ZingoMobile.xcodeproj/project.pbxproj
@@ -552,7 +552,7 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = ZingoMobile/ZingoMobile.entitlements;
- CURRENT_PROJECT_VERSION = 217;
+ CURRENT_PROJECT_VERSION = 218;
DEVELOPMENT_TEAM = 788KRST4S8;
ENABLE_BITCODE = NO;
EXCLUDED_ARCHS = "";
@@ -593,7 +593,7 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = ZingoMobile/ZingoMobile.entitlements;
- CURRENT_PROJECT_VERSION = 217;
+ CURRENT_PROJECT_VERSION = 218;
DEVELOPMENT_TEAM = 788KRST4S8;
ENABLE_BITCODE = NO;
EXCLUDED_ARCHS = "";