forked from Ivasoft/mattermost-mobile
Compare commits
7 Commits
release-1.
...
v1.41.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
121656038c | ||
|
|
064b1883ce | ||
|
|
1282ff1e8e | ||
|
|
6adbc03faa | ||
|
|
836dc521b4 | ||
|
|
8a3eb36911 | ||
|
|
a7dfc99cf6 |
@@ -455,10 +455,10 @@ workflows:
|
||||
build:
|
||||
jobs:
|
||||
- test
|
||||
- check-deps:
|
||||
context: sast-webhook
|
||||
requires:
|
||||
- test
|
||||
# - check-deps:
|
||||
# context: sast-webhook
|
||||
# requires:
|
||||
# - test
|
||||
|
||||
- build-android-release:
|
||||
context: mattermost-mobile-android-release
|
||||
|
||||
@@ -132,8 +132,8 @@ android {
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
||||
versionCode 345
|
||||
versionName "1.40.0"
|
||||
versionCode 347
|
||||
versionName "1.41.0"
|
||||
multiDexEnabled = true
|
||||
testBuildType System.getProperty('testBuildType', 'debug')
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
|
||||
@@ -96,20 +96,25 @@ public class RealPathUtil {
|
||||
File tmpFile;
|
||||
String fileName = null;
|
||||
|
||||
if (uri == null || uri.isRelative()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Try and get the filename from the Uri
|
||||
try {
|
||||
Cursor returnCursor =
|
||||
context.getContentResolver().query(uri, null, null, null, null);
|
||||
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
|
||||
returnCursor.moveToFirst();
|
||||
fileName = returnCursor.getString(nameIndex);
|
||||
fileName = sanitizeFilename(returnCursor.getString(nameIndex));
|
||||
|
||||
} catch (Exception e) {
|
||||
// just continue to get the filename with the last segment of the path
|
||||
}
|
||||
|
||||
try {
|
||||
if (fileName == null) {
|
||||
fileName = uri.getLastPathSegment().toString().trim();
|
||||
if (TextUtils.isEmpty(fileName)) {
|
||||
fileName = sanitizeFilename(uri.getLastPathSegment().toString().trim());
|
||||
}
|
||||
|
||||
|
||||
@@ -230,4 +235,13 @@ public class RealPathUtil {
|
||||
|
||||
fileOrDirectory.delete();
|
||||
}
|
||||
|
||||
private static String sanitizeFilename(String filename) {
|
||||
if (filename == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
File f = new File(filename);
|
||||
return f.getName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -564,6 +564,7 @@
|
||||
"password_send.reset": "Restablecer mi contraseña",
|
||||
"permalink.error.access": "El Enlace permanente pertenece a un mensaje eliminado o a un canal al cual no tienes acceso.",
|
||||
"permalink.error.link_not_found": "Enlace no encontrado",
|
||||
"permalink.show_dialog_warn.cancel": "Cancelar",
|
||||
"post_body.check_for_out_of_channel_groups_mentions.message": "no fueron notificados por esta mención porque no se encuentra en este canal. No pueden ser agregados al canal porque no son miembros de los grupos enlazados. Para agregarlos a este canal, deben ser agregados a alguno de los grupos enlazados.",
|
||||
"post_body.check_for_out_of_channel_mentions.link.and": " y ",
|
||||
"post_body.check_for_out_of_channel_mentions.link.private": "agregarlos a este canal privado",
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
"intro_messages.group_message": "This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.",
|
||||
"intro_messages.noCreator": "이것은 {date}에 생성된 {name} 채널의 시작입니다.",
|
||||
"intro_messages.onlyInvited": " 초대받은 회원만 이 비공개 그룹을 볼 수 있습니다.",
|
||||
"last_users_message.added_to_channel.type": "{actor}님이 **채널에 추가했습니다**.",
|
||||
"last_users_message.added_to_channel.type": "{actor}님을 통해 **채널에 추가되었습니다**.",
|
||||
"last_users_message.added_to_team.type": "{actor}님이 **팀에 추가했습니다**.",
|
||||
"last_users_message.first": "{firstUser} 님과 ",
|
||||
"last_users_message.joined_channel.type": "**채널에 들어왔습니다**.",
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
"mobile.loading_posts": "Berichten aan het laden...",
|
||||
"mobile.login_options.choose_title": "Kies je loginmethode",
|
||||
"mobile.long_post_title": "{channelName} - Bericht",
|
||||
"mobile.mailTo.error.text": "Kan het e-mailprogramme niet openen.",
|
||||
"mobile.mailTo.error.text": "Kan het e-mailprogramma niet openen.",
|
||||
"mobile.mailTo.error.title": "Fout",
|
||||
"mobile.managed.blocked_by": "Geblokkeerd door {vendor}",
|
||||
"mobile.managed.exit": "Afsluiten",
|
||||
|
||||
@@ -84,11 +84,11 @@ lane :set_app_version do
|
||||
unless version_number.nil? || version_number.empty?
|
||||
package = load_config_json('../package.json')
|
||||
package['version'] = version_number
|
||||
save_config_json('../package.json', package)
|
||||
save_json_as_file('../package.json', package)
|
||||
|
||||
lock = load_config_json('../package-lock.json')
|
||||
lock['version'] = version_number
|
||||
save_config_json('../package-lock.json', lock)
|
||||
save_json_as_file('../package-lock.json', lock)
|
||||
|
||||
android_set_version_name(
|
||||
gradle_file: './android/app/build.gradle',
|
||||
@@ -166,7 +166,7 @@ lane :configure do
|
||||
end
|
||||
|
||||
# Save the config.json file
|
||||
save_config_json('../dist/assets/config.json', json)
|
||||
save_json_as_file('../dist/assets/config.json', json)
|
||||
|
||||
configured = true
|
||||
end
|
||||
@@ -630,7 +630,7 @@ platform :android do
|
||||
json['TelemetryEnabled'] = true
|
||||
json['TelemetryUrl'] = ENV['TELEMETRY_URL']
|
||||
json['TelemetryApiKey'] = ENV['TELEMETRY_API_KEY']
|
||||
save_config_json('../dist/assets/config.json', json)
|
||||
save_json_as_file('../dist/assets/config.json', json)
|
||||
|
||||
beta_dir = './android/app/src/main/java/com/mattermost/rnbeta/'
|
||||
|
||||
@@ -809,7 +809,7 @@ def load_config_json(json_path)
|
||||
JSON.parse(config_file)
|
||||
end
|
||||
|
||||
def save_config_json(json_path, json)
|
||||
def save_json_as_file(json_path, json)
|
||||
File.open(json_path, 'w') do |f|
|
||||
f.write(JSON.pretty_generate(json))
|
||||
f.write("\n")
|
||||
@@ -849,9 +849,37 @@ def submit_to_testflight(ipa_path)
|
||||
|
||||
if !ipa.nil?
|
||||
UI.success("ipa file #{ipa}")
|
||||
pilot(
|
||||
ipa: ipa
|
||||
)
|
||||
unless ENV['IOS_API_KEY_ID'].nil? || ENV['IOS_API_KEY_ID'].empty? ||
|
||||
ENV['IOS_API_ISSUER_ID'].nil? || ENV['IOS_API_ISSUER_ID'].empty? ||
|
||||
ENV['IOS_API_KEY'].nil? || ENV['IOS_API_KEY'].empty?
|
||||
api_key_path = "#{ENV['IOS_API_KEY_ID']}.p8"
|
||||
File.open("../#{api_key_path}", 'w') do |f|
|
||||
key_string = ENV['IOS_API_KEY']
|
||||
p8_array = key_string.split('\n')
|
||||
p8_array.each_with_index do |value, index|
|
||||
f.write(value)
|
||||
f.write("\n") unless index == p8_array.length - 1
|
||||
end
|
||||
end
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: ENV['IOS_API_KEY_ID'],
|
||||
issuer_id: ENV['IOS_API_ISSUER_ID'],
|
||||
key_filepath: "./#{api_key_path}",
|
||||
in_house: ENV['IOS_IN_HOUSE'] == 'true', # optional but may be required if using match/sigh
|
||||
)
|
||||
|
||||
File.delete("../#{api_key_path}")
|
||||
pilot(
|
||||
ipa: ipa,
|
||||
api_key: api_key
|
||||
)
|
||||
else
|
||||
UI.success("Uploading with Username / Password")
|
||||
pilot(
|
||||
ipa: ipa
|
||||
)
|
||||
end
|
||||
else
|
||||
UI.user_error! "ipa file does not exist #{ipa}"
|
||||
return
|
||||
|
||||
@@ -911,7 +911,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 345;
|
||||
CURRENT_PROJECT_VERSION = 347;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -953,7 +953,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 345;
|
||||
CURRENT_PROJECT_VERSION = 347;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.40.0</string>
|
||||
<string>1.41.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@@ -37,7 +37,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>345</string>
|
||||
<string>347</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.40.0</string>
|
||||
<string>1.41.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>345</string>
|
||||
<string>347</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.40.0</string>
|
||||
<string>1.41.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>345</string>
|
||||
<string>347</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.40.0",
|
||||
"version": "1.41.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.40.0",
|
||||
"version": "1.41.0",
|
||||
"description": "Mattermost Mobile with React Native",
|
||||
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
||||
"author": "Mattermost, Inc.",
|
||||
|
||||
Reference in New Issue
Block a user