...
 
Commits (163)

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

[main]
host = https://www.transifex.com
[jami.localizablestrings]
[jami.osxLocalizable]
file_filter = ui/<lang>.lproj/Localizable.strings
source_file = ui/Base.lproj/Localizable.strings
source_lang = en
......@@ -73,12 +73,6 @@ source_file = ui/Base.lproj/Conversation.strings
source_lang = en
type = STRINGS
[jami.osxBackupAccountWindow]
file_filter = ui/<lang>.lproj/BackupAccountWindow.strings
source_file = ui/Base.lproj/BackupAccountWindow.strings
source_lang = en
type = STRINGS
[jami.osxExportPasswordWindow]
file_filter = ui/<lang>.lproj/ExportPasswordWindow.strings
source_file = ui/Base.lproj/ExportPasswordWindow.strings
......@@ -157,6 +151,18 @@ source_file = ui/Base.lproj/LeaveMessageVC.strings
source_lang = en
type = STRINGS
[jami.osxAccountBackupVC]
file_filter = ui/<lang>.lproj/AccountBackupVC.strings
source_file = ui/Base.lproj/AccountBackupVC.strings
source_lang = en
type = STRINGS
[jami.osxAccountMenuItemView]
file_filter = ui/<lang>.lproj/AccountMenuItemView.strings
source_file = ui/Base.lproj/AccountMenuItemView.strings
source_lang = en
type = STRINGS
[jami.osxMessageCells]
file_filter = ui/<lang>.lproj/MessageCells.strings
source_file = ui/Base.lproj/MessageCells.strings
......@@ -168,3 +174,9 @@ file_filter = ui/<lang>.lproj/PasswordChange.strings
source_file = ui/Base.lproj/PasswordChange.strings
source_lang = en
type = STRINGS
[jami.osxConnectToAccManagerVC]
file_filter = ui/<lang>.lproj/ConnectToAccManagerVC.strings
source_file = ui/Base.lproj/ConnectToAccManagerVC.strings
source_lang = en
type = STRINGS
......@@ -5,6 +5,7 @@ IF(POLICY CMP0022)
ENDIF(POLICY CMP0022)
SET(PROJ_NAME Jami)
ADD_DEFINITIONS(-DENABLE_LIBWRAP=true)
option(RELEASE_TYPE "RELEASE_TYPE" "website")
# To build nighlies we need to update RING_VERSION with an optional command line arg
......@@ -13,7 +14,7 @@ IF("${RING_VERSION}" STREQUAL "")
ENDIF("${RING_VERSION}" STREQUAL "")
# if build for App Store version and build number should be incremented
IF("${RELEASE_TYPE}" STREQUAL "AppStore")
SET(RING_VERSION_NAME "1.34")
SET(RING_VERSION_NAME "1.63")
ELSE()
SET(RING_VERSION_NAME "1")
ENDIF()
......@@ -37,6 +38,8 @@ FIND_PACKAGE(OpenGL REQUIRED)
EXECUTE_PROCESS(COMMAND git submodule update --init
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
get_filename_component(PARENT_DIR ${CMAKE_SOURCE_DIR} PATH)
INCLUDE(ExternalProject)
ExternalProject_Add(libqrencode
GIT_SUBMODULES libqrencode
......@@ -52,6 +55,17 @@ ExternalProject_Add(libqrencode
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/include)
LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/lib)
INCLUDE_DIRECTORIES(${PARENT_DIR}/daemon/contrib/native/ffmpeg)
set(SHADERS_FILE "Shader.metallib")
add_custom_command (OUTPUT ${CMAKE_SOURCE_DIR}/Shader.metallib
COMMAND ${CMAKE_SOURCE_DIR}/generateShaderLib.sh
COMMENT "Creating Shader.metallib")
add_custom_target(
shader ALL
DEPENDS ${CMAKE_SOURCE_DIR}/Shader.metallib
)
IF(NOT (${ENABLE_SPARKLE} MATCHES false))
MESSAGE("Sparkle auto-update enabled")
......@@ -101,8 +115,6 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
#Files to compile
SET(ringclient_CONTROLLERS
src/QNSTreeController.mm
src/QNSTreeController.h
src/CurrentCallVC.mm
src/CurrentCallVC.h
src/GeneralPrefsVC.mm
......@@ -124,10 +136,6 @@ SET(ringclient_CONTROLLERS
src/AccAdvancedRingVC.h
src/CertificateWC.mm
src/CertificateWC.h
src/BackupAccountWC.mm
src/BackupAccountWC.h
src/RestoreAccountWC.mm
src/RestoreAccountWC.h
src/AudioPrefsVC.mm
src/AudioPrefsVC.h
src/VideoPrefsVC.mm
......@@ -169,12 +177,18 @@ SET(ringclient_CONTROLLERS
src/AccountSettingsVC.h
src/LeaveMessageVC.mm
src/LeaveMessageVC.h
src/RecordFileVC.mm
src/RecordFileVC.h
src/ChooseContactVC.mm
src/ChooseContactVC.h
src/CallInConferenceVC.mm
src/CallInConferenceVC.h
src/ConnectToAccManagerVC.mm
src/ConnectToAccManagerVC.h
src/AccountBackupVC.mm
src/AccountBackupVC.h
)
SET(ringclient_BACKENDS
src/backends/AddressBookBackend.mm
src/backends/AddressBookBackend.h)
SET(ringclient_VIEWS
src/views/CallView.mm
src/views/CallView.h
......@@ -214,6 +228,15 @@ SET(ringclient_VIEWS
src/views/HoverButton.mm
src/views/CenteredClipView.h
src/views/CenteredClipView.mm
src/views/CallMTKView.h
src/views/CallMTKView.mm
src/views/GradientView.h
src/views/GradientView.mm
src/views/MovableView.h
src/views/MovableView.mm
src/views/RenderingView.h
src/views/RenderingView.mm
src/views/VideoRendering.h
)
SET(ringclient_OTHERS
......@@ -221,6 +244,8 @@ SET(ringclient_OTHERS
src/AppDelegate.mm
src/AppDelegate.h
src/Constants.h
src/VideoCommon.h
src/VideoCommon.mm
src/INDSequentialTextSelectionManager.mm
src/INDSequentialTextSelectionManager.h
src/delegates/ImageManipulationDelegate.mm
......@@ -231,8 +256,11 @@ SET(ringclient_OTHERS
src/NSString+Extensions.h
src/NSString+Extensions.mm
src/RingMainWindow.h
src/RingMainWindow.mm)
src/RingMainWindow.mm
src/MenuResponder.h
src/MenuResponder.mm
src/Shader.metal
)
SET(ringclient_XIBS
MainMenu
......@@ -248,8 +276,6 @@ SET(ringclient_XIBS
PreferencesWindow
RingWizard
CertificateWindow
BackupAccountWindow
RestoreAccountWindow
ExportPasswordWindow
MigrateRingAccountsWindow
Conversation
......@@ -264,6 +290,11 @@ SET(ringclient_XIBS
AddSIPAccountVC
AccountSettings
LeaveMessageVC
RecordFileVC
ChooseContactVC
CallInConferenceVC
ConnectToAccManagerVC
AccountBackupVC
)
# Icons
......@@ -320,12 +351,17 @@ ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/qrcode.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/pending_contact_request.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_file_upload.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_record_stop.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_camera.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_audio_msg.png
${CMAKE_CURRENT_SOURCE_DIR}/data/light/ic_picture.png)
SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
SET_SOURCE_FILES_PROPERTIES(Credits.rtf PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
SET_SOURCE_FILES_PROPERTIES(Shader.metallib PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
# package ringtones
IF(NOT IS_DIRECTORY ${RINGTONE_DIR})
......@@ -401,13 +437,13 @@ ENDFOREACH()
SET(TO_ADD
${ringclient_CONTROLLERS}
${ringclient_BACKENDS}
${ringclient_VIEWS}
${ringclient_OTHERS}
${ringclient_XIBS_FOR_EXECUTABLE}
${LOCALIZABLE_FILES}
${myApp_ICON}
Credits.rtf
Shader.metallib
${ring_ICONS}
${ring_RINGTONES})
......@@ -441,6 +477,8 @@ TARGET_LINK_LIBRARIES( ${PROJ_NAME}
-lqrencode
)
target_link_libraries(${PROJ_NAME} ${PARENT_DIR}/daemon/contrib/x86_64-apple-darwin${CMAKE_SYSTEM_VERSION}/lib/libavutil.a)
IF(ENABLE_SPARKLE)
TARGET_LINK_LIBRARIES(${PROJ_NAME} ${SPARKLE_FRAMEWORK})
ENDIF(ENABLE_SPARKLE)
......@@ -451,6 +489,8 @@ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Quartz")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AVFoundation")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework SystemConfiguration")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework MetalKit")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Metal")
# These variables are specific to our plist and are NOT standard CMake variables
SET(MACOSX_BUNDLE_NSMAIN_NIB_FILE "MainMenu")
......@@ -474,6 +514,7 @@ ELSE()
SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
MACOSX_BUNDLE_GUI_IDENTIFIER "cx.ring"
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/data/HardenedRuntimeEntitlements/Jami.entitlements"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}"
MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME}"
MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
......@@ -481,8 +522,10 @@ ELSE()
MACOSX_BUNDLE_INFO_STRING "Build of ${PROJ_NAME}, version ${RING_VERSION}"
MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
MACOSX_BUNDLE_ICON_FILE "appicon.icns"
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
)
ENDIF()
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
# Make sure we can find the 'ibtool' program. If we can NOT find it we
# skip generation of this project
FIND_PROGRAM(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
......
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf100
{\fonttbl\f0\fswiss\fcharset0 Helvetica-Oblique;\f1\fswiss\fcharset0 Helvetica-BoldOblique;\f2\fswiss\fcharset0 Helvetica-Bold;
}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\qc\partightenfactor0
\f0\i\fs24 \cf0 \
\f0\i\fs24 \cf2 \
\fs28 "
\f1\b Live Free or Die"
\f1\b Free as in Freedom"
\f0\b0\fs24 \
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\qc\partightenfactor0
{\field{\*\fldinst{HYPERLINK "https://ring.cx/"}}{\fldrslt \cf0 jami.net}}\
{\field{\*\fldinst{HYPERLINK "https://jami.net/"}}{\fldrslt \cf2
jami.net}}\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\qc\partightenfactor0
\f2\i0\b \cf0 Authors
\f2\i0\b \cf2 Authors
\f0\i\b0 \
Adrien B\'e9raud\
Alexandr Sergheev\
......@@ -62,5 +63,5 @@ Based on SFLphone's project\
\f2\i0\b Translated by
\f0\i\b0 \
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\qc\partightenfactor0
{\field{\*\fldinst{HYPERLINK "https://www.transifex.com/savoirfairelinux/ring/"}}{\fldrslt \cf0 https://www.transifex.com/savoirfairelinux/ring/}}\
}
\ No newline at end of file
{\field{\*\fldinst{HYPERLINK "https://www.transifex.com/savoirfairelinux/jami/"}}{\fldrslt \cf2 https://www.transifex.com/savoirfairelinux/jami/}}\
}
Ring Mac OSX
Jami for macOS
**********
This is the official Mac port of Ring.
This is the official Mac port of Jami.
For more information about the ring project, see the following:
- Main website: https://ring.cx/
- Bug tracker: https://tuleap.ring.cx/projects/ring/
- Repositories: https://gerrit-ring.savoirfairelinux.com
- Main website: https://jami.net/
- Bug tracker: https://git.jami.net
- Repositories: https://review.jami.net
| App | CI | Packaging
| :-: | :-: | :-:
| [![Download from ring.cx](https://img.shields.io/badge/download-cx.ring-blue.svg)](https://ring.cx/en/download/mac-osx) | [![Build Status](https://test.savoirfairelinux.com/buildStatus/icon?job=ring-client-macosx)](https://test.savoirfairelinux.com/job/ring-client-macosx/) | [![Build Status](https://test.savoirfairelinux.com/buildStatus/icon?job=ring-packaging-client-macosx)](https://test.savoirfairelinux.com/job/ring-packaging-client-macosx/)
| [![Download from jami.net](https://img.shields.io/badge/download-cx.ring-blue.svg)](https://jami.net/download-jami-macos) | [![Build Status](https://test.savoirfairelinux.com/buildStatus/icon?job=ring-client-macosx)](https://test.savoirfairelinux.com/job/ring-client-macosx/) | [![Build Status](https://test.savoirfairelinux.com/buildStatus/icon?job=ring-packaging-client-macosx)](https://test.savoirfairelinux.com/job/ring-packaging-client-macosx/)
Requirements
=============
- Ring daemon
- Jami daemon
- libRingClient (Qt5 version)
- Qt5 Core
- Cocoa framework
......@@ -25,7 +25,7 @@ Build instructions
Build Sparkle framework (optional)
----------------------------------
Ring can ship with the Sparkle framework to allow automatic app updates.
Jami can ship with the Sparkle framework to allow automatic app updates.
This can be disabled for your custom build by specifying -DENABLE_SPARKLE=false
in the cmake phase.
......
......@@ -15,7 +15,7 @@
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
<key>SUFeedURL</key>
<string>https://dl.ring.cx/mac_osx/sparkle-ring.xml</string>
<string>https://dl.jami.net/mac_osx/sparkle-ring.xml</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
......
<?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>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.personal-information.photos-library</key>
<true/>
</dict>
</plist>
data/dark/ic_action_chat.png

248 Bytes | W: | H:

data/dark/ic_action_chat.png

184 Bytes | W: | H:

data/dark/ic_action_chat.png
data/dark/ic_action_chat.png
data/dark/ic_action_chat.png
data/dark/ic_action_chat.png
  • 2-up
  • Swipe
  • Onion skin
data/dark/ic_action_record.png

2.82 KB | W: | H:

data/dark/ic_action_record.png

234 Bytes | W: | H:

data/dark/ic_action_record.png
data/dark/ic_action_record.png
data/dark/ic_action_record.png
data/dark/ic_action_record.png
  • 2-up
  • Swipe
  • Onion skin
data/dark/ic_audio_file.png

756 Bytes | W: | H:

data/dark/ic_audio_file.png

1.11 KB | W: | H:

data/dark/ic_audio_file.png
data/dark/ic_audio_file.png
data/dark/ic_audio_file.png
data/dark/ic_audio_file.png
  • 2-up
  • Swipe
  • Onion skin
xcrun -sdk macosx metal -c ../src/Shader.metal -o ../Shader.air
xcrun -sdk macosx metallib ../Shader.air -o ../Shader.metallib
#!/bin/bash
echo ""
cd build-local
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --notarize-app -t osx -f Jami.app.zip --primary-bundle-id ${BUNDLE_ID} -u ${APPLE_ACCOUNT} -p ${APPLE_PASSWORD} --output-format xml -itc_provider ${TEAM_ID} > UploadInfo.plist
REQUESTID=$(xmllint --xpath "/plist/dict[key='notarization-upload']/dict/key[.='RequestUUID']/following-sibling::string[1]/node()" UploadInfo.plist)
echo "file uploaded for notarization"
echo ${REQUESTID}
sleep 60
x=1
while [ $x -le 15 ];
do
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --notarization-info ${REQUESTID} -u ${APPLE_ACCOUNT} -p ${APPLE_PASSWORD} --output-format xml > RequestedInfo.plist
ANSWER=$(xmllint --xpath "/plist/dict[key='notarization-info']/dict/key[.='Status']/following-sibling::string[1]/node()" RequestedInfo.plist)
if [ "$ANSWER" == "in progress" ];
then
echo "notarization in progress"
sleep 60
x=$(( $x + 1 ))
elif [ "$ANSWER" == "success" ]
then
echo "notarization success"
break
else
echo "notarization failed"
break
exit 1
fi
done
ANSWER=$(xmllint --xpath "/plist/dict[key='notarization-info']/dict/key[.='Status']/following-sibling::string[1]/node()" RequestedInfo.plist)
if [ "$ANSWER" != "success" ];
then
echo "notarization failed"
exit 1
fi
......@@ -14,11 +14,11 @@ security import certificates/certificates/distribution/Certificates.p12 -k $KEYC
DELIVER_PASSWORD=$APPLE_PASSWORD fastlane sigh --app_identifier $BUNDLE_ID --username $APPLE_ACCOUNT --readonly true --platform macos --team_id $TEAM_ID
security set-key-partition-list -S apple-tool:,apple:,productbuild: -s -k $KEYCHAIN_PASSWORD $KEYCHAIN_NAME > /dev/null 2>&1
echo "start signing"
macdeployqt ./Jami.app -codesign="${APP_CERTIFICATE}"
macdeployqt ./Jami.app -no-strip -codesign="${APP_CERTIFICATE}"
codesign --force --sign "${APP_CERTIFICATE}" --entitlements ../data/Jami.entitlements Jami.app
codesign --verify Jami.app
echo "create .pkg"
productbuild --component Jami.app/ /Applications --sign "${INSTALLER_CERTIFICATE}" --product Jami.app/Contents/Info.plist Jami.pkg
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool --validate-app --type osx -f Jami.pkg -u $APPLE_ACCOUNT --password $APPLE_PASSWORD
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --validate-app --type osx -f Jami.pkg -u $APPLE_ACCOUNT --password $APPLE_PASSWORD
echo "start deploying"
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool --upload-app --type osx -f Jami.pkg -u $APPLE_ACCOUNT --password $APPLE_PASSWORD
/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool --upload-app --type osx -f Jami.pkg -u $APPLE_ACCOUNT --password $APPLE_PASSWORD
......@@ -42,21 +42,21 @@ const NSInteger BOOTSTRAP_SERVER_TAG = 300;
-(void) updateView {
lrc::api::account::ConfProperties_t accountProperties = self.accountModel->getAccountConfig(self.selectedAccountID);
[allowIncoming setState: accountProperties.allowIncoming];
[nameServerField setStringValue: @(accountProperties.RingNS.uri.c_str())];
[proxyServerField setStringValue:@(accountProperties.proxyServer.c_str())];
[bootstrapServerField setStringValue:@(accountProperties.hostname.c_str())];
[allowIncoming setState: accountProperties.DHT.PublicInCalls];
[nameServerField setStringValue: accountProperties.RingNS.uri.toNSString()];
[proxyServerField setStringValue: accountProperties.proxyServer.toNSString()];
[bootstrapServerField setStringValue: accountProperties.hostname.toNSString()];
[enableProxyButton setState: accountProperties.proxyEnabled];
[proxyServerField setEditable:accountProperties.proxyEnabled];
}
-(void) viewDidLoad {
[super viewDidLoad];
[[self view] setAutoresizingMask: NSViewMinXMargin | NSViewMaxXMargin];
[[self view] setAutoresizingMask: NSViewMinXMargin | NSViewMaxXMargin | NSViewWidthSizable];
[self updateView];
}
- (void) setSelectedAccount:(