commit d54e72e0942307cc0c3172f574e41db4e592afca Author: Sathyanarayanan Gunasekaran gsathya.ceg@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) {
tor-commits@lists.torproject.org