Skip to content

Commit

Permalink
Readme con immagini
Browse files Browse the repository at this point in the history
  • Loading branch information
Ks89 committed Mar 29, 2015
1 parent 600eadd commit 0266cf6
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 48 deletions.
4 changes: 2 additions & 2 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/libraries/appcompat_v7_22_0_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/libraries/recyclerview_v7_22_0_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/libraries/support_v4_22_0_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 20 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
# Pigeon Messenger

![alt tag](https://dl.dropboxusercontent.com/u/2336896/pigeon_messenger_header_github.png)
![alt tag](http://www.stefanocappa.it/publicfiles/Github_repositories_images/Pigeon_Messenger/pigeon_messenger_header_github.png)


## Informations
Wi-Fi Direct MultiChat (aka Pigeon Messenger) is a DEMO Android's application that try to overcome some Wi-Fi Direct limitations.
At the moment, the wi-fi diver of commercial devices don't allow a device to partecipate simultaneosly in two Wi-Fi Direct's groups.
Wi-Fi Direct MultiChat (aka Pigeon Messenger) is a demo Android's application that try to overcome some Wi-Fi Direct's limitations.
At the moment, the wifi diver of commercial devices doesn't allow a device to partecipate concurrently in two Wi-Fi Direct's groups.
This app tries to overcome this limitation, indeed, a user can communicate with a large number of nearby people without an internet connection, using point-to-point communications.
The main goal is the simultaneous management of multiple chats, queuing messages sent when the connection is not available and send them at the same time as soon as possible.

Pigeon Messenger requires Android 4.4 KitKat (API 19) or higher. This choice is related to to the fact that in previous versions, this protocol was unstable and unreliable.

It's important to remember that this is a demo application, so features like the management of screen's rotation, standby device, wi-fi not available and so on, are not managed as a commercial product.
It's important to remember that this is a demo application, so features like the management of screen's rotation, standby device, wifi not available and so on, are not managed as a commercial product.

## Results
VIDEO YOUTUBE

As you can see, Pigeon Messenger works with good performances.<br/>
The main problems are the "Discovery Phase" of this protocol and the WiFi-Direct implementation in Android, in fact:<br/>
Pigeon Messenger works with good performances.<br/>
The main problems are the "Discovery Phase" of this protocol and the Wi-Fi Direct's implementation in Android, in fact:<br/>
1. The discovery time is too high when the number of devices increases <br/>
2. After a certain time, a device is no longer discoverable from others, so you need to restart the Discovery Phase on all devices <br/>
3. Sometimes, the Wi-Fi part of Android crashes and the only way to solve this annoying problem is a complete reboot of the device (this situation is recognizable when Android can't find other network in Wi-Fi Setting's app).
3. Sometimes, especially in KitKat, the WiFi part of Android crashes and the only way to solve this annoying problem is a complete reboot of the device (this situation is recognizable when Android can't find other network in Wi-Fi Setting's app).

This shows that it's possible to extend the Wi-Fi Direct protocol in Android in some particular and limited scenarios, for example a chat.

## News
- *03/13/2015* - **Pigeon Messenger** Alpha 2 (updated to Android 5.1 with the new support libraries)
- *03/02/2015* - **Pigeon Messenger** Alpha 1 public release


Expand All @@ -40,14 +40,21 @@ You can:
8. manage an infinite number of chats
9. sending messages in a chat, previously stopped, if the associated device is discoverable
10. enqueue messages if the device is not discoverable, and send all of them at the next attempt to reconnect
11. use *"Eternal Discovery"*, a way to restart the discovery phase every time there are errors or disconnections
11. use *"Eternal Discovery"*, a way to restart the discovery phase every time that there are errors or disconnections

## Future extensions
- [ ] Connect more clients at the same GO without limitations
- [ ] Group chats where the GO receives messages from a client and it sends these messages to all other clients in broadcast
- [ ] Private chats between clients, i.e. a client uses his GO like a server to send private messages to another client, because in Wi-Fi Direct the communication between clients in a group is impossible. In this case is necessary to provide security mechanisms, like encryption, because a GO should never read private messages between its clients.
- [ ] and so on... ;)


## Images
<br/>
![alt tag](http://www.stefanocappa.it/publicfiles/Github_repositories_images/Pigeon_Messenger/tre_immagini.png
<br/>


## Usage
### General usage
1. Activate Wi-Fi on all devices
Expand Down Expand Up @@ -77,7 +84,7 @@ You can:
4. Chat with this device
5. Disconnect one device clicking on the second icon in the toolbar
6. Disable the Discovery Phase that was automatically restarted by "Eternal Discovery", so the list under "Other Devices" will be empty
7. Write some messages in the chat. As you can see the connection is not possibile, but don't despare, because this app is able to enqueue your messages
7. Write some messages in the chat. As you can see the connection is not possible, but don't despair, because this app is able to enqueue your messages
8. Restart the Discovery Phase e reconnect to the device in one of the methods described above ("Reconnection usage", step 7)
9. All messages in the queue will be automatically sent to destination in only one message

Expand Down Expand Up @@ -229,8 +236,8 @@ if (readMessage.contains(Configuration.MAGICADDRESSKEYWORD)) {


## License
TODO


TODO

*Stefano*
<br/>
Created by Stefano Cappa
6 changes: 3 additions & 3 deletions WiFiDirectMultiChat.iml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<module external.linked.project.id="WiFiDirectMultiChat" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="java-gradle" name="Java-Gradle">
<configuration>
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
<option name="BUILDABLE" value="false" />
</configuration>
</facet>
</component>
Expand All @@ -15,5 +16,4 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

</module>
8 changes: 4 additions & 4 deletions app/app.iml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="WiFiDirectMultiChat" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="WiFiDirectMultiChat" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
Expand All @@ -12,8 +12,9 @@
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
<option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" />
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
Expand Down Expand Up @@ -93,5 +94,4 @@
<orderEntry type="library" exported="" name="library-1.0.6" level="project" />
<orderEntry type="library" exported="" name="recyclerview-v7-22.0.0" level="project" />
</component>
</module>

</module>
Original file line number Diff line number Diff line change
Expand Up @@ -804,7 +804,7 @@ private void manageAddressMessageReception(P2pDestinationDevice p2pDevice) {
}
}

//NOT IMPLEMENTED BUT CAN BE USEFUL
//NOT IMPLEMENTED BUT PLEASE BE USEFUL
// @Override
// public void onChannelDisconnected() {
// // we will try once more
Expand Down
60 changes: 37 additions & 23 deletions build/intermediates/dex-cache/cache.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,67 @@
<items version="2" >

<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.3/classes.jar"
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.0.0/classes.jar"
jumboMode="false"
revision="21.1.2"
sha1="2c91c949a45a21cdecf26e03951e46c7beec9ad8">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-0018d869d60f87f2eb8533c6c646fcd2de2993a0.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.3/libs/internal_impl-21.0.3.jar"
jumboMode="false"
revision="21.1.2"
sha1="01ec05bfbafcc07646ba813000bf2ef11742dd03">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/internal_impl-21.0.3-b2ae62c63df971246fb31b05a86ec08bddc7b964.jar" />
revision="22.0.0"
sha1="d84409890828e07d344a3b9b1da545dba9897b51">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-9c836ffd9608183babba278dce2af43f13978e6e.jar" />
</item>
<item
jar="/Users/Ks89/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/21.0.3/support-annotations-21.0.3.jar"
jar="/Users/Ks89/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/22.0.0/support-annotations-22.0.0.jar"
jumboMode="false"
revision="21.1.2"
sha1="4b74cefe1f0c1b819e7260c8627a14674e37fd35">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/support-annotations-21.0.3-0454a0f2c9c5a734bb942fb74f0e1cb2ea0a7508.jar" />
revision="22.0.0"
sha1="685d0b2c590447e85284ed84712cb363ba04eff8">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2c0ee8a0c3937b77c58edae7e55183f37d1c2484.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/21.0.3/classes.jar"
jumboMode="false"
revision="21.1.2"
revision="22.0.0"
sha1="00b0b7233e1ec64acebfac40d4983d32d4712426">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-78d78ade4444571de2fe5654052a8aee14ed0330.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/libs/internal_impl-22.0.0.jar"
jumboMode="false"
revision="22.0.0"
sha1="b5b92f469d515a13d778900f6d50c03d12f35504">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-4e71dc17c43865f01350a08c1af4e785cdd8f460.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.jpardogo.materialtabstrip/library/1.0.6/classes.jar"
jumboMode="false"
revision="21.1.2"
revision="22.0.0"
sha1="15ebf37e2dc7047e993afdfb308610e171bcea1b">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-c25e5ec3d1c03ba0da1d391319809c428f830a7a.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/classes.jar"
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/classes.jar"
jumboMode="false"
revision="22.0.0"
sha1="4e86306289ace4aa0cfec44a05ed2b410d36989d">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-ed590eb848e6451476b8ce496f66e7119f2d549b.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.0.0/classes.jar"
jumboMode="false"
revision="22.0.0"
sha1="c6d79137693d494dee16372d3921f919eb724ced">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-2d6da60926051221e368a5d9c033ce5f5dfb105a.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/21.0.3/classes.jar"
jumboMode="false"
revision="21.1.2"
sha1="81d42bf983a8741f4888a6e333e454e4a5e0eeb7">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-c245e48355a6feca3ab1a1ed9653d6a82d02a247.jar" />
sha1="00b0b7233e1ec64acebfac40d4983d32d4712426">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-78d78ade4444571de2fe5654052a8aee14ed0330.jar" />
</item>
<item
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/21.0.3/classes.jar"
jar="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/exploded-aar/com.jpardogo.materialtabstrip/library/1.0.6/classes.jar"
jumboMode="false"
revision="21.1.2"
sha1="4b8945fc23a7461c6fdde15753456d64b0a9358b">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-daacbbb016350482171f89f3d3fb0ef846851ecb.jar" />
sha1="15ebf37e2dc7047e993afdfb308610e171bcea1b">
<dex dex="/Users/Ks89/AndroidStudioProjects/WiFiDirectMultiChat/app/build/intermediates/pre-dexed/debug/classes-c25e5ec3d1c03ba0da1d391319809c428f830a7a.jar" />
</item>

</items>

0 comments on commit 0266cf6

Please sign in to comment.