Commit bcc1eb5a authored by jbuechele's avatar jbuechele
Browse files

Merge branch 'develop' into v2.8.0

# Conflicts:
#	app/i18n/locales/en.json
parents 98969c67 4af97f19
......@@ -1419,6 +1419,7 @@ Array [
</Text>
</View>
<View
accessibilityLabel="Use"
accessible={true}
focusable={true}
onClick={[Function]}
......@@ -1581,6 +1582,7 @@ Array [
</Text>
</View>
<View
accessibilityLabel="Use"
accessible={true}
focusable={true}
onClick={[Function]}
......@@ -41244,6 +41246,7 @@ exports[`Storyshots Message Show a button as attachment 1`] = `
Test Button
</Text>
<View
accessibilityLabel="Text button"
accessible={true}
focusable={true}
onClick={[Function]}
......@@ -151,6 +151,8 @@ android {
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" // See note below!
}
resValue "string", "rn_config_reader_custom_package", "chat.rocket.reactnative"
testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
signingConfigs {
......@@ -203,6 +205,10 @@ android {
dimension = "app"
buildConfigField "boolean", "IS_OFFICIAL", "false"
}
e2e {
dimension = "app"
buildConfigField "boolean", "IS_OFFICIAL", "false"
}
foss {
dimension = "type"
buildConfigField "boolean", "FDROID_BUILD", "true"
......@@ -230,6 +236,16 @@ android {
java.srcDirs = ['src/main/java', 'src/play/java']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
e2ePlayDebug {
java.srcDirs = ['src/main/java', 'src/play/java']
res.srcDirs = ['src/experimental/res']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
e2ePlayRelease {
java.srcDirs = ['src/main/java', 'src/play/java']
res.srcDirs = ['src/experimental/res']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
}
applicationVariants.all { variant ->
......@@ -294,6 +310,8 @@ dependencies {
implementation "com.tencent:mmkv-static:1.2.1"
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.9.0"
androidTestImplementation('com.wix:detox:+') { transitive = true }
androidTestImplementation 'junit:junit:4.12'
}
// Run this once to be able to run the application with BUCK
......
// Replace "com.example" here and below with your app's package name from the top of MainActivity.java
package chat.rocket.reactnative;
import com.wix.detox.Detox;
import com.wix.detox.config.DetoxConfig;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.rule.ActivityTestRule;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class DetoxTest {
@Rule
// Replace 'MainActivity' with the value of android:name entry in
// <activity> in AndroidManifest.xml
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
@Test
public void runDetoxTests() {
DetoxConfig detoxConfig = new DetoxConfig();
detoxConfig.idlePolicyConfig.masterTimeoutSec = 90;
detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60;
detoxConfig.rnContextLoadTimeoutSec = (chat.rocket.reactnative.BuildConfig.DEBUG ? 180 : 60);
Detox.runTests(mActivityRule, detoxConfig);
}
}
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools">
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user"
tools:ignore="AcceptsUserCertificates" />
</trust-anchors>
</base-config>
</network-security-config>
\ No newline at end of file
......@@ -53,6 +53,10 @@ allprojects {
url("$rootDir/../node_modules/jsc-android/dist")
}
maven {
url "$rootDir/../node_modules/detox/Detox-android"
}
maven {
url jitsi_url
}
......
......@@ -124,7 +124,11 @@ const ActionSheet = React.memo(
const renderFooter = () =>
data?.hasCancel ? (
<Button onPress={hide} style={[styles.button, { backgroundColor: themes[theme].auxiliaryBackground }]} theme={theme}>
<Button
onPress={hide}
style={[styles.button, { backgroundColor: themes[theme].auxiliaryBackground }]}
theme={theme}
accessibilityLabel={I18n.t('Cancel')}>
<Text style={[styles.text, { color: themes[theme].bodyText }]}>{I18n.t('Cancel')}</Text>
</Button>
) : null;
......
......@@ -70,6 +70,7 @@ export default class Button extends React.PureComponent<Partial<IButtonProps>, a
disabled && styles.disabled,
style
]}
accessibilityLabel={title}
{...otherProps}>
{loading ? (
<ActivityIndicator color={textColor} />
......
......@@ -2,7 +2,7 @@ import React from 'react';
import { StyleSheet, View } from 'react-native';
interface IHeaderButtonContainer {
children: JSX.Element;
children: React.ReactNode;
left?: boolean;
}
......
......@@ -20,7 +20,7 @@ interface IPasscodeBase {
previousPasscode?: string;
title: string;
subtitle?: string;
showBiometry?: string;
showBiometry?: boolean;
onEndProcess: Function;
onError?: Function;
onBiometryPress?(): void;
......
......@@ -15,7 +15,7 @@ import I18n from '../../i18n';
interface IPasscodePasscodeEnter {
theme: string;
hasBiometry: string;
hasBiometry: boolean;
finishProcess: Function;
}
......
......@@ -8,6 +8,7 @@ interface IStatus {
status: string;
size: number;
style?: StyleProp<TextStyle>;
testID?: string;
}
const Status = React.memo(({ style, status = 'offline', size = 32, ...props }: IStatus) => {
......
......@@ -43,7 +43,11 @@ const Content = React.memo(
content = <Text style={[styles.text, { color: themes[props.theme].bodyText }]}>{I18n.t('Sent_an_attachment')}</Text>;
} else if (props.isEncrypted) {
content = (
<Text style={[styles.textInfo, { color: themes[props.theme].auxiliaryText }]}>{I18n.t('Encrypted_message')}</Text>
<Text
style={[styles.textInfo, { color: themes[props.theme].auxiliaryText }]}
accessibilityLabel={I18n.t('Encrypted_message')}>
{I18n.t('Encrypted_message')}
</Text>
);
} else {
const { baseUrl, user, onLinkPress } = useContext(MessageContext);
......
// https://github.com/RocketChat/Rocket.Chat/blob/develop/definition/ITeam.ts
export const TEAM_TYPE = {
exports.TEAM_TYPE = {
PUBLIC: 0,
PRIVATE: 1
};
......@@ -782,5 +782,8 @@
"No_canned_responses": "Pas de réponses standardisées",
"Send_email_confirmation": "Envoyer un e-mail de confirmation",
"sending_email_confirmation": "envoi d'e-mail de confirmation",
"Enable_Message_Parser": "Activer le parseur de messages"
"Enable_Message_Parser": "Activer le parseur de messages",
"Unsupported_format": "Format non supporté",
"Downloaded_file": "Fichier téléchargé",
"Error_Download_file": "Erreur lors du téléchargement du fichier"
}
\ No newline at end of file
......@@ -782,5 +782,8 @@
"No_canned_responses": "Geen standaardantwoorden",
"Send_email_confirmation": "Stuur e-mailbevestiging",
"sending_email_confirmation": "e-mailbevestiging aan het verzenden",
"Enable_Message_Parser": "Berichtparser inschakelen"
"Enable_Message_Parser": "Berichtparser inschakelen",
"Unsupported_format": "Niet ondersteund formaat",
"Downloaded_file": "Gedownload bestand",
"Error_Download_file": "Fout tijdens het downloaden van bestand"
}
\ No newline at end of file
......@@ -737,4 +737,4 @@
"Unsupported_format": "Formato não suportado",
"Downloaded_file": "Arquivo baixado",
"Error_Download_file": "Erro ao baixar o arquivo"
}
}
\ No newline at end of file
......@@ -782,5 +782,8 @@
"No_canned_responses": "Нет заготовленных ответов",
"Send_email_confirmation": "Отправить электронное письмо с подтверждением",
"sending_email_confirmation": "отправка подтверждения по электронной почте",
"Enable_Message_Parser": "Включить парсер сообщений"
"Enable_Message_Parser": "Включить парсер сообщений",
"Unsupported_format": "Неподдерживаемый формат",
"Downloaded_file": "Скачанный файл",
"Error_Download_file": "Ошибка при скачивании файла"
}
\ No newline at end of file
import React from 'react';
import { Text, View } from 'react-native';
import { Text, View, ViewStyle } from 'react-native';
import Touch from '../../utils/touch';
import Avatar from '../../containers/Avatar';
......@@ -10,7 +10,7 @@ import { themes } from '../../constants/colors';
export { ROW_HEIGHT };
interface IDirectoryItemLabel {
text: string;
text?: string;
theme: string;
}
......@@ -21,9 +21,9 @@ interface IDirectoryItem {
type: string;
onPress(): void;
testID: string;
style: any;
rightLabel: string;
rid: string;
style?: ViewStyle;
rightLabel?: string;
rid?: string;
theme: string;
teamMain?: boolean;
}
......@@ -32,7 +32,7 @@ const DirectoryItemLabel = React.memo(({ text, theme }: IDirectoryItemLabel) =>
if (!text) {
return null;
}
return <Text style={[styles.directoryItemLabel, { color: themes[theme!].auxiliaryText }]}>{text}</Text>;
return <Text style={[styles.directoryItemLabel, { color: themes[theme].auxiliaryText }]}>{text}</Text>;
});
const DirectoryItem = ({
......
......@@ -4,7 +4,7 @@ import { KeyboardAwareScrollView, KeyboardAwareScrollViewProps } from '@codler/r
import scrollPersistTaps from '../utils/scrollPersistTaps';
interface IKeyboardViewProps extends KeyboardAwareScrollViewProps {
keyboardVerticalOffset: number;
keyboardVerticalOffset?: number;
scrollEnabled?: boolean;
children: React.ReactNode;
}
......
......@@ -46,7 +46,7 @@ interface IUserItem {
testID: string;
onLongPress?: () => void;
style?: StyleProp<ViewStyle>;
icon: string;
icon?: string;
theme: string;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment