[tor-commits] [orbot/master] ENABLE_DEBUG_TOGGLE update, proper AIDL implementation

n8fr8 at torproject.org n8fr8 at torproject.org
Mon Oct 1 07:41:26 UTC 2012


commit d54e72e0942307cc0c3172f574e41db4e592afca
Author: Sathyanarayanan Gunasekaran <gsathya.ceg at gmail.com>
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)
     {





More information about the tor-commits mailing list