Android: bundle default font for use in OnePlus devices

This is working around a Qt Bug https://bugreports.qt.io/browse/QTBUG-69494
which prevents correct rendering of the OnePlus fonts.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2019-09-20 11:11:24 -07:00
parent cf4dbbe5f2
commit 9a35519a2a
4 changed files with 17 additions and 3 deletions

View file

@ -304,6 +304,7 @@ if (SUBSURFACE_TARGET_EXECUTABLE MATCHES "MobileExecutable")
qt5_add_resources(MOBILE_RESOURCES mobile-widgets/qml/kirigami/kirigami.qrc) qt5_add_resources(MOBILE_RESOURCES mobile-widgets/qml/kirigami/kirigami.qrc)
# When building the mobile application in Android, link it and Qt will do the rest, when doing the mobile application on Desktop, create an executable. # When building the mobile application in Android, link it and Qt will do the rest, when doing the mobile application on Desktop, create an executable.
if(ANDROID) if(ANDROID)
qt5_add_resources(MOBILE_RESOURCES android-mobile/font.qrc)
add_library(${SUBSURFACE_TARGET} SHARED ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES}) add_library(${SUBSURFACE_TARGET} SHARED ${SUBSURFACE_PKG} ${MOBILE_SRC} ${SUBSURFACE_RESOURCES} ${MOBILE_RESOURCES})
else() else()
# the following is split across two commands since in cmake 3.12 this would result # the following is split across two commands since in cmake 3.12 this would result

7
android-mobile/font.qrc Normal file
View file

@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/fonts">
<!-- we need to load our own font for OnePlus phones -->
<file>Roboto-Regular.ttf</file>
</qresource>
</RCC>

View file

@ -1399,7 +1399,7 @@ QString getUUID()
uuidString = uuid.toString(); uuidString = uuid.toString();
qPrefUpdateManager::set_uuidString(uuidString); qPrefUpdateManager::set_uuidString(uuidString);
} }
uuidString.replace("{", "").replace("}", ""); uuidString.replace("{", "p").replace("}", "");
return uuidString; return uuidString;
} }

View file

@ -81,8 +81,8 @@ if [ ! -d "$ANDROID_NDK" ] ; then
fi fi
if [ ! -d "$ANDROID_SDK"/build-tools/"${ANDROID_BUILDTOOLS_REVISION}" ] || if [ ! -d "$ANDROID_SDK"/build-tools/"${ANDROID_BUILDTOOLS_REVISION}" ] ||
[ ! -d "$ANDROID_SDK"/platforms/android-"${ANDROID_PLATFORMS}" ] || [ ! -d "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORMS}" ] ||
[ ! -d "$ANDROID_SDK"/platforms/android-"${ANDROID_PLATFORM}" ] ; then [ ! -d "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORM}" ] ; then
if [ ! -d "$ANDROID_SDK" ] ; then if [ ! -d "$ANDROID_SDK" ] ; then
if [ ! -f "$SDK_TOOLS" ] ; then if [ ! -f "$SDK_TOOLS" ] ; then
wget -q https://dl.google.com/android/repository/"$SDK_TOOLS" wget -q https://dl.google.com/android/repository/"$SDK_TOOLS"
@ -101,6 +101,12 @@ if [ ! -d "$ANDROID_SDK"/build-tools/"${ANDROID_BUILDTOOLS_REVISION}" ] ||
popd popd
fi fi
# now that we have an NDK, copy the font that we need for OnePlus phones
# due to https://bugreports.qt.io/browse/QTBUG-69494
ls -l . "$ANDROID_SDK" "$ANDROID_SDK"/platforms
ls -l "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORM}" "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORM}"/data/fonts/Roboto-Regular.ttf
cp "$ANDROID_SDK"/platforms/"${ANDROID_PLATFORM}"/data/fonts/Roboto-Regular.ttf "$SUBSURFACE_SOURCE"/android-mobile || exit 1
# download the Qt installer including Android bits and unpack / install # download the Qt installer including Android bits and unpack / install
QT_DOWNLOAD_URL=https://download.qt.io/archive/qt/${QT_VERSION}/${LATEST_QT}/${QT_BINARIES} QT_DOWNLOAD_URL=https://download.qt.io/archive/qt/${QT_VERSION}/${LATEST_QT}/${QT_BINARIES}
if [ ! -d Qt/"${LATEST_QT}"/android_armv7 ] ; then if [ ! -d Qt/"${LATEST_QT}"/android_armv7 ] ; then