URI: 
       tuse zxing to scan qr codes - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 584cc5d31f447de1f7675e658718d665e940a3b4
   DIR parent 37caf97ee9401b731bd87ed844fde3ec6e751eeb
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Tue,  8 Sep 2015 16:19:02 +0200
       
       use zxing to scan qr codes
       
       Diffstat:
         M gui/kivy/main_window.py             |      22 ++++++++++++++++++++--
         M gui/kivy/uix/screens.py             |       6 +-----
       
       2 files changed, 21 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py
       t@@ -1,6 +1,8 @@
       -import  sys
       +import sys
        import datetime
        
       +from android import activity
       +
        from electrum import WalletStorage, Wallet
        from electrum.i18n import _, set_language
        from electrum.contacts import Contacts
       t@@ -206,7 +208,7 @@ class ElectrumWindow(App):
            def set_url(self, instance, url):
                self.gui_object.set_url(url)
        
       -    def scan_qr(self, on_complete):
       +    def old_scan_qr(self, on_complete):
                dlg = Cache.get('electrum_widgets', 'QrScannerDialog')
                if not dlg:
                    dlg = Factory.QrScannerDialog()
       t@@ -214,6 +216,22 @@ class ElectrumWindow(App):
                    dlg.bind(on_complete=on_complete)
                dlg.open()
        
       +    def scan_qr(self, on_complete):
       +        from jnius import autoclass
       +        PythonActivity = autoclass('org.renpy.android.PythonActivity')
       +        Intent = autoclass('android.content.Intent')
       +        intent = Intent("com.google.zxing.client.android.SCAN")
       +        intent.putExtra("SCAN_MODE", "QR_CODE_MODE")
       +        def on_qr_result(requestCode, resultCode, intent):
       +            if requestCode == 0:
       +                if resultCode == -1: # RESULT_OK:
       +                    contents = intent.getStringExtra("SCAN_RESULT")
       +                    if intent.getStringExtra("SCAN_RESULT_FORMAT") == 'QR_CODE':
       +                        uri = App.get_running_app().decode_uri(contents)
       +                        on_complete(uri)
       +        activity.bind(on_activity_result=on_qr_result)
       +        PythonActivity.mActivity.startActivityForResult(intent, 0)
       +
            def build(self):
                global Builder
                if not Builder:
   DIR diff --git a/gui/kivy/uix/screens.py b/gui/kivy/uix/screens.py
       t@@ -101,14 +101,10 @@ class MainScreen(Factory.Screen):
        
        class ScreenSend(CScreen):
        
       -    def set_qr_data(self, dialog, uri):
       +    def set_qr_data(self, uri):
                self.ids.payto_e.text = uri.get('address', '')
                self.ids.message_e.text = uri.get('message', '')
                self.ids.amount_e.text = uri.get('amount', '')
       -        #label = uri.get('label')
       -        #if label:
       -        # TODO: update label, add to contacts    
       -
        
        class ScreenReceive(CScreen):
            pass