@@ -384,45 +384,22 @@ def qr_dialog(self, title, data, show_text=False):
384384 def scan_qr (self , on_complete ):
385385 if platform != 'android' :
386386 return
387- from jnius import autoclass
387+ from jnius import autoclass , cast
388388 from android import activity
389389 PythonActivity = autoclass ('org.kivy.android.PythonActivity' )
390+ SimpleScannerActivity = autoclass ("org.electrum.qr.SimpleScannerActivity" )
390391 Intent = autoclass ('android.content.Intent' )
391- intent = Intent ("com.google.zxing.client.android.SCAN" )
392- intent .putExtra ("SCAN_MODE" , "QR_CODE_MODE" )
393- def on_qr_result (requestCode , resultCode , intent ):
394- if requestCode == 0 :
395- if resultCode == - 1 : # RESULT_OK:
396- contents = intent .getStringExtra ("SCAN_RESULT" )
397- if intent .getStringExtra ("SCAN_RESULT_FORMAT" ) == 'QR_CODE' :
398- on_complete (contents )
399- else :
400- self .show_error ("wrong format " + intent .getStringExtra ("SCAN_RESULT_FORMAT" ))
401- activity .bind (on_activity_result = on_qr_result )
402- try :
403- PythonActivity .mActivity .startActivityForResult (intent , 0 )
404- except :
405- self .show_error (_ ('Could not start Barcode Scanner.' ) + ' ' + _ ('Please install the Barcode Scanner app from ZXing' ))
392+ intent = Intent (PythonActivity .mActivity , SimpleScannerActivity )
406393
407- def scan_qr_zxing (self , on_complete ):
408- # uses zxing embedded lib
409- if platform != 'android' :
410- return
411- from jnius import autoclass
412- from android import activity
413- PythonActivity = autoclass ('org.kivy.android.PythonActivity' )
414- IntentIntegrator = autoclass ('com.google.zxing.integration.android.IntentIntegrator' )
415- integrator = IntentIntegrator (PythonActivity .mActivity )
416394 def on_qr_result (requestCode , resultCode , intent ):
417- if requestCode == 0 :
418- if resultCode == - 1 : # RESULT_OK:
419- contents = intent .getStringExtra ("SCAN_RESULT" )
420- if intent .getStringExtra ("SCAN_RESULT_FORMAT" ) == 'QR_CODE' :
421- on_complete (contents )
422- else :
423- self .show_error ("wrong format " + intent .getStringExtra ("SCAN_RESULT_FORMAT" ))
395+ if resultCode == - 1 : # RESULT_OK:
396+ # this doesn't work due to some bug in jnius:
397+ # contents = intent.getStringExtra("text")
398+ String = autoclass ("java.lang.String" )
399+ contents = intent .getStringExtra (String ("text" ))
400+ on_complete (contents )
424401 activity .bind (on_activity_result = on_qr_result )
425- integrator . initiateScan ( )
402+ PythonActivity . mActivity . startActivityForResult ( intent , 0 )
426403
427404 def do_share (self , data , title ):
428405 if platform != 'android' :
0 commit comments