├── .gitignore ├── README.md ├── jabbr-client-android ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── ic_launcher-web.png ├── libs │ ├── getLibs.ps1 │ └── getLibs.sh ├── lint.xml ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── editboxborder.xml │ │ ├── ic_launcher.png │ │ └── logo.png │ ├── layout │ │ ├── activity_login.xml │ │ ├── activity_room.xml │ │ ├── activity_room_lobby.xml │ │ ├── room_messages_row.xml │ │ ├── room_user_messages_row.xml │ │ └── room_user_row.xml │ ├── menu │ │ ├── login.xml │ │ ├── room.xml │ │ └── room_lobby.xml │ ├── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ ├── strings_activity_login.xml │ │ ├── strings_activity_settings.xml │ │ └── styles.xml │ └── xml │ │ └── pref_general.xml └── src │ └── net │ └── jabbr │ └── client │ └── android │ ├── LoginActivity.java │ ├── RoomActivity.java │ ├── RoomAdapter.java │ ├── RoomLobbyActivity.java │ ├── RoomUsersAdapter.java │ ├── SettingsActivity.java │ ├── helpers │ ├── GravatarCache.java │ └── HubConnectionFactory.java │ └── model │ ├── ClientMessage.java │ ├── ClientNotification.java │ ├── LogOnInfo.java │ ├── Message.java │ ├── Room.java │ ├── User.java │ ├── UserMessages.java │ └── UserStatus.java └── license.txt /.gitignore: -------------------------------------------------------------------------------- 1 | jabbr-client-android/bin/* 2 | jabbr-client-android/gen/* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## JabbR for Android 2 | JabbR for Android is a chat application that uses SignalR for real-time communication. 3 | 4 | ### Features and Bugs 5 | If you want to discuss the features join discussion in the [meta](https://jabbr.net/#/rooms/meta) room on jabbr. 6 | 7 | ### Building the sources 8 | 9 | To build the project, it required the following files to be present in the libs directory: 10 | - signalr-client-sdk.jar (SignalR Library for Java) 11 | - signalr-client-sdk-android.jar (SignalR Platform tools for Android) 12 | - gson-2.2.2.jar (Json Library) 13 | 14 | This project uses the ActionBar feature available in the android-support-v7-appcompat project provided with the Android SDK. To build, it is required to add a reference of the appcompat project in this project. 15 | For more instructions to install the appcompat project go to: 16 | http://developer.android.com/tools/support-library/setup.html#libs-with-res 17 | 18 | 19 | To get the Gson Library: 20 | - Run getLibs.ps1 or getLibs.sh in the libs directory to download gson-2.2.2.jar 21 | 22 | 23 | To get the SignalR Library for Java and SignalR Platform tools for Android, download the sources and build the libraries from: https://github.com/SignalR/java-client 24 | 25 | #### Getting Involved 26 | We welcome contributions from experienced developers. You can get involved by logging bugs in github, hacking on the source, or discussing issues / features in the [meta](https://jabbr.net/#/rooms/meta) room. 27 | -------------------------------------------------------------------------------- /jabbr-client-android/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /jabbr-client-android/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | jabbr-client-android 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /jabbr-client-android/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /jabbr-client-android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 18 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 34 | 35 | 40 | 41 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /jabbr-client-android/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JabbR/Android/dd22d47b380f295f1f4c5b46bce0979af397b21d/jabbr-client-android/ic_launcher-web.png -------------------------------------------------------------------------------- /jabbr-client-android/libs/getLibs.ps1: -------------------------------------------------------------------------------- 1 | $client = new-object System.Net.WebClient 2 | $shell_app = new-object -com shell.application 3 | $scriptpath = $MyInvocation.MyCommand.Path 4 | $dir = Split-Path $scriptpath 5 | $filename = "google-gson-2.2.2-release.zip" 6 | 7 | Write-Host "Downloading Google Gson 2.2.2" 8 | $client.DownloadFile("http://google-gson.googlecode.com/files/google-gson-2.2.2-release.zip", "$dir\$filename") 9 | 10 | Write-Host "Decompressing..." 11 | $zip_file = $shell_app.namespace("$dir\$filename") 12 | $destination = $shell_app.namespace("$dir") 13 | $destination.Copyhere($zip_file.items()) 14 | 15 | Write-Host "Removing zip" 16 | Remove-Item "$dir\$filename" 17 | 18 | Write-Host "Move library to destination" 19 | Move-Item "$dir\google-gson-2.2.2\gson-2.2.2.jar" "$dir" 20 | 21 | Write-Host "Remove extra files" 22 | Remove-Item "$dir\google-gson-2.2.2\" -recurse 23 | -------------------------------------------------------------------------------- /jabbr-client-android/libs/getLibs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | echo "Downloading Google Gson 2.2.2" 4 | curl -O http://google-gson.googlecode.com/files/google-gson-2.2.2-release.zip 5 | 6 | echo "Decompressing..." 7 | unzip google-gson-2.2.2-release.zip 8 | 9 | echo "Removing zip" 10 | rm google-gson-2.2.2-release.zip 11 | 12 | echo "Move library to destination" 13 | mv ./google-gson-2.2.2/gson-2.2.2.jar ./ 14 | 15 | echo "Remove extra files" 16 | rm -rf ./google-gson-2.2.2 -------------------------------------------------------------------------------- /jabbr-client-android/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /jabbr-client-android/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /jabbr-client-android/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-19 15 | android.library.reference.1=../../../../../../../Applications/Android/sdk/extras/android/support/v7/appcompat 16 | -------------------------------------------------------------------------------- /jabbr-client-android/res/drawable-hdpi/editboxborder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /jabbr-client-android/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JabbR/Android/dd22d47b380f295f1f4c5b46bce0979af397b21d/jabbr-client-android/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /jabbr-client-android/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JabbR/Android/dd22d47b380f295f1f4c5b46bce0979af397b21d/jabbr-client-android/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /jabbr-client-android/res/layout/activity_login.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 16 | 17 | 22 | 23 | 31 | 32 | 33 | 34 | 35 | 40 | 41 | 45 | 46 | 47 | 54 | 55 | 63 | 64 | 65 | 66 | 76 | 77 | 84 | 85 | 99 | 100 | 117 | 118 |