commit d54e72e0942307cc0c3172f574e41db4e592afca
Author: Sathyanarayanan Gunasekaran <[email protected]>
Date:   Thu Jul 7 19:34:22 2011 +0530

    ENABLE_DEBUG_TOGGLE update, proper AIDL implementation
    
    Data stats are now shown irrespective of
    whether ENABLE_DEBUG_TOGGLE is toggled or not.
    ITorServiceCallback.aidl has been updated to
    include a new method updateBandwidth(long ,long)
    to hook the data passed from the service into
    the GUI.
---
 src/org/torproject/android/Orbot.java              |   33 ++++++++---
 .../android/service/ITorServiceCallback.aidl       |    5 ++
 src/org/torproject/android/service/TorService.java |   61 +++++++++++---------
 3 files changed, 64 insertions(+), 35 deletions(-)

diff --git a/src/org/torproject/android/Orbot.java 
b/src/org/torproject/android/Orbot.java
index 1b9ca85..68e4aaf 100644
--- a/src/org/torproject/android/Orbot.java
+++ b/src/org/torproject/android/Orbot.java
@@ -694,14 +694,31 @@ public class Orbot extends Activity implements 
TorConstants, OnLongClickListener
                 mHandler.sendMessage(msg);
         }
 
-    
-            public void logMessage(String value) throws RemoteException {
-                    
-                    Message msg = 
mHandler.obtainMessage(TorServiceConstants.LOG_MSG);
-            msg.getData().putString(HANDLER_TOR_MSG, value);
-            mHandler.sendMessage(msg);
-                    
-            }
+               @Override
+               public void logMessage(String value) throws RemoteException {
+                       
+                       Message msg = 
mHandler.obtainMessage(TorServiceConstants.LOG_MSG);
+               msg.getData().putString(HANDLER_TOR_MSG, value);
+               mHandler.sendMessage(msg);
+                       
+               }
+
+               @Override
+               public void updateBandwidth(long upload, long download)
+                               throws RemoteException {
+                       
+               Message msg = Message.obtain();
+                       msg.what = TorServiceConstants.MESSAGE_TRAFFIC_COUNT;
+                       
+                       
+                       Bundle data = new Bundle();
+                       data.putLong("upload", upload);
+                       data.putLong("download", download);
+                       
+                       msg.setData(data);
+                       mHandler.sendMessage(msg); 
+
+               }
     };
     
 
diff --git a/src/org/torproject/android/service/ITorServiceCallback.aidl 
b/src/org/torproject/android/service/ITorServiceCallback.aidl
index 86fe28f..2492206 100644
--- a/src/org/torproject/android/service/ITorServiceCallback.aidl
+++ b/src/org/torproject/android/service/ITorServiceCallback.aidl
@@ -12,6 +12,11 @@ oneway interface ITorServiceCallback {
     void statusChanged(String value);
     
     /**
+     * Called when the service returns the bandwidth user to display to the 
user
+     */
+     void updateBandwidth(long value, long value2);
+            
+    /**
      * Called when the service has something to add to the log
      */
     void logMessage(String value);
diff --git a/src/org/torproject/android/service/TorService.java 
b/src/org/torproject/android/service/TorService.java
index e9fc224..a4b0171 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -1122,37 +1122,14 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        sb.append("kb written");
                        
                        logNotice(sb.toString());
-               DataCount datacount = new DataCount(written,read);
-               
-                       Message msg = Message.obtain();
-                       msg.what = MESSAGE_TRAFFIC_COUNT;
-                       //msg.obj = datacount;
-                       Bundle data = new Bundle();
-                       data.putLong("upload", datacount.Upload);
-                       data.putLong("download", datacount.Download);
-                       
-                       msg.setData(data);
-                       
-                       Orbot.currentInstance.mHandler.sendMessage(msg); 
-
-                       //sendCallbackStatusMessage(message); 
-                       
                }
+               
+               sendCallbackStatusMessage(written, read); 
+                       
+               
 
        }
 
-       public class DataCount {
-               // data uploaded
-               public long Upload;
-               // data downloaded
-               public long Download;
-               
-
-               DataCount(long Upload, long Download){
-                       this.Upload = Upload;
-                       this.Download = Download;
-               }
-       }
        
        public void circuitStatus(String status, String circID, String path) {
                
@@ -1422,6 +1399,36 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
         mCallbacks.finishBroadcast();
         inCallback = false;
     }
+   
+    private synchronized void sendCallbackStatusMessage (long upload, long 
download)
+    {
+        
+       if (mCallbacks == null)
+               return;
+       
+        // Broadcast to all clients the new value.
+        final int N = mCallbacks.beginBroadcast();
+        
+        inCallback = true;
+        
+        if (N > 0)
+        {
+                for (int i=0; i<N; i++) {
+                           try {
+                               
mCallbacks.getBroadcastItem(i).updateBandwidth(upload, download);
+                               
+                               
+                           } catch (RemoteException e) {
+                               // The RemoteCallbackList will take care of 
removing
+                               // the dead object for us.
+                           }
+                       }
+        }
+        
+        mCallbacks.finishBroadcast();
+        inCallback = false;
+    }
+    
     
     private synchronized void sendCallbackLogMessage (String logMessage)
     {



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

Reply via email to