diff --git a/app/mobile/ios/Databag.xcodeproj/project.pbxproj b/app/mobile/ios/Databag.xcodeproj/project.pbxproj
index b98a5ab3..47948aab 100644
--- a/app/mobile/ios/Databag.xcodeproj/project.pbxproj
+++ b/app/mobile/ios/Databag.xcodeproj/project.pbxproj
@@ -310,7 +310,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 15;
+ CURRENT_PROJECT_VERSION = 16;
DEVELOPMENT_TEAM = 3P65PQ7SUR;
ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -348,7 +348,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 15;
+ CURRENT_PROJECT_VERSION = 16;
DEVELOPMENT_TEAM = 3P65PQ7SUR;
INFOPLIST_FILE = Databag/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Databag;
diff --git a/app/mobile/src/access/admin/Admin.jsx b/app/mobile/src/access/admin/Admin.jsx
index 210a2d6a..65228e67 100644
--- a/app/mobile/src/access/admin/Admin.jsx
+++ b/app/mobile/src/access/admin/Admin.jsx
@@ -1,4 +1,4 @@
-import { ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
+import { KeyboardAvoidingView, ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
import { styles } from './Admin.styled';
import Ionicons from '@expo/vector-icons/AntDesign';
import { useAdmin } from './useAdmin.hook';
@@ -21,7 +21,7 @@ export function Admin() {
}
return (
-
+
@@ -70,6 +70,6 @@ export function Admin() {
)}
-
+
);
}
diff --git a/app/mobile/src/access/create/Create.jsx b/app/mobile/src/access/create/Create.jsx
index a15e9beb..aadddb78 100644
--- a/app/mobile/src/access/create/Create.jsx
+++ b/app/mobile/src/access/create/Create.jsx
@@ -1,4 +1,4 @@
-import { ScrollView, ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
+import { KeyboardAvoidingView, ScrollView, ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
import { styles } from './Create.styled';
import Ionicons from '@expo/vector-icons/AntDesign';
import { useCreate } from './useCreate.hook';
@@ -25,7 +25,7 @@ export function Create() {
const validUsername = (state.username && state.usernameChecked && state.usernameValid);
return (
-
+
@@ -154,6 +154,6 @@ export function Create() {
-
+
);
}
diff --git a/app/mobile/src/access/login/Login.jsx b/app/mobile/src/access/login/Login.jsx
index 2ad48716..ff049846 100644
--- a/app/mobile/src/access/login/Login.jsx
+++ b/app/mobile/src/access/login/Login.jsx
@@ -1,4 +1,4 @@
-import { ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
+import { KeyboardAvoidingView, ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
import { styles } from './Login.styled';
import Ionicons from '@expo/vector-icons/AntDesign';
import { useLogin } from './useLogin.hook';
@@ -21,7 +21,7 @@ export function Login() {
}
return (
-
+
@@ -85,6 +85,6 @@ export function Login() {
-
+
);
}
diff --git a/app/mobile/src/access/reset/Reset.jsx b/app/mobile/src/access/reset/Reset.jsx
index edcfb559..77b35b81 100644
--- a/app/mobile/src/access/reset/Reset.jsx
+++ b/app/mobile/src/access/reset/Reset.jsx
@@ -1,4 +1,4 @@
-import { ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
+import { KeyboardAvoidingView, ActivityIndicator, Alert, Text, TextInput, View, TouchableOpacity } from 'react-native';
import { styles } from './Reset.styled';
import Ionicons from '@expo/vector-icons/AntDesign';
import { useReset } from './useReset.hook';
@@ -21,7 +21,7 @@ export function Reset() {
}
return (
-
+
@@ -65,6 +65,6 @@ export function Reset() {
-
+
);
}
diff --git a/app/mobile/src/session/channels/Channels.jsx b/app/mobile/src/session/channels/Channels.jsx
index 0f849795..313aff5e 100644
--- a/app/mobile/src/session/channels/Channels.jsx
+++ b/app/mobile/src/session/channels/Channels.jsx
@@ -62,7 +62,7 @@ export function ChannelsBody({ state, actions, openConversation }) {
New Topic:
+ autoCapitalize="words" placeholder="Subject (optional)" placeholderTextColor={Colors.grey} />
Members:
{ state.connected.length == 0 && (
diff --git a/app/mobile/src/session/channels/useChannels.hook.js b/app/mobile/src/session/channels/useChannels.hook.js
index ae39f53a..e9ae1f27 100644
--- a/app/mobile/src/session/channels/useChannels.hook.js
+++ b/app/mobile/src/session/channels/useChannels.hook.js
@@ -73,10 +73,12 @@ export function useChannels() {
let updated = false;
const login = app.state.loginTimestamp;
- const update = item?.summary?.lastTopic?.created;
- if (update && login && login < update) {
+ const { created, guid } = item?.summary?.lastTopic;
+ if (created && login && login < created) {
if (!item.readRevision || item.readRevision < item.revision) {
- updated = true;
+ if (profile.state.profile.guid != guid) {
+ updated = true;
+ }
}
}
@@ -147,9 +149,7 @@ export function useChannels() {
}
}
- const timestamp = item?.summary?.lastTopic?.created;
-
- return { cardId: item.cardId, channelId: item.channelId, contacts, logo, subject, message, updated, revision: item.revision, timestamp, blocked: item.blocked === 1 };
+ return { cardId: item.cardId, channelId: item.channelId, contacts, logo, subject, message, updated, revision: item.revision, timestamp: created, blocked: item.blocked === 1 };
}
useEffect(() => {
diff --git a/app/mobile/src/session/details/Details.jsx b/app/mobile/src/session/details/Details.jsx
index d90202e4..c1123dd4 100644
--- a/app/mobile/src/session/details/Details.jsx
+++ b/app/mobile/src/session/details/Details.jsx
@@ -144,7 +144,7 @@ export function DetailsBody({ channel, clearConversation }) {
Edit Subject:
+ autoCapitalize="words" placeholder="Subject" placeholderTextColor={Colors.grey} />
diff --git a/app/mobile/src/session/profile/Profile.jsx b/app/mobile/src/session/profile/Profile.jsx
index 3f8a7c9e..0849bde0 100644
--- a/app/mobile/src/session/profile/Profile.jsx
+++ b/app/mobile/src/session/profile/Profile.jsx
@@ -251,15 +251,16 @@ export function Profile() {
Edit Details:
+ autoCapitalize="words" placeholder="Name" placeholderTextColor={Colors.grey} />
+ autoCapitalize="words" placeholder="Location" placeholderTextColor={Colors.grey} />
+ autoCapitalize="sentences" placeholder="Description" multiline={true}
+ placeholderTextColor={Colors.grey} />
@@ -284,7 +285,7 @@ export function Profile() {
Change Login:
+ autoCapitalize={'none'} placeholder="Username" placeholderTextColor={Colors.grey} />
{ state.checked && state.available && (
)}
@@ -295,7 +296,8 @@ export function Profile() {
{ !state.showPassword && (
+ autoCapitalize={'none'} secureTextEntry={true} placeholder="Password"
+ placeholderTextColor={Colors.grey} />
@@ -304,7 +306,8 @@ export function Profile() {
{ state.showPassword && (
+ autoCapitalize={'none'} secureTextEntry={false} placeholder="Password"
+ placeholderTextColor={Colors.grey} />
@@ -313,7 +316,8 @@ export function Profile() {
{ !state.showConfirm && (
+ autoCapitalize={'none'} secureTextEntry={true} placeholder="Confirm"
+ placeholderTextColor={Colors.grey} />
@@ -322,7 +326,8 @@ export function Profile() {
{ state.showConfirm && (
+ autoCapitalize={'none'} secureTextEntry={false} placeholder="Confirm"
+ placeholderTextColor={Colors.grey} />
diff --git a/app/mobile/src/session/registry/useRegistry.hook.js b/app/mobile/src/session/registry/useRegistry.hook.js
index 09fc0664..47baf455 100644
--- a/app/mobile/src/session/registry/useRegistry.hook.js
+++ b/app/mobile/src/session/registry/useRegistry.hook.js
@@ -34,7 +34,7 @@ export function useRegistry() {
useEffect(() => {
const server = profile.state.profile.node;
updateState({ server });
- getAccounts(server);
+ getAccounts(server, true);
}, [profile]);
const setAccountItem = (item) => {