commit fb9a6c9994debf59e0f71674c5698ff51d940550
Author: Nathan Freitas <[email protected]>
Date:   Mon Feb 23 13:00:46 2015 -0500

    support for sharing/display bridge config as QR code
    this is needed for sharing of bridge data between people in the
    same physical space, or by easily sharing it through chat or other
    private messaging system
---
 res/menu/orbot_main.xml                           |    8 ++-
 res/values/strings.xml                            |    7 ++-
 src/org/torproject/android/OrbotMainActivity.java |   59 +++++++++++++++------
 3 files changed, 56 insertions(+), 18 deletions(-)

diff --git a/res/menu/orbot_main.xml b/res/menu/orbot_main.xml
index 4ac393e..55e5b17 100644
--- a/res/menu/orbot_main.xml
+++ b/res/menu/orbot_main.xml
@@ -28,9 +28,15 @@
 
   <item android:id="@+id/menu_scan"
         android:title="@string/menu_scan"
-         yourapp:showAsAction="always"
+         yourapp:showAsAction="never"
+         />
+  
+  <item android:id="@+id/menu_share_bridge"
+        android:title="@string/menu_share_bridge"
+         yourapp:showAsAction="never"
          />
  
+ 
 <!-- 
         <item android:id="@+id/menu_verify"
         android:title="@string/menu_verify_browser"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1028c9e..7ddbfb8 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -34,7 +34,8 @@
   <string name="button_clear_log">Clear Log</string>
   <string name="menu_verify">Check</string>
   <string name="menu_exit">Exit</string>
-  <string name="menu_scan">Scan Bridge QR</string>
+  <string name="menu_scan">Scan BridgeQR</string>
+  <string name="menu_share_bridge">Share BridgeQR</string>
   <string name="press_to_start">- long press to start -</string>
   <string name="pref_trans_proxy_group">Transparent Proxying (Requires 
Root)</string>
   <string name="pref_trans_proxy_title">Transparent Proxying</string>
@@ -311,4 +312,8 @@
   <string name="kb">KB</string>
   
   <string name="mb">MB</string>
+  
+  <string name="bridges_updated">Bridges Updated</string>
+  
+  <string name="restart_orbot_to_use_this_bridge_">"Restart Orbot to use these 
bridges: "</string>
 </resources>
diff --git a/src/org/torproject/android/OrbotMainActivity.java 
b/src/org/torproject/android/OrbotMainActivity.java
index a05c3d2..8c83cf8 100644
--- a/src/org/torproject/android/OrbotMainActivity.java
+++ b/src/org/torproject/android/OrbotMainActivity.java
@@ -7,6 +7,7 @@ import info.guardianproject.browser.Browser;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.text.NumberFormat;
 import java.util.Locale;
 
@@ -413,7 +414,24 @@ public class OrbotMainActivity extends Activity implements 
TorConstants, OnLongC
                        IntentIntegrator integrator = new 
IntentIntegrator(OrbotMainActivity.this);
                        integrator.initiateScan();
                 }
+                else if (item.getItemId() == R.id.menu_share_bridge)
+                {
+                       
+                       String bridges = 
mPrefs.getString(TorConstants.PREF_BRIDGES_LIST, null);
+                       
+                       try {
+                                               bridges = "bridge://" + 
URLEncoder.encode(bridges,"UTF-8");
+                               
+                               IntentIntegrator integrator = new 
IntentIntegrator(OrbotMainActivity.this);
+                               integrator.shareText(bridges);
+                               
+                                       } catch (UnsupportedEncodingException 
e) {
+                                               // TODO Auto-generated catch 
block
+                                               e.printStackTrace();
+                                       }
 
+                }
+                
                 return true;
             
             }
@@ -599,7 +617,7 @@ public class OrbotMainActivity extends Activity implements 
TorConstants, OnLongC
                                        String newBridgeValue = 
urlString.substring(9); //remove the bridge protocol piece
                                        newBridgeValue = 
URLDecoder.decode(newBridgeValue); //decode the value here
                                        
-                                       addNewBridges(newBridgeValue);
+                                       setNewBridges(newBridgeValue);
                                }
                        }
                }
@@ -627,15 +645,17 @@ public class OrbotMainActivity extends Activity 
implements TorConstants, OnLongC
                
        }
                
-       private void addNewBridges (String newBridgeValue)
+       private void setNewBridges (String newBridgeValue)
        {
 
-               showAlert("Bridges Updated","Restart Orbot to use this bridge: 
" + newBridgeValue,false);       
-               
-               String bridges = 
mPrefs.getString(TorConstants.PREF_BRIDGES_LIST, null);
+               
showAlert(getString(R.string.bridges_updated),getString(R.string.restart_orbot_to_use_this_bridge_)
 + newBridgeValue,false);    
                
                Editor pEdit = mPrefs.edit();
                
+               /*
+               String bridges = "";//let's override, not add // 
mPrefs.getString(TorConstants.PREF_BRIDGES_LIST, null);
+               
+               
                if (bridges != null && bridges.trim().length() > 0)
                {
                        if (bridges.indexOf('\n')!=-1)
@@ -645,13 +665,16 @@ public class OrbotMainActivity extends Activity 
implements TorConstants, OnLongC
                }
                else
                        bridges = newBridgeValue;
+                       */
                
-               pEdit.putString(TorConstants.PREF_BRIDGES_LIST,bridges); //set 
the string to a preference
+               pEdit.putString(TorConstants.PREF_BRIDGES_LIST,newBridgeValue); 
//set the string to a preference
                pEdit.putBoolean(TorConstants.PREF_BRIDGES_ENABLED,true);
        
                pEdit.commit();
                
                setResult(RESULT_OK);
+               
+               mBtnBridges.setChecked(true);
        }
 
        private boolean showWizard = true;
@@ -779,16 +802,20 @@ public class OrbotMainActivity extends Activity 
implements TorConstants, OnLongC
              // handle scan result
                
                String results = scanResult.getContents();
-               try {
-                               results = URLDecoder.decode(results, "UTF-8");
-                               
-                               addNewBridges(results);
-                               
-                               
-                       } catch (UnsupportedEncodingException e) {
-                               // TODO Auto-generated catch block
-                               e.printStackTrace();
-                       }
+               
+               if (results != null && results.length() > 0)
+               {
+                       try {
+                                       results = URLDecoder.decode(results, 
"UTF-8");
+                                       
+                                       setNewBridges(results);
+                                       
+                                       
+                               } catch (UnsupportedEncodingException e) {
+                                       // TODO Auto-generated catch block
+                                       e.printStackTrace();
+                               }
+               }
                
           }
         



_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to