The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2020-06-27T13:40:06Zhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34307RxJava library for making asynchronous calls.2020-06-27T13:40:06ZHashikDRxJava library for making asynchronous calls.To be clear it's perfectly fine starting a project without this library by using Android's official inbuild **AsyncTask** class but Google is deprecating the Async task library in favor of RxJava. Async task works for now but might not w...To be clear it's perfectly fine starting a project without this library by using Android's official inbuild **AsyncTask** class but Google is deprecating the Async task library in favor of RxJava. Async task works for now but might not work in future versions of Android.
[Reference](https://www.xda-developers.com/asynctask-deprecate-android-11/)https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34283Requirement of App settings UI.2020-06-30T15:51:19ZHashikDRequirement of App settings UI.Is a settings activity or UI necessary? example of settings like the number of clients the user is willing to serve, start the service on start-up, etc.Is a settings activity or UI necessary? example of settings like the number of clients the user is willing to serve, start the service on start-up, etc.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34282Design for final notification UI.2020-06-30T15:52:17ZHashikDDesign for final notification UI.Making and designing the final notification UI.Making and designing the final notification UI.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34281Design for final application UI.2020-06-30T15:52:29ZHashikDDesign for final application UI.Making and designing the final application UI.Making and designing the final application UI.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34280Building a workable Notification UI Design.2020-06-27T13:40:07ZHashikDBuilding a workable Notification UI Design.Foreground service running requires a notification. In the initial stages a workable temporary UI for notification.Foreground service running requires a notification. In the initial stages a workable temporary UI for notification.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34279Building a workable UI.2020-06-27T13:40:07ZHashikDBuilding a workable UI.Building a simple UI button to launch (start/stop) the background service.Building a simple UI button to launch (start/stop) the background service.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34278Handling connection failures.2020-06-27T13:40:07ZHashikDHandling connection failures.Checking to see if the connection is dropping for any reason like Android OS killing the service, connection time outs, etc.Checking to see if the connection is dropping for any reason like Android OS killing the service, connection time outs, etc.HashikDHashikDhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34277Relaying the data back and forth between WebSocket and WebRTC connection.2020-06-27T13:40:07ZHashikDRelaying the data back and forth between WebSocket and WebRTC connection.Relaying to and from WebRTC <-> WebSocket.Relaying to and from WebRTC <-> WebSocket.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34276Establishing WebSocket connection with the Tor relay.2020-06-27T13:40:07ZHashikDEstablishing WebSocket connection with the Tor relay.In the service, the second part is to establish a connection with the Tor relay to send and receive the data.In the service, the second part is to establish a connection with the Tor relay to send and receive the data.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34275Establishing connection with the client and finally check the connection.2020-06-27T13:40:07ZHashikDEstablishing connection with the client and finally check the connection.After getting both remote and local descriptions, checking the client connection by sending some data to the client.After getting both remote and local descriptions, checking the client connection by sending some data to the client.Cecylia BocovichCecylia Bocovichhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34274Sending answer SDP to the broker as a POST request.2020-06-27T13:40:08ZHashikDSending answer SDP to the broker as a POST request.Sending the SDP answer to the broker at "\answer"Sending the SDP answer to the broker at "\answer"https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34273Formatting the SDP answer in accordance to broker end point specification.2020-06-27T13:40:08ZHashikDFormatting the SDP answer in accordance to broker end point specification.Adding all the "\r\" and other escape sequences to send it to the broker at "\answer"Adding all the "\r\" and other escape sequences to send it to the broker at "\answer"https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34272Creating answer2020-06-27T13:40:08ZHashikDCreating answerCreating SDP Answer.Creating SDP Answer.Cecylia BocovichCecylia Bocovichhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34271Formatting the SDP in the broker response to make it suitable for SDP object ...2020-06-27T13:40:08ZHashikDFormatting the SDP in the broker response to make it suitable for SDP object creation.The SDP needs to be formatted into the right format to be able to assign to the SDP object.The SDP needs to be formatted into the right format to be able to assign to the SDP object.HashikDHashikDhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34270Sending POST request in longpolling fashion to the broker.2020-06-27T13:40:08ZHashikDSending POST request in longpolling fashion to the broker.Launching another thread that is looped every couple of seconds to send a long poll request to the server with a custom OkHttp time out.Launching another thread that is looped every couple of seconds to send a long poll request to the server with a custom OkHttp time out.HashikDHashikDhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34269Library for testing memory leaks (only in debug mode).2020-06-27T13:40:08ZHashikDLibrary for testing memory leaks (only in debug mode).To test for a memory leak during the building phase of the application we can use the Leakcanary library (this will not be a part of the final release):https://square.github.io/leakcanary/To test for a memory leak during the building phase of the application we can use the Leakcanary library (this will not be a part of the final release):https://square.github.io/leakcanary/https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34268Creating a service to do the work in the background and implementing a wakelock.2020-06-27T13:40:08ZHashikDCreating a service to do the work in the background and implementing a wakelock.For the application to act as a proxy in the background we need to run it as a service. In Android there are two types of services...
**Background service**: Counter-intuitively this is not what we are going to use since the Android syst...For the application to act as a proxy in the background we need to run it as a service. In Android there are two types of services...
**Background service**: Counter-intuitively this is not what we are going to use since the Android system will kill the service after the user leaves the application.\\
----
**Foreground service**: This service requires us to run a notification constantly. But this service will work even if the user leaves the application.\\
**Problem**: Service gets killed if the screen is turned off.\\
**Solution**: Implementing Android's Wakelock feature so that the Android system will not kill our service.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34267Compiling the WebRTC Google library.2020-06-27T13:40:08ZHashikDCompiling the WebRTC Google library.Compiling the library for our project using Google's documentation.\\
http://webrtc.github.io/webrtc-org/native-code/android/Compiling the library for our project using Google's documentation.\\
http://webrtc.github.io/webrtc-org/native-code/android/https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34266Creating and setting up the libraries and the project.2020-06-27T13:40:09ZHashikDCreating and setting up the libraries and the project.Discussion about the packages, supported API versions (Android versions), etc. can be discussed here. Things about before getting the app started and off the ground.Discussion about the packages, supported API versions (Android versions), etc. can be discussed here. Things about before getting the app started and off the ground.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/34265Library selection for WebSocket communication with Tor relay.2020-06-30T15:52:42ZHashikDLibrary selection for WebSocket communication with Tor relay.For WebSocket libraries here are some mentions: \\
https://github.com/Tinder/Scarlet - Designed for Android, hence preferred.\\
https://github.com/TooTallNate/Java-WebSocket - Popular Java lib.\\
https://github.com/facundofarias/awesome-...For WebSocket libraries here are some mentions: \\
https://github.com/Tinder/Scarlet - Designed for Android, hence preferred.\\
https://github.com/TooTallNate/Java-WebSocket - Popular Java lib.\\
https://github.com/facundofarias/awesome-websockets - Curated list of WS.