diff --git a/client/android/AndroidManifest.xml b/client/android/AndroidManifest.xml index f1d2682b..3276eaa8 100644 --- a/client/android/AndroidManifest.xml +++ b/client/android/AndroidManifest.xml @@ -11,6 +11,9 @@ + + + @@ -31,6 +34,7 @@ android:label="-- %%INSERT_APP_NAME%% --" android:icon="@mipmap/icon" android:roundIcon="@mipmap/icon_round" + android:banner="@mipmap/ic_banner" android:theme="@style/NoActionBar" android:fullBackupContent="@xml/backup_content" android:dataExtractionRules="@xml/data_extraction_rules" @@ -47,6 +51,7 @@ + diff --git a/client/android/res/mipmap-anydpi-v26/ic_banner.xml b/client/android/res/mipmap-anydpi-v26/ic_banner.xml new file mode 100644 index 00000000..cf3108b3 --- /dev/null +++ b/client/android/res/mipmap-anydpi-v26/ic_banner.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/client/android/res/mipmap-xhdpi/ic_banner.png b/client/android/res/mipmap-xhdpi/ic_banner.png new file mode 100644 index 00000000..f5029b23 Binary files /dev/null and b/client/android/res/mipmap-xhdpi/ic_banner.png differ diff --git a/client/android/res/mipmap-xhdpi/ic_banner_foreground.png b/client/android/res/mipmap-xhdpi/ic_banner_foreground.png new file mode 100644 index 00000000..1c21902e Binary files /dev/null and b/client/android/res/mipmap-xhdpi/ic_banner_foreground.png differ diff --git a/client/android/res/values/ic_banner_background.xml b/client/android/res/values/ic_banner_background.xml new file mode 100644 index 00000000..fa6f91c7 --- /dev/null +++ b/client/android/res/values/ic_banner_background.xml @@ -0,0 +1,4 @@ + + + #1E1E1F + \ No newline at end of file diff --git a/client/android/src/org/amnezia/vpn/AmneziaActivity.kt b/client/android/src/org/amnezia/vpn/AmneziaActivity.kt index e3ed6d39..3caa0713 100644 --- a/client/android/src/org/amnezia/vpn/AmneziaActivity.kt +++ b/client/android/src/org/amnezia/vpn/AmneziaActivity.kt @@ -1,6 +1,7 @@ package org.amnezia.vpn import android.Manifest +import android.annotation.SuppressLint import android.app.AlertDialog import android.app.NotificationManager import android.content.BroadcastReceiver @@ -556,8 +557,12 @@ class AmneziaActivity : QtActivity() { } @Suppress("unused") + @SuppressLint("UnsupportedChromeOsCameraSystemFeature") fun isCameraPresent(): Boolean = applicationContext.packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA) + @Suppress("unused") + fun isOnTv(): Boolean = applicationContext.packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK) + @Suppress("unused") fun startQrCodeReader() { Log.v(TAG, "Start camera") diff --git a/client/platforms/android/android_controller.cpp b/client/platforms/android/android_controller.cpp index be404a15..c9ee3cfd 100644 --- a/client/platforms/android/android_controller.cpp +++ b/client/platforms/android/android_controller.cpp @@ -179,6 +179,11 @@ bool AndroidController::isCameraPresent() return callActivityMethod("isCameraPresent", "()Z"); } +bool AndroidController::isOnTv() +{ + return callActivityMethod("isOnTv", "()Z"); +} + void AndroidController::startQrReaderActivity() { callActivityMethod("startQrCodeReader", "()V"); diff --git a/client/platforms/android/android_controller.h b/client/platforms/android/android_controller.h index d015dbe3..1041c31f 100644 --- a/client/platforms/android/android_controller.h +++ b/client/platforms/android/android_controller.h @@ -35,6 +35,7 @@ public: void saveFile(const QString &fileName, const QString &data); QString openFile(const QString &filter); bool isCameraPresent(); + bool isOnTv(); void startQrReaderActivity(); void setSaveLogs(bool enabled); void exportLogsFile(const QString &fileName);