commit c517d0fcee8ca576891f8eb20cac61cad5f34287
Author: Nathan Freitas <[email protected]>
Date:   Thu Aug 7 11:54:31 2014 -0400

    Notification fix and change in finding existing process
    - Only build expanded notification on supported platforms
    - If service is re-created() try to find existing process then, and don't 
wait for bind() from client
---
 src/org/torproject/android/service/TorService.java |  175 +++++++++++---------
 1 file changed, 93 insertions(+), 82 deletions(-)

diff --git a/src/org/torproject/android/service/TorService.java 
b/src/org/torproject/android/service/TorService.java
index 9f05351..ee3395a 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -237,54 +237,6 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                Intent intent = new Intent(TorService.this, Orbot.class);
                PendingIntent pendIntent = 
PendingIntent.getActivity(TorService.this, 0, intent, 0);
  
-               // Create remote view that needs to be set as bigContentView 
for the notification.
-               RemoteViews expandedView = new 
RemoteViews(this.getPackageName(), 
-                       R.layout.layout_notification_expanded);
-               
-               StringBuffer sbInfo = new StringBuffer();
-               
-               
-               if (notifyType == NOTIFY_ID)
-                       expandedView.setTextViewText(R.id.text, notifyMsg);
-               else
-               {
-                       expandedView.setTextViewText(R.id.info, notifyMsg);
-               
-               }
-
-               if (hmBuiltNodes.size() > 0)
-               {
-                       
//sbInfo.append(getString(R.string.your_tor_public_ips_) + '\n');
-                       
-                       Set<String> itBuiltNodes = hmBuiltNodes.keySet();
-                       for (String key : itBuiltNodes)
-                       {
-                               Node node = hmBuiltNodes.get(key);
-                               
-                               if (node.ipAddress != null)
-                               {
-                                       sbInfo.append(node.ipAddress);
-                               
-                                       if (node.country != null)
-                                               sbInfo.append(' 
').append(node.country);
-                               
-                                       if (node.organization != null)
-                                               sbInfo.append(" 
(").append(node.organization).append(')');
-                               
-                                       sbInfo.append('\n');
-                               }
-                               
-                       }
-                       
-                       expandedView.setTextViewText(R.id.text2, 
sbInfo.toString());
-               }
-               
-               expandedView.setTextViewText(R.id.title, 
getString(R.string.app_name)); 
-               
-       //      expandedView.setTextViewText(R.id.info, infoMessage.toString());
-       //      expandedView.setOnClickPendingIntent(R.id._tor_notificationBT, 
pendIntent);
-               expandedView.setImageViewResource(R.id.icon, icon);
-               
                if (mNotifyBuilder == null)
                {
                        
@@ -319,6 +271,55 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                mNotification = mNotifyBuilder.build();
                
            if (Build.VERSION.SDK_INT >= 16) {
+               
+               
+               // Create remote view that needs to be set as bigContentView 
for the notification.
+                       RemoteViews expandedView = new 
RemoteViews(this.getPackageName(), 
+                               R.layout.layout_notification_expanded);
+                       
+                       StringBuffer sbInfo = new StringBuffer();
+                       
+                       
+                       if (notifyType == NOTIFY_ID)
+                               expandedView.setTextViewText(R.id.text, 
notifyMsg);
+                       else
+                       {
+                               expandedView.setTextViewText(R.id.info, 
notifyMsg);
+                       
+                       }
+
+                       if (hmBuiltNodes.size() > 0)
+                       {
+                               
//sbInfo.append(getString(R.string.your_tor_public_ips_) + '\n');
+                               
+                               Set<String> itBuiltNodes = 
hmBuiltNodes.keySet();
+                               for (String key : itBuiltNodes)
+                               {
+                                       Node node = hmBuiltNodes.get(key);
+                                       
+                                       if (node.ipAddress != null)
+                                       {
+                                               sbInfo.append(node.ipAddress);
+                                       
+                                               if (node.country != null)
+                                                       sbInfo.append(' 
').append(node.country);
+                                       
+                                               if (node.organization != null)
+                                                       sbInfo.append(" 
(").append(node.organization).append(')');
+                                       
+                                               sbInfo.append('\n');
+                                       }
+                                       
+                               }
+                               
+                               expandedView.setTextViewText(R.id.text2, 
sbInfo.toString());
+                       }
+                       
+                       expandedView.setTextViewText(R.id.title, 
getString(R.string.app_name)); 
+                       
+               //      expandedView.setTextViewText(R.id.info, 
infoMessage.toString());
+               //      
expandedView.setOnClickPendingIntent(R.id._tor_notificationBT, pendIntent);
+                       expandedView.setImageViewResource(R.id.icon, icon);
                mNotification.bigContentView = expandedView;
            }
            
@@ -565,8 +566,6 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        public void onCreate() {
                super.onCreate();
                
-//             android.os.Debug.waitForDebugger();
-               
                try
                {
                        initBinariesAndDirectories();
@@ -577,6 +576,23 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        Log.e(TAG, "Error installing Orbot binaries",e);
                        logNotice("There was an error installing Orbot 
binaries");
                }
+               
+               mExecutor.execute(new Runnable ()
+       {
+               public void run ()
+               {
+                       try
+               {
+                       findExistingProc ();
+               }
+               catch (Exception e)
+               {
+                       Log.e(TAG,"error onBind",e);
+               }
+               
+               }
+       });
+       
        }
 
        private void initBinariesAndDirectories () throws Exception
@@ -971,7 +987,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        private synchronized int initControlConnection (int maxTries) throws 
Exception, RuntimeException
        {
                        int i = 0;
-                       int controlPort = getControlPort();
+                       int controlPort = -1;
                        File fileCookie = new File(appCacheHome, 
TOR_CONTROL_COOKIE);
                
                        if (conn != null)
@@ -1088,11 +1104,18 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                        result = Integer.parseInt(lineParts[1]);
                                }
                                
+
                                bufferedReader.close();
+
+                               //store last valid control port
+                       SharedPreferences prefs = 
TorServiceUtils.getSharedPrefs(getApplicationContext());
+                               prefs.edit().putInt("controlport", 
result).commit();
+                               
                        }
                        else
                        {
                                logNotice("Control Port config file does not 
yet exist (waiting for tor): " + fileControlPort.getCanonicalPath());
+                               
                        }
                        
                        
@@ -1492,21 +1515,6 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        
     public IBinder onBind(Intent intent) {
         
-       mExecutor.execute(new Runnable ()
-       {
-               public void run ()
-               {
-                       try
-               {
-                       findExistingProc ();
-               }
-               catch (Exception e)
-               {
-                       Log.e(TAG,"error onBind",e);
-               }
-               
-               }
-       });
        
        return mBinder;
     }
@@ -1798,24 +1806,27 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
 
                boolean doNetworKSleep = 
prefs.getBoolean(TorConstants.PREF_DISABLE_NETWORK, true);
                
-               if (doNetworKSleep && mBinder != null)
+               final ConnectivityManager cm = (ConnectivityManager) 
getSystemService(Context.CONNECTIVITY_SERVICE);
+           final NetworkInfo netInfo = cm.getActiveNetworkInfo();
+
+           if(netInfo != null && netInfo.isConnected()) {
+               // WE ARE CONNECTED: DO SOMETHING
+               mConnectivity = true;
+           }   
+           else {
+               // WE ARE NOT: DO SOMETHING ELSE
+               mConnectivity = false;
+           }
+           
+               if (doNetworKSleep)
                {
-                       final ConnectivityManager cm = (ConnectivityManager) 
getSystemService(Context.CONNECTIVITY_SERVICE);
-                   final NetworkInfo netInfo = cm.getActiveNetworkInfo();
-
-                   if(netInfo != null && netInfo.isConnected()) {
-                       // WE ARE CONNECTED: DO SOMETHING
-                       mConnectivity = true;
-                   }   
-                   else {
-                       // WE ARE NOT: DO SOMETHING ELSE
-                       mConnectivity = false;
-                   }
-                       
                        try {
-                                       
mBinder.updateConfiguration("DisableNetwork", mConnectivity ? "0" : "1", false);
-                                       mBinder.saveConfiguration();
-                                       
+                               if (mBinder != null)
+                               {
+                                       
mBinder.updateConfiguration("DisableNetwork", mConnectivity ? "0" : "1", false);
+                                       mBinder.saveConfiguration();
+                               }
+                               
                                        if (currentStatus == STATUS_ON)
                                        {
                                                if (!mConnectivity)



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

Reply via email to