mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-28 07:05:41 +01:00
- aligned qr dependency w/ files app
- aligned qr image with files - Exiting qr directs back to ServerSelectionActivity Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
This commit is contained in:
parent
1918349c93
commit
9e019440d4
@ -210,7 +210,7 @@ dependencies {
|
||||
exclude group: 'org.ogce', module: 'xpp3' // Android comes with its own XmlPullParser
|
||||
})
|
||||
implementation 'org.conscrypt:conscrypt-android:2.5.3'
|
||||
implementation 'com.github.blikoon:QRCodeScanner:0.1.2'
|
||||
implementation "com.github.nextcloud-deps:qrcodescanner:0.1.2.4" // "com.github.blikoon:QRCodeScanner:0.1.2"
|
||||
|
||||
implementation "androidx.camera:camera-core:${androidxCameraVersion}"
|
||||
implementation "androidx.camera:camera-camera2:${androidxCameraVersion}"
|
||||
|
@ -16,7 +16,6 @@ import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.net.toUri
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
@ -24,7 +23,6 @@ import androidx.work.OneTimeWorkRequest
|
||||
import androidx.work.WorkInfo
|
||||
import androidx.work.WorkManager
|
||||
import autodagger.AutoInjector
|
||||
import com.blikoon.qrcodescanner.QrCodeActivity
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.gson.JsonParser
|
||||
import com.nextcloud.talk.R
|
||||
@ -133,8 +131,12 @@ class BrowserLoginActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
if (extras.containsKey(BundleKeys.KEY_FROM_QR)) {
|
||||
val intent = Intent(this, QrCodeActivity::class.java)
|
||||
qrScanResultLauncher.launch(intent)
|
||||
val resultData = extras.getString(BundleKeys.KEY_FROM_QR)
|
||||
try {
|
||||
parseLoginDataUrl(resultData!!)
|
||||
} catch (e: IllegalArgumentException) {
|
||||
Log.e(TAG, "Error in scanning QR Code: $e")
|
||||
}
|
||||
} else {
|
||||
anonymouslyPostLoginRequest()
|
||||
}
|
||||
@ -150,30 +152,6 @@ class BrowserLoginActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private val qrScanResultLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == RESULT_OK) {
|
||||
val data = result.data
|
||||
|
||||
if (data == null) {
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
val resultData = data.getStringExtra("com.blikoon.qrcodescanner.got_qr_scan_relult")
|
||||
|
||||
if (resultData == null || !resultData.startsWith("nc")) {
|
||||
Snackbar.make(binding.root, getString(R.string.qr_code_error), Snackbar.LENGTH_SHORT).show()
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
try {
|
||||
parseLoginDataUrl(resultData)
|
||||
} catch (e: IllegalArgumentException) {
|
||||
Log.e(TAG, "Error in scanning QR Code: $e")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun anonymouslyPostLoginRequest() {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val url = "$baseUrl/index.php/login/v2"
|
||||
|
@ -26,7 +26,9 @@ import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.os.bundleOf
|
||||
import autodagger.AutoInjector
|
||||
import com.blikoon.qrcodescanner.QrCodeActivity
|
||||
import com.github.dhaval2404.imagepicker.util.PermissionUtil
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.nextcloud.talk.R
|
||||
import com.nextcloud.talk.activities.BaseActivity
|
||||
import com.nextcloud.talk.api.NcApi
|
||||
@ -413,14 +415,35 @@ class ServerSelectionActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
private fun startQRScanner() {
|
||||
val intent = Intent(this, BrowserLoginActivity::class.java)
|
||||
val bundle = bundleOf().apply {
|
||||
putBoolean(BundleKeys.KEY_FROM_QR, true)
|
||||
}
|
||||
intent.putExtras(bundle)
|
||||
startActivity(intent)
|
||||
val intent = Intent(this, QrCodeActivity::class.java)
|
||||
qrScanResultLauncher.launch(intent)
|
||||
}
|
||||
|
||||
private val qrScanResultLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == RESULT_OK) {
|
||||
val data = result.data
|
||||
|
||||
if (data == null) {
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
val resultData = data.getStringExtra(QR_URI)
|
||||
|
||||
if (resultData == null || !resultData.startsWith("nc")) {
|
||||
Snackbar.make(binding.root, getString(R.string.qr_code_error), Snackbar.LENGTH_SHORT).show()
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
val intent = Intent(this, BrowserLoginActivity::class.java)
|
||||
val bundle = bundleOf().apply {
|
||||
putString(BundleKeys.KEY_FROM_QR, resultData)
|
||||
}
|
||||
intent.putExtras(bundle)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
dispose()
|
||||
@ -439,5 +462,6 @@ class ServerSelectionActivity : BaseActivity() {
|
||||
companion object {
|
||||
private val TAG = ServerSelectionActivity::class.java.simpleName
|
||||
const val MIN_SERVER_MAJOR_VERSION = 13
|
||||
private const val QR_URI = "com.blikoon.qrcodescanner.got_qr_scan_relult"
|
||||
}
|
||||
}
|
||||
|
@ -152,15 +152,15 @@
|
||||
tools:text="@string/nc_server_unsupported" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<ImageButton
|
||||
android:id="@+id/scan_Qr"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:iconTint="@color/white"
|
||||
android:textColor="@color/white"
|
||||
android:theme="@style/Widget.Material3.Button.TextButton.Icon"
|
||||
app:icon="@drawable/outline_qr_code_24"
|
||||
android:text="@string/scan_qr_code"/>
|
||||
android:layout_width="@dimen/avatar_size"
|
||||
android:layout_height="@dimen/avatar_size"
|
||||
android:scaleType="fitXY"
|
||||
android:background="@color/transparent"
|
||||
android:contentDescription="@string/scan_qr_code"
|
||||
android:src="@drawable/outline_qr_code_24"
|
||||
app:tint="@color/white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/import_or_choose_provider_text"
|
||||
|
@ -2838,6 +2838,34 @@ IQkQ9C6H+WZQFckWIQTzGEvNVfTQFuMNTJv0Lof5ZlAVyX7PAJ9ztvyEP04cy6zP
|
||||
=dtK1
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub F6CE9695C9318406
|
||||
uid Sean Owen (ZXing) <srowen@gmail.com>
|
||||
|
||||
sub 811B3B85BC31841F
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQENBFHW7ksBCADGzo3LGVyWpBWqxRQlGhpQ9YNav7jiR5WSLnatr8chZx+ldy5j
|
||||
KquO7GHO0qaHGXyc/CKeKH9Eey0mH4EcvOvEhBOE27Fnuw2NppxQjxXyhYTfvr6q
|
||||
CHGN+lTORVC3zD6UkMm2R92zNI+ZGWqK2zND5/RZQMW4JNH/Y4ZA6t+fm+dHm/Q5
|
||||
Mn/2XEnMnDiuJGnIwb6+sgH4GHdXkzGl+/grayerAp52HWGmKo3TWWtxdZQcdZe7
|
||||
spaLlVJEfw5K7uwpR0JDwSHtak7gfs613n1VuQeT9ZA/CnBk0L1JkkSezPO0NFxL
|
||||
ONjrQA6zBA6apJsdDQYgg55xtFaAWUfBAV37ABEBAAG0JFNlYW4gT3dlbiAoWlhp
|
||||
bmcpIDxzcm93ZW5AZ21haWwuY29tPrkBDQRR1u5LAQgArA+334bZKR9IOvArfF6T
|
||||
Yo1gx1wQjiFrbl3rcNrkADzu9/h5PbvkLma1zTSYUo5VZPIn0HbX+GctInY9AkjG
|
||||
sc3OrBmPi2FI/KOUXnMCmd1ShyphdB5CJjG2VpR4ejG/I1YyMQ2ABWGes1IQJNPs
|
||||
Hf1PXkJ2NA1gCxD+oAT9RgdXZBolln+TL3sYV4Z0EWhEL+yPjxInvFpabZErssim
|
||||
tRRrfSuT/wczrLt46zTgmtEKJ7udp6kzC3Nmut6IozlBr5qcEOTdiH6+BxgvW4hH
|
||||
uqANx4PzVWCCqwTxuiME/Q5kr45tgawSSoIsMAZaPGqeNluXap9qEsXPd3SsZUfg
|
||||
IQARAQABiQEfBBgBCgAJBQJR1u5LAhsMAAoJEPbOlpXJMYQGP2AH/jkwFM70jQCz
|
||||
uyMJNX4uHlmP37TNq8n2WxCNb5rQrXJ7UQ/3FSOiF86PRhOYAJHz0aEKWjQG+gr2
|
||||
aXc1HZr9g3AB5dLVxJ27SNgrV7Bvw1fI8NvYp+XyDodbQzyjavuslkf6BrQ9CSer
|
||||
R3WahwNtscMXYCi08f9dB1hooKmjkqgHGE+WHvs5zxtVnmdQ9Oaeu7IYYkhSAFA1
|
||||
Pdb2T90L+0xno4kCXaN7Mlw2ffxV53eLDq3fCoO4wkmVdjHjNc6Cq2qa7ntPo1wS
|
||||
BEhqoEjsNLqVXYq/cm7h+X5AwuLgkYCqA/TOjClEe8C/rVLVj9++Qw2lgbiUC6ry
|
||||
lkXgEU5D+DY=
|
||||
=6M1h
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub F6D4A1D411E9D1AE
|
||||
uid Christopher Povirk <cpovirk@google.com>
|
||||
|
||||
@ -5092,6 +5120,34 @@ vzqZL9WH1qfOB26bczhzqYBdpE3HRRqvOaFo2o7Rm9biGIJ/QqTk9C0xcI1/5BNv
|
||||
=tT4f
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 479D601F3A7B5C1A
|
||||
uid AJ Alt <ajalt@users.noreply.github.com>
|
||||
|
||||
sub 868FF6CCEF26A83C
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQENBF5CDMYBCADC1/aWU6ZbGZEphRbmjUPNfqh3N5goSnDCou97mmQ9Uq8iBuKS
|
||||
UXJnGSOHudXK56f+Drx5lGZdLAzveZdqaqb1o3yLFO3PJxwj3Ulhab3O3uTG2eR0
|
||||
2Xo7GKjRW13kEfphJrfVIaQq/TiyIG8IQ1dbm9Vuzc5NLDIeC4jxYD2S3hUqCLGQ
|
||||
BiZAEH9un2cPax+hiT+9MGzdfQwdVrSQ9aEA9mtMhEGsk80XtxXJnd+hw2va6l5s
|
||||
lSErmH5nMtyKh/n9uo/ap1CfPl98n5VUI8dDtUfWVrqRrkyHgdX+MII0t0nABV5X
|
||||
rJLneg4dVy5Yw/+FVbLWB1Ta21reyytcIYQXABEBAAG0J0FKIEFsdCA8YWphbHRA
|
||||
dXNlcnMubm9yZXBseS5naXRodWIuY29tPrkBDQReQgzGAQgA1oQHEM6wP40xPfpa
|
||||
YBBRAWVoEj/CbAV6BooApSqQkV0cocM9wK905az2FmlKn4WTZyNwiA2eHjHlevsI
|
||||
jKuHJWhSDVhulcKDi0cD6wTcjctcDWm7M3tvaICbieZQXPH7lju5Ct80kBo5ojdJ
|
||||
oXGD72kVhSuiF8vOrAOiLOXP8+bpCpY4+LZ4qt3XjSnrkZq+h/vcy9crwuzuFlSL
|
||||
wMRltOvfirrK/CSQZZtqG2PbT30CWFQ61DLo4DkXeNG1fKpnOaDAMaCedt+pNCAQ
|
||||
1Vdzy1vT9b85LtOH/CmhumjM3S6x/VWwWZVBXi2xVLFCkm3LlWioSvVs6Na0Vvaq
|
||||
0WDsbwARAQABiQE2BBgBCAAgFiEEA8EjA4wgqunihshXR51gHzp7XBoFAl5CDMYC
|
||||
GwwACgkQR51gHzp7XBpoYQgAjnYuxyXaFSbCc2EFWDrBA8+OnlbSgJ3etaIOoLQH
|
||||
+Czv6+wLYc9snZDBm+IvbzEi3tXfi1TKcRI5ii9wDkti0KcVFrR2tpuXDLWYIF92
|
||||
cSC7VyBiyT/aZpm0zX8qP8tjRZvy7mewbnoit1R6ea5UifSLvO0bHqNoswfgv90s
|
||||
rnuUYMY8tv1sSo4j0f0zre/k4QT8sCTeMDsLsviMIvy1Wls1IPRo1SW1euGGGvCo
|
||||
bxgke8Dw5QgumudwPqehOZVOkIbuddgcur55ZFFeitMOqdRoXkrGod9v6hYY1Jz8
|
||||
W/Y2tzZmWsedFIc4ahuAeZG6cH6Ac8prHrQEz6lSbZ0flg==
|
||||
=td3S
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 4B1E11D5A4B91E89
|
||||
uid Adam Cozzette <acozzette@google.com>
|
||||
|
||||
|
@ -301,6 +301,7 @@
|
||||
<trusted-key id="CBD134820A0E04D230AEC5D5D9B2BC72A3754BEA" group="^com[.]github[.]lukaspili($|([.].*))" regex="true"/>
|
||||
<trusted-key id="CD5464315F0B98C77E6E8ECD9DAADC1C9FCC82D0" group="org.apache.commons" name="commons-lang3"/>
|
||||
<trusted-key id="CE0E1BC443809579D8718F4FB943F5CB616566CD" group="de.mannodermaus.retrofit2" name="converter-logansquare" version="1.4.1"/>
|
||||
<trusted-key id="CE3285F320685193D11FEA01F6CE9695C9318406" group="com.google.zxing"/>
|
||||
<trusted-key id="CE8075A251547BEE249BC151A2115AE15F6B8B72" group="org.apache.commons"/>
|
||||
<trusted-key id="CFC10B69382CBCF5387E51484ECE492B63E38ACF" group="com.h3xstream.findsecbugs"/>
|
||||
<trusted-key id="D410F787672BA63BC2DD192B0C907617691418AE" group="org.greenrobot"/>
|
||||
@ -11963,6 +11964,14 @@
|
||||
<sha256 value="70693e430f2a7e166690af2eeabf5c94109e68818cc66d453b1a43ee60978ea0" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.github.nextcloud-deps" name="qrcodescanner" version="0.1.2.4">
|
||||
<artifact name="qrcodescanner-0.1.2.4.aar">
|
||||
<sha256 value="b286128792cc04f59b0defa2c937c86d9e2fc824a8011b9af9eea7fd0ea84303" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
<artifact name="qrcodescanner-0.1.2.4.module">
|
||||
<sha256 value="fbdd13cbf3f0288a063602d0eff83572039f8e623612576da3e10a49349c60a9" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.github.nextcloud-deps.hwsecurity" name="hwsecurity" version="4.1.0-patch2">
|
||||
<artifact name="hwsecurity-4.1.0-patch2.aar">
|
||||
<sha256 value="bf255cf1b0eac13cc7c1a49a02cd07ed133dfcf75b22ad1e0c74efff541937e4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
|
Loading…
Reference in New Issue
Block a user