forked from Ivasoft/mattermost-mobile
Compare commits
9 Commits
v1.16.1
...
release-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4f474a74e | ||
|
|
50ce8b6974 | ||
|
|
910b67d47a | ||
|
|
85b7f3703f | ||
|
|
da3a0a22b2 | ||
|
|
408d184dea | ||
|
|
03488f6010 | ||
|
|
b0ff189147 | ||
|
|
0bd69fcd6b |
2
Makefile
2
Makefile
@@ -90,6 +90,8 @@ clean:
|
||||
rm -rf node_modules
|
||||
rm -f .yarninstall
|
||||
rm -rf dist
|
||||
rm -rf ios/build
|
||||
rm -rf android/app/build
|
||||
|
||||
post-install:
|
||||
./node_modules/.bin/remotedev-debugger --hostname localhost --port 5678 --injectserver
|
||||
|
||||
@@ -46,13 +46,13 @@ android_library(
|
||||
|
||||
android_build_config(
|
||||
name = 'build_config',
|
||||
package = 'com.mattermost',
|
||||
package = 'com.mattermost.rnbeta',
|
||||
)
|
||||
|
||||
android_resource(
|
||||
name = 'res',
|
||||
res = 'src/main/res',
|
||||
package = 'com.mattermost',
|
||||
package = 'com.mattermost.rnbeta',
|
||||
)
|
||||
|
||||
android_binary(
|
||||
|
||||
@@ -88,11 +88,11 @@ android {
|
||||
buildToolsVersion "25.0.1"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.mattermost.react.native"
|
||||
applicationId "com.mattermost.rnbeta"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 23
|
||||
versionCode 39
|
||||
versionName "1.0"
|
||||
versionCode 41
|
||||
versionName "1.0.1"
|
||||
multiDexEnabled true
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86"
|
||||
|
||||
@@ -36,6 +36,68 @@
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:184930218130:android:c7debfa7ea3f75a7",
|
||||
"android_client_info": {
|
||||
"package_name": "com.mattermost.rnbeta"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "184930218130-8nahrspll1opff0uogtkh2qsv8coqngo.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyCkZkU2ECVg-mmdCG5OoHHQXtKiENuvWPE"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:184930218130:android:2db4058a5b5d6506",
|
||||
"android_client_info": {
|
||||
"package_name": "com.mattermost.rn"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "184930218130-8nahrspll1opff0uogtkh2qsv8coqngo.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyCkZkU2ECVg-mmdCG5OoHHQXtKiENuvWPE"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mattermost"
|
||||
package="com.mattermost.rnbeta"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mattermost;
|
||||
package com.mattermost.rnbeta;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mattermost;
|
||||
package com.mattermost.rnbeta;
|
||||
|
||||
import com.github.yamill.orientation.OrientationPackage;
|
||||
import com.psykar.cookiemanager.CookieManagerPackage;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mattermost;
|
||||
package com.mattermost.rnbeta;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mattermost;
|
||||
package com.mattermost.rnbeta;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.util.Log;
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<resources>
|
||||
|
||||
|
||||
<string name="app_name">Mattermost</string>
|
||||
<string name="app_name">Mattermost Beta</string>
|
||||
</resources>
|
||||
|
||||
@@ -6,7 +6,7 @@ buildscript {
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.2.+'
|
||||
classpath 'com.google.gms:google-services:3.0.0'
|
||||
classpath 'com.google.gms:google-services:3.1.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
||||
@@ -33,6 +33,7 @@ export default class Badge extends PureComponent {
|
||||
super(props);
|
||||
|
||||
this.width = 0;
|
||||
this.mounted = false;
|
||||
}
|
||||
|
||||
componentWillMount() {
|
||||
@@ -45,12 +46,26 @@ export default class Badge extends PureComponent {
|
||||
});
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.mounted = true;
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
this.mounted = false;
|
||||
}
|
||||
|
||||
handlePress = () => {
|
||||
if (this.props.onPress) {
|
||||
this.props.onPress();
|
||||
}
|
||||
};
|
||||
|
||||
setNativeProps = (props) => {
|
||||
if (this.mounted && this.refs.badgeContainer) {
|
||||
this.refs.badgeContainer.setNativeProps(props);
|
||||
}
|
||||
};
|
||||
|
||||
onLayout = (e) => {
|
||||
let width;
|
||||
|
||||
@@ -66,7 +81,7 @@ export default class Badge extends PureComponent {
|
||||
this.width = width;
|
||||
const height = Math.max(e.nativeEvent.layout.height, this.props.minHeight);
|
||||
const borderRadius = height / 2;
|
||||
this.refs.badgeContainer.setNativeProps({
|
||||
this.setNativeProps({
|
||||
style: {
|
||||
width,
|
||||
height,
|
||||
@@ -74,7 +89,7 @@ export default class Badge extends PureComponent {
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.refs.badgeContainer.setNativeProps({
|
||||
this.setNativeProps({
|
||||
style: {
|
||||
display: 'flex'
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import React, {PureComponent} from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import {FlatList, RefreshControl, ScrollView, StyleSheet, View} from 'react-native';
|
||||
import {FlatList, Platform, RefreshControl, ScrollView, StyleSheet, View} from 'react-native';
|
||||
|
||||
import VirtualList from './virtual_list';
|
||||
|
||||
@@ -129,11 +129,21 @@ const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1
|
||||
},
|
||||
vertical: {
|
||||
transform: [{scaleY: -1}]
|
||||
},
|
||||
horizontal: {
|
||||
transform: [{scaleX: -1}]
|
||||
}
|
||||
vertical: Platform.select({
|
||||
android: {
|
||||
scaleY: -1
|
||||
},
|
||||
ios: {
|
||||
transform: [{scaleY: -1}]
|
||||
}
|
||||
}),
|
||||
horizontal: Platform.select({
|
||||
android: {
|
||||
scaleX: -1
|
||||
},
|
||||
ios: {
|
||||
transform: [{scaleX: -1}]
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
@@ -118,14 +118,15 @@ class SelectServer extends PureComponent {
|
||||
|
||||
onClick = async () => {
|
||||
const preUrl = urlParse(this.props.serverUrl, true);
|
||||
const url = preUrl.protocol + '//' + preUrl.host;
|
||||
const url = stripTrailingSlashes(preUrl.protocol + '//' + preUrl.host);
|
||||
let error = null;
|
||||
|
||||
Keyboard.dismiss();
|
||||
|
||||
if (isValidUrl(url)) {
|
||||
Client4.setUrl(stripTrailingSlashes(url));
|
||||
Client.setUrl(stripTrailingSlashes(url));
|
||||
Client4.setUrl(url);
|
||||
Client.setUrl(url);
|
||||
this.props.actions.handleServerUrlChanged(url);
|
||||
await this.props.actions.getPing();
|
||||
} else {
|
||||
error = {
|
||||
|
||||
@@ -6,6 +6,8 @@ import PropTypes from 'prop-types';
|
||||
import {injectIntl, intlShape} from 'react-intl';
|
||||
import {
|
||||
InteractionManager,
|
||||
Text,
|
||||
StyleSheet,
|
||||
View,
|
||||
WebView
|
||||
} from 'react-native';
|
||||
@@ -17,6 +19,9 @@ import {ViewTypes} from 'app/constants';
|
||||
import Loading from 'app/components/loading';
|
||||
import StatusBar from 'app/components/status_bar';
|
||||
import PushNotifications from 'app/push_notifications';
|
||||
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
|
||||
|
||||
const jsCode = 'window.postMessage(document.body.innerText)';
|
||||
|
||||
class SSO extends PureComponent {
|
||||
static propTypes = {
|
||||
@@ -35,6 +40,11 @@ class SSO extends PureComponent {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
error: null,
|
||||
renderWebView: false
|
||||
};
|
||||
|
||||
switch (props.ssoType) {
|
||||
case ViewTypes.GITLAB:
|
||||
this.loginUrl = `${props.serverUrl}/oauth/gitlab/mobile_login`;
|
||||
@@ -49,7 +59,7 @@ class SSO extends PureComponent {
|
||||
|
||||
componentDidMount() {
|
||||
InteractionManager.runAfterInteractions(() => {
|
||||
this.setState({renderWebview: true});
|
||||
this.setState({renderWebView: true});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -85,6 +95,25 @@ class SSO extends PureComponent {
|
||||
});
|
||||
};
|
||||
|
||||
onMessage = (event) => {
|
||||
try {
|
||||
const response = JSON.parse(event.nativeEvent.data);
|
||||
if (response) {
|
||||
const {
|
||||
id,
|
||||
message,
|
||||
request_id: rId,
|
||||
status_code: statusCode
|
||||
} = response;
|
||||
if (rId && id && message && statusCode !== 200) {
|
||||
this.setState({error: message});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// do nothing
|
||||
}
|
||||
};
|
||||
|
||||
onNavigationStateChange = (navState) => {
|
||||
const {url} = navState;
|
||||
|
||||
@@ -93,7 +122,7 @@ class SSO extends PureComponent {
|
||||
const token = res.MMAUTHTOKEN;
|
||||
|
||||
if (token) {
|
||||
this.setState({renderWebview: false});
|
||||
this.setState({renderWebView: false});
|
||||
const {
|
||||
getSession,
|
||||
handleSuccessfulLogin,
|
||||
@@ -111,18 +140,23 @@ class SSO extends PureComponent {
|
||||
};
|
||||
|
||||
render() {
|
||||
if (!this.state || !this.state.renderWebview) {
|
||||
return (
|
||||
<View style={{flex: 1}}>
|
||||
<StatusBar/>
|
||||
<Loading/>
|
||||
const {theme} = this.props;
|
||||
const {error, renderWebView} = this.state;
|
||||
const style = getStyleSheet(theme);
|
||||
|
||||
let content;
|
||||
if (!renderWebView) {
|
||||
content = (
|
||||
<Loading/>
|
||||
);
|
||||
} else if (error) {
|
||||
content = (
|
||||
<View style={style.errorContainer}>
|
||||
<Text style={style.errorText}>{error}</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<View style={{flex: 1}}>
|
||||
<StatusBar/>
|
||||
} else {
|
||||
content = (
|
||||
<WebView
|
||||
source={{uri: this.loginUrl}}
|
||||
javaScriptEnabledAndroid={true}
|
||||
@@ -132,10 +166,36 @@ class SSO extends PureComponent {
|
||||
onNavigationStateChange={this.onNavigationStateChange}
|
||||
onShouldStartLoadWithRequest={() => true}
|
||||
renderLoading={() => (<Loading/>)}
|
||||
onMessage={this.onMessage}
|
||||
injectedJavaScript={jsCode}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<View style={{flex: 1}}>
|
||||
<StatusBar/>
|
||||
{content}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const getStyleSheet = makeStyleSheetFromTheme((theme) => {
|
||||
return StyleSheet.create({
|
||||
errorContainer: {
|
||||
alignItems: 'center',
|
||||
flex: 1,
|
||||
marginTop: 40
|
||||
},
|
||||
errorText: {
|
||||
color: changeOpacity(theme.centerChannelColor, 0.4),
|
||||
fontSize: 16,
|
||||
fontWeight: '400',
|
||||
lineHeight: 23,
|
||||
paddingHorizontal: 30
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
export default injectIntl(SSO);
|
||||
|
||||
@@ -7,7 +7,7 @@ export function isValidUrl(url = '') {
|
||||
}
|
||||
|
||||
export function stripTrailingSlashes(url = '') {
|
||||
return url.replace(/\/+$/, '').trim();
|
||||
return url.trim().replace(/\/+$/, '');
|
||||
}
|
||||
|
||||
export function removeProtocol(url = '') {
|
||||
|
||||
@@ -3,7 +3,7 @@ skip_docs
|
||||
|
||||
platform :ios do
|
||||
before_all do |lane|
|
||||
if lane == :beta or lane == :release
|
||||
if lane == :beta
|
||||
ensure_git_branch(
|
||||
branch: 'master'
|
||||
)
|
||||
@@ -12,7 +12,7 @@ platform :ios do
|
||||
end
|
||||
|
||||
after_all do |lane|
|
||||
if lane == :beta or lane == :release
|
||||
if lane == :beta
|
||||
reset_git_repo(
|
||||
force: true,
|
||||
skip_clean: true
|
||||
@@ -26,7 +26,7 @@ platform :ios do
|
||||
desc 'Build Release file'
|
||||
desc 'This will also make sure the profile is up to date'
|
||||
lane :dev do
|
||||
match(type: 'adhoc')
|
||||
match(type: 'adhoc', app_identifier: 'com.mattermost.rnbeta')
|
||||
|
||||
build_ios({
|
||||
release: false,
|
||||
@@ -39,7 +39,7 @@ platform :ios do
|
||||
desc 'Submit a new Beta Build to Apple TestFlight'
|
||||
desc 'This will also make sure the profile is up to date'
|
||||
lane :beta do
|
||||
match(type: 'appstore')
|
||||
match(type: 'appstore', app_identifier: 'com.mattermost.rnbeta')
|
||||
|
||||
build_ios({
|
||||
release: true,
|
||||
@@ -83,40 +83,52 @@ platform :ios do
|
||||
|
||||
desc 'Deploy a new version to the App Store'
|
||||
lane :release do
|
||||
match(type: 'appstore')
|
||||
ensure_git_branch(
|
||||
branch: 'master'
|
||||
)
|
||||
|
||||
match(type: 'appstore', app_identifier: 'com.mattermost.rn')
|
||||
|
||||
# snapshot
|
||||
|
||||
update_app_identifier(
|
||||
xcodeproj: './ios/Mattermost.xcodeproj',
|
||||
plist_path: 'Mattermost/Info.plist',
|
||||
app_identifier: 'com.mattermost.rn'
|
||||
)
|
||||
update_info_plist(
|
||||
xcodeproj: './ios/Mattermost.xcodeproj',
|
||||
plist_path: 'Mattermost/Info.plist',
|
||||
display_name: 'Mattermost'
|
||||
)
|
||||
|
||||
sh 'cp -R ../assets/release/icons/ios/* ../ios/Mattermost/Images.xcassets/AppIcon.appiconset/'
|
||||
|
||||
build_ios({
|
||||
release: true,
|
||||
increment_build: true,
|
||||
ensure_git_status_clean: true,
|
||||
increment_build: false,
|
||||
ensure_git_status_clean: false,
|
||||
method: 'app-store'
|
||||
})
|
||||
|
||||
deliver(force: true)
|
||||
# deliver(
|
||||
# force: true,
|
||||
# skip_screenshots: true,
|
||||
# skip_metadata: true,
|
||||
# submit_for_review: false, #lets try this after the first release
|
||||
# automatic_release: false #lets try this after the first release
|
||||
# )
|
||||
|
||||
commit = last_git_commit
|
||||
|
||||
push_to_git_remote(
|
||||
remote: 'origin',
|
||||
local_branch: 'ios-release',
|
||||
force: false,
|
||||
tags: false
|
||||
)
|
||||
|
||||
unless ENV['GITHUB_TOKEN'].nil?
|
||||
create_pull_request(
|
||||
api_token: ENV['GITHUB_TOKEN'],
|
||||
repo: 'mattermost/mattermost-mobile',
|
||||
head: 'mattermost:ios-release',
|
||||
base: 'master',
|
||||
title: "IOS #{commit[:message]}"
|
||||
)
|
||||
end
|
||||
### We are going to publish the app to the testflight first and not deliver it directly to the app store
|
||||
pilot(skip_waiting_for_build_processing: true)
|
||||
|
||||
# frameit
|
||||
|
||||
reset_git_repo(
|
||||
force: true,
|
||||
skip_clean: true
|
||||
)
|
||||
|
||||
if ENV['MATTERMOST_WEBHOOK_URL']
|
||||
appstore_url = ENV['APPSTORE_URL']
|
||||
send_message_for_ios(
|
||||
@@ -198,7 +210,7 @@ end
|
||||
|
||||
platform :android do
|
||||
before_all do |lane|
|
||||
if lane == :alpha or lane == :release
|
||||
if lane == :alpha
|
||||
ensure_git_branch(
|
||||
branch: 'master'
|
||||
)
|
||||
@@ -207,7 +219,7 @@ platform :android do
|
||||
end
|
||||
|
||||
after_all do |lane|
|
||||
if lane == :alpha or lane == :release
|
||||
if lane == :alpha
|
||||
reset_git_repo(
|
||||
force: true,
|
||||
skip_clean: true
|
||||
@@ -268,36 +280,84 @@ platform :android do
|
||||
|
||||
desc 'Deploy a new version to Google Play'
|
||||
lane :release do
|
||||
ensure_git_branch(
|
||||
branch: 'master'
|
||||
)
|
||||
android_change_package_identifier(newIdentifier: 'com.mattermost.rn', manifest: './android/app/src/main/AndroidManifest.xml')
|
||||
android_change_string_app_name(newName: 'Mattermost', stringsFile: './android/app/src/main/res/values/strings.xml')
|
||||
android_update_application_id(app_folder_name: 'android/app', application_id: 'com.mattermost.rn')
|
||||
|
||||
sh 'mv ../android/app/src/main/java/com/mattermost/rnbeta/ ../android/app/src/main/java/com/mattermost/rn/'
|
||||
sh 'cp -R ../assets/release/icons/android/* ../android/app/src/main/res/'
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainApplication.java',
|
||||
old_string: 'return BuildConfig.DEBUG;',
|
||||
new_string: 'return false;'
|
||||
)
|
||||
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainApplication.java',
|
||||
old_string: 'package com.mattermost.rnbeta;',
|
||||
new_string: 'package com.mattermost.rn;'
|
||||
)
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/src/main/java/com/mattermost/rn/CustomPushNotification.java',
|
||||
old_string: 'package com.mattermost.rnbeta;',
|
||||
new_string: 'package com.mattermost.rn;'
|
||||
)
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainActivity.java',
|
||||
old_string: 'package com.mattermost.rnbeta;',
|
||||
new_string: 'package com.mattermost.rn;'
|
||||
)
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/src/main/java/com/mattermost/rn/NotificationsLifecycleFacade.java',
|
||||
old_string: 'package com.mattermost.rnbeta;',
|
||||
new_string: 'package com.mattermost.rn;'
|
||||
)
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './android/app/BUCK',
|
||||
old_string: 'package com.mattermost.rnbeta;',
|
||||
new_string: 'package com.mattermost.rn;'
|
||||
)
|
||||
|
||||
find_replace_string(
|
||||
path_to_file: './fastlane/metadata/android/en-US/title.txt',
|
||||
old_string: 'Mattermost Beta',
|
||||
new_string: 'Mattermost;'
|
||||
)
|
||||
|
||||
build_android({
|
||||
release: true,
|
||||
increment_build: true,
|
||||
ensure_git_status_clean: true
|
||||
increment_build: false,
|
||||
ensure_git_status_clean: false
|
||||
})
|
||||
|
||||
# supply(
|
||||
# track: "production",
|
||||
# apk: "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}",
|
||||
# )
|
||||
|
||||
# We are going to upload the build to the beta lane and not directly to production so it can be promoted later
|
||||
supply(
|
||||
track: "production",
|
||||
track: 'beta',
|
||||
apk: "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}",
|
||||
)
|
||||
|
||||
commit = last_git_commit
|
||||
|
||||
push_to_git_remote(
|
||||
remote: 'origin',
|
||||
local_branch: 'android-release',
|
||||
force: false,
|
||||
tags: false
|
||||
sh 'mv ../android/app/src/main/java/com/mattermost/rn/ ../android/app/src/main/java/com/mattermost/rnbeta/'
|
||||
|
||||
reset_git_repo(
|
||||
force: true,
|
||||
skip_clean: true
|
||||
)
|
||||
|
||||
unless ENV['GITHUB_TOKEN'].nil?
|
||||
create_pull_request(
|
||||
api_token: ENV['GITHUB_TOKEN'],
|
||||
repo: 'mattermost/mattermost-mobile',
|
||||
head: 'mattermost:android-release',
|
||||
base: 'master',
|
||||
title: "Android #{commit[:message]}"
|
||||
)
|
||||
end
|
||||
|
||||
if ENV['MATTERMOST_WEBHOOK_URL']
|
||||
google_play_url = ENV['GOOGLE_PLAY_URL']
|
||||
send_message_for_android(
|
||||
|
||||
@@ -24,7 +24,7 @@ GEM
|
||||
faraday_middleware (0.11.0.1)
|
||||
faraday (>= 0.7.4, < 1.0)
|
||||
fastimage (2.1.0)
|
||||
fastlane (2.44.1)
|
||||
fastlane (2.47.0)
|
||||
CFPropertyList (>= 2.3, < 3.0.0)
|
||||
addressable (>= 2.3, < 3.0.0)
|
||||
babosa (>= 1.0.2, < 2.0.0)
|
||||
@@ -64,8 +64,8 @@ GEM
|
||||
mime-types (~> 3.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.0)
|
||||
googleauth (0.5.1)
|
||||
faraday (~> 0.9)
|
||||
googleauth (0.5.2)
|
||||
faraday (~> 0.12)
|
||||
jwt (~> 1.4)
|
||||
logging (~> 2.0)
|
||||
memoist (~> 0.12)
|
||||
@@ -118,7 +118,7 @@ GEM
|
||||
unf_ext (0.0.7.4)
|
||||
unicode-display_width (1.3.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.5.0)
|
||||
xcodeproj (1.5.1)
|
||||
CFPropertyList (~> 2.3.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
|
||||
@@ -1 +1 @@
|
||||
Mattermost 2017 - Beta
|
||||
Mattermost Beta
|
||||
|
||||
@@ -1320,7 +1320,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 39;
|
||||
CURRENT_PROJECT_VERSION = 41;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@@ -1338,7 +1338,7 @@
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta;
|
||||
PRODUCT_NAME = Mattermost;
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
@@ -1353,7 +1353,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 39;
|
||||
CURRENT_PROJECT_VERSION = 41;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@@ -1371,7 +1371,7 @@
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta;
|
||||
PRODUCT_NAME = Mattermost;
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
|
||||
@@ -1,94 +1,96 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>39</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSExceptionDomains</key>
|
||||
<dict>
|
||||
<key>localhost</key>
|
||||
<dict>
|
||||
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Take a Photo or Video and upload it to your mattermost instance</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string/>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>Upload Photos and Videos to your Mattermost instance</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialCommunityIcons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.ttf</string>
|
||||
<string>SimpleLineIcons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
<string>OpenSans-Bold.ttf</string>
|
||||
<string>OpenSans-BoldItalic.ttf</string>
|
||||
<string>OpenSans-ExtraBold.ttf</string>
|
||||
<string>OpenSans-ExtraBoldItalic.ttf</string>
|
||||
<string>OpenSans-Italic.ttf</string>
|
||||
<string>OpenSans-Light.ttf</string>
|
||||
<string>OpenSans-LightItalic.ttf</string>
|
||||
<string>OpenSans-Regular.ttf</string>
|
||||
<string>OpenSans-Semibold.ttf</string>
|
||||
<string>OpenSans-SemiboldItalic.ttf</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Mattermost Beta</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>41</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
<key>NSExceptionDomains</key>
|
||||
<dict>
|
||||
<key>localhost</key>
|
||||
<dict>
|
||||
<key>NSExceptionAllowsInsecureHTTPLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Take a Photo or Video and upload it to your mattermost instance</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>Upload Photos and Videos to your Mattermost instance</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialCommunityIcons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.ttf</string>
|
||||
<string>SimpleLineIcons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
<string>OpenSans-Bold.ttf</string>
|
||||
<string>OpenSans-BoldItalic.ttf</string>
|
||||
<string>OpenSans-ExtraBold.ttf</string>
|
||||
<string>OpenSans-ExtraBoldItalic.ttf</string>
|
||||
<string>OpenSans-Italic.ttf</string>
|
||||
<string>OpenSans-Light.ttf</string>
|
||||
<string>OpenSans-LightItalic.ttf</string>
|
||||
<string>OpenSans-Regular.ttf</string>
|
||||
<string>OpenSans-Semibold.ttf</string>
|
||||
<string>OpenSans-SemiboldItalic.ttf</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>1.0.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>39</string>
|
||||
<string>41</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"commonmark-react-renderer": "hmhealey/commonmark-react-renderer#11bf3a089900eda6f3e951f8b8c80663cff4d6a3",
|
||||
"deep-equal": "1.0.1",
|
||||
"intl": "1.2.5",
|
||||
"mattermost-redux": "mattermost/mattermost-redux#master",
|
||||
"mattermost-redux": "mattermost/mattermost-redux#rn-release-1.0.1",
|
||||
"prop-types": "15.5.10",
|
||||
"react": "16.0.0-alpha.6",
|
||||
"react-intl": "2.3.0",
|
||||
|
||||
@@ -3643,9 +3643,9 @@ makeerror@1.0.x:
|
||||
dependencies:
|
||||
tmpl "1.0.x"
|
||||
|
||||
mattermost-redux@mattermost/mattermost-redux#master:
|
||||
mattermost-redux@mattermost/mattermost-redux#rn-release-1.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/26b897a943a2095bdc793f28c10415441859ad6f"
|
||||
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/af1095f4b6bbeec4004daa2fe879472de90d85e0"
|
||||
dependencies:
|
||||
deep-equal "1.0.1"
|
||||
harmony-reflect "1.5.1"
|
||||
|
||||
Reference in New Issue
Block a user