http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/README
----------------------------------------------------------------------
diff --git a/README b/README
deleted file mode 100644
index 30987c7..0000000
--- a/README
+++ /dev/null
@@ -1,5 +0,0 @@
-"Wave in a Box" (WIAB) project is a stand alone wave server and rich web 
client that serves as an Apache Wave reference implementation.
-Apache Wave site: http://incubator.apache.org/wave/
-This project lets developers and enterprise users run wave servers and host 
waves on their own hardware. And then share those waves with other wave servers.
-
-This repository will soon contain a reference implementation of a Native 
Android client designed to work alongside the WIAB reference server.

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b40ef83
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# Apache Wave Client for Android
+
+"Wave in a Box" (WIAB) project is a stand alone wave server and rich web 
client that serves as an Apache Wave reference implementation.
+Apache Wave site: http://incubator.apache.org/wave/
+This project lets developers and enterprise users run wave servers and host 
waves on their own hardware. And then share those waves with other wave servers.

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/android-wave.iml
----------------------------------------------------------------------
diff --git a/android-wave.iml b/android-wave.iml
new file mode 100644
index 0000000..a61d68c
--- /dev/null
+++ b/android-wave.iml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="android-wave" 
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>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" 
inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/.gitignore
----------------------------------------------------------------------
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/app.iml
----------------------------------------------------------------------
diff --git a/app/app.iml b/app/app.iml
new file mode 100644
index 0000000..5fcc1af
--- /dev/null
+++ b/app/app.iml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="android-wave" 
external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="android-gradle" name="Android-Gradle">
+      <configuration>
+        <option name="GRADLE_PROJECT_PATH" value=":app" />
+      </configuration>
+    </facet>
+    <facet type="android" name="Android">
+      <configuration>
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <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="COMPILE_JAVA_TEST_TASK_NAME" 
value="compileDebugAndroidTestSources" />
+        <afterSyncTasks>
+          <task>generateDebugAndroidTestSources</task>
+          <task>generateDebugSources</task>
+        </afterSyncTasks>
+        <option name="ALLOW_USER_CONFIGURATION" value="false" />
+        <option name="MANIFEST_FILE_RELATIVE_PATH" 
value="/src/main/AndroidManifest.xml" />
+        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+        <option name="RES_FOLDERS_RELATIVE_PATH" 
value="file://$MODULE_DIR$/src/main/res" />
+        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" 
inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+    <output-test 
url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" 
isTestSource="false" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/aidl/debug" 
isTestSource="false" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" 
isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" 
isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" 
type="java-resource" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/res/generated/debug" 
type="java-resource" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" 
isTestSource="true" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" 
isTestSource="true" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" 
isTestSource="true" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" 
isTestSource="true" generated="true" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" 
type="java-test-resource" />
+      <sourceFolder 
url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" 
type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/res" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" 
type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" 
isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" 
/>
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" 
type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" 
type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" 
type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" 
isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" 
isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" 
isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" 
isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/jars"
 />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/22.2.0/jars"
 />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars"
 />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" 
/>
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
+      <excludeFolder 
url="file://$MODULE_DIR$/build/intermediates/javaResources" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
+    </content>
+    <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android 
SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" exported="" name="grizzly-framework-2.3.18" 
level="project" />
+    <orderEntry type="library" exported="" name="wave-in-a-box-0.6.0" 
level="project" />
+    <orderEntry type="library" exported="" name="design-22.2.0" 
level="project" />
+    <orderEntry type="library" exported="" name="netty-3.2.4.Final" 
level="project" />
+    <orderEntry type="library" exported="" name="gson-2.2.4" level="project" />
+    <orderEntry type="library" exported="" name="grizzly-websockets-2.3.18" 
level="project" />
+    <orderEntry type="library" exported="" name="support-annotations-22.2.0" 
level="project" />
+    <orderEntry type="library" exported="" name="wasync-1.4.3" level="project" 
/>
+    <orderEntry type="library" exported="" name="async-http-client-1.6.4" 
level="project" />
+    <orderEntry type="library" exported="" name="butterknife-6.1.0" 
level="project" />
+    <orderEntry type="library" exported="" name="grizzly-http-2.3.18" 
level="project" />
+    <orderEntry type="library" exported="" name="guava-15.0-sliced" 
level="project" />
+    <orderEntry type="library" exported="" name="protobuf-java-2.5.0" 
level="project" />
+    <orderEntry type="library" exported="" name="jsr305-2.0.1" level="project" 
/>
+    <orderEntry type="library" exported="" name="support-v4-22.2.0" 
level="project" />
+    <orderEntry type="library" exported="" name="async-http-client-1.8.14" 
level="project" />
+    <orderEntry type="library" exported="" name="appcompat-v7-22.2.0" 
level="project" />
+    <orderEntry type="library" exported="" name="slf4j-api-1.6.1" 
level="project" />
+    <orderEntry type="library" exported="" name="slf4j-android-1.6.1-RC1" 
level="project" />
+  </component>
+</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/build.gradle
----------------------------------------------------------------------
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..05d5545
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,36 @@
+apply plugin: 'com.android.application'
+
+android {
+    compileSdkVersion 21
+    buildToolsVersion "21.1.2"
+
+    defaultConfig {
+        applicationId "app.android.box.waveprotocol.org.androidwave"
+        minSdkVersion 21
+        targetSdkVersion 21
+        versionCode 1
+        versionName "1.0"
+        multiDexEnabled true
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
+        }
+    }
+    dependencies {
+        compile fileTree(dir: 'libs', include: ['*.jar'])
+        compile 'com.android.support:appcompat-v7:22.2.0'
+        compile 'com.android.support:design:22.2.0'
+        compile 'com.jakewharton:butterknife:6.1.0'
+        compile 'com.ning:async-http-client:1.6.4'
+        compile 'com.android.support:recyclerview-v7:22.2.+'
+        compile 'com.melnykov:floatingactionbutton:1.3.0'
+        compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
+
+    }
+}
+
+dependencies {
+    compile fileTree(dir: 'libs', include: ['*.jar'])
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/async-http-client-1.8.14.jar
----------------------------------------------------------------------
diff --git a/app/libs/async-http-client-1.8.14.jar 
b/app/libs/async-http-client-1.8.14.jar
new file mode 100644
index 0000000..7d07b3c
Binary files /dev/null and b/app/libs/async-http-client-1.8.14.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/grizzly-framework-2.3.18.jar
----------------------------------------------------------------------
diff --git a/app/libs/grizzly-framework-2.3.18.jar 
b/app/libs/grizzly-framework-2.3.18.jar
new file mode 100644
index 0000000..1329c3f
Binary files /dev/null and b/app/libs/grizzly-framework-2.3.18.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/grizzly-http-2.3.18.jar
----------------------------------------------------------------------
diff --git a/app/libs/grizzly-http-2.3.18.jar b/app/libs/grizzly-http-2.3.18.jar
new file mode 100644
index 0000000..92dc037
Binary files /dev/null and b/app/libs/grizzly-http-2.3.18.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/grizzly-websockets-2.3.18.jar
----------------------------------------------------------------------
diff --git a/app/libs/grizzly-websockets-2.3.18.jar 
b/app/libs/grizzly-websockets-2.3.18.jar
new file mode 100644
index 0000000..b6b47a6
Binary files /dev/null and b/app/libs/grizzly-websockets-2.3.18.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/gson-2.2.4.jar
----------------------------------------------------------------------
diff --git a/app/libs/gson-2.2.4.jar b/app/libs/gson-2.2.4.jar
new file mode 100644
index 0000000..75fe27c
Binary files /dev/null and b/app/libs/gson-2.2.4.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/guava-15.0-sliced.jar
----------------------------------------------------------------------
diff --git a/app/libs/guava-15.0-sliced.jar b/app/libs/guava-15.0-sliced.jar
new file mode 100644
index 0000000..48072e9
Binary files /dev/null and b/app/libs/guava-15.0-sliced.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/jsr305-2.0.1.jar
----------------------------------------------------------------------
diff --git a/app/libs/jsr305-2.0.1.jar b/app/libs/jsr305-2.0.1.jar
new file mode 100644
index 0000000..43807b0
Binary files /dev/null and b/app/libs/jsr305-2.0.1.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/protobuf-java-2.5.0.jar
----------------------------------------------------------------------
diff --git a/app/libs/protobuf-java-2.5.0.jar b/app/libs/protobuf-java-2.5.0.jar
new file mode 100644
index 0000000..4c4e686
Binary files /dev/null and b/app/libs/protobuf-java-2.5.0.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/slf4j-android-1.6.1-RC1.jar
----------------------------------------------------------------------
diff --git a/app/libs/slf4j-android-1.6.1-RC1.jar 
b/app/libs/slf4j-android-1.6.1-RC1.jar
new file mode 100644
index 0000000..480348f
Binary files /dev/null and b/app/libs/slf4j-android-1.6.1-RC1.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/wasync-1.4.3.jar
----------------------------------------------------------------------
diff --git a/app/libs/wasync-1.4.3.jar b/app/libs/wasync-1.4.3.jar
new file mode 100644
index 0000000..49371d4
Binary files /dev/null and b/app/libs/wasync-1.4.3.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/libs/wave-in-a-box-0.6.0.jar
----------------------------------------------------------------------
diff --git a/app/libs/wave-in-a-box-0.6.0.jar b/app/libs/wave-in-a-box-0.6.0.jar
new file mode 100644
index 0000000..e9a7043
Binary files /dev/null and b/app/libs/wave-in-a-box-0.6.0.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/proguard-rules.pro
----------------------------------------------------------------------
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..6179f23
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in 
C:\Users\roshan\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/androidTest/java/app/android/box/waveprotocol/org/androidwave/ApplicationTest.java
----------------------------------------------------------------------
diff --git 
a/app/src/androidTest/java/app/android/box/waveprotocol/org/androidwave/ApplicationTest.java
 
b/app/src/androidTest/java/app/android/box/waveprotocol/org/androidwave/ApplicationTest.java
new file mode 100644
index 0000000..b6d2f66
--- /dev/null
+++ 
b/app/src/androidTest/java/app/android/box/waveprotocol/org/androidwave/ApplicationTest.java
@@ -0,0 +1,13 @@
+package app.android.box.waveprotocol.org.androidwave;
+
+import android.app.Application;
+import android.test.ApplicationTestCase;
+
+/**
+ * <a href="http://d.android.com/tools/testing/testing_android.html";>Testing 
Fundamentals</a>
+ */
+public class ApplicationTest extends ApplicationTestCase<Application> {
+    public ApplicationTest() {
+        super(Application.class);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..bb6f81e
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android";
+    package="app.android.box.waveprotocol.org.androidwave" >
+
+    <uses-permission 
android:name="android.permission.INTERNET"></uses-permission>
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/MyMaterialTheme" >
+        <activity
+            android:name=".activities.MainActivity"
+            android:label="@string/app_name"
+            android:theme="@style/MyMaterialTheme">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.LoginActivity"
+            android:theme="@style/MyMaterialTheme">
+            <intent-filter>
+            <action 
android:name="app.android.box.waveprotocol.org.androidwave.LOGINACTIVITY" />
+            <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.SignUpActivity"
+            android:theme="@style/MyMaterialTheme">
+            <intent-filter>
+                <action 
android:name="app.android.box.waveprotocol.org.androidwave.SINGUPACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.InboxActivity"
+            android:label=""
+            android:theme="@style/MyMaterialTheme">
+            <intent-filter>
+                <action 
android:name="app.android.box.waveprotocol.org.androidwave.INBOXACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.SelectFriendActivity"
+            android:label=""
+            android:theme="@style/MyMaterialTheme">
+            <meta-data android:name="android.support.PARENT_ACTIVITY" 
android:value=".activities.InboxActivity"/>
+            <intent-filter>
+                <action 
android:name="app.android.box.waveprotocol.org.androidwave.NEWWAVEACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.SearchActivity"
+            android:label=""
+            android:theme="@style/MyMaterialTheme">
+            <intent-filter>
+                <action 
android:name="app.android.box.waveprotocol.org.androidwave.SEARCHACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".activities.ChatNewWaveActivity"
+            android:label=""
+            android:theme="@style/MyMaterialTheme">
+            <meta-data android:name="android.support.PARENT_ACTIVITY" 
android:value=".activities.SelectFriendActivity"/>
+            <intent-filter>
+                <action 
android:name="app.android.box.waveprotocol.org.androidwave.CHATNEWWAVEACTIVITY" 
/>
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/ic_launcher-web.png
----------------------------------------------------------------------
diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png
new file mode 100644
index 0000000..9ee15dd
Binary files /dev/null and b/app/src/main/ic_launcher-web.png differ

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendActivity.java
new file mode 100644
index 0000000..6ce352e
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendActivity.java
@@ -0,0 +1,7 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by roshan on 9/5/15.
+ */
+public class ChatNewFriendActivity {
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendFragment.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendFragment.java
new file mode 100644
index 0000000..22b985a
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewFriendFragment.java
@@ -0,0 +1,7 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by roshan on 9/5/15.
+ */
+public class ChatNewFriendFragment {
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveActivity.java
new file mode 100644
index 0000000..d437cf5
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveActivity.java
@@ -0,0 +1,85 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.app.NavUtils;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.ImageButton;
+
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roellk on 8/23/2015.
+ */
+public class ChatNewWaveActivity extends AppCompatActivity {
+
+    private Toolbar mToolbar;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.chat_new_wave_activtiy);
+
+        mToolbar = (Toolbar) findViewById(R.id.toolbar);
+
+        setSupportActionBar(mToolbar);
+        getSupportActionBar().setHomeButtonEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+        Fragment fragment = null;
+        String title = getString(R.string.app_name);
+        ImageButton myImage;
+
+
+        fragment = new ChatNewWaveFragment();
+        title = getString(R.string.new_wave_name);
+
+
+        if (fragment != null) {
+            FragmentManager fragmentManager = getSupportFragmentManager();
+            FragmentTransaction fragmentTransaction = 
fragmentManager.beginTransaction();
+            fragmentTransaction.replace(R.id.container_body_chat_newWave, 
fragment);
+            fragmentTransaction.commit();
+
+            // set the toolbar title
+            getSupportActionBar().setTitle(title);
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is 
present.
+        getMenuInflater().inflate(R.menu.menu_main2, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+
+        if(id == R.id.home){
+            NavUtils.navigateUpFromSameTask(this);
+        }
+        //noinspection SimplifiableIfStatement
+        if (id == R.id.action_settings) {
+            return true;
+        }
+
+        if (id == R.id.action_forward) {
+            Intent openLoginActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.INBOXACTIVITY");
+            startActivity(openLoginActivity);
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveFragment.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveFragment.java
new file mode 100644
index 0000000..aaa453f
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/ChatNewWaveFragment.java
@@ -0,0 +1,43 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.v4.app.ListFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roellk on 8/24/2015.
+ */
+public class ChatNewWaveFragment extends ListFragment {
+
+
+    public ChatNewWaveFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.chat_new_wave_fragment, 
container, false);
+        // Inflate the layout for this fragment
+        return rootView;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataItem.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataItem.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataItem.java
new file mode 100644
index 0000000..e4f4419
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataItem.java
@@ -0,0 +1,34 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.graphics.drawable.Drawable;
+
+/**
+ * @author amulya
+ * @datetime 17 Oct 2014, 3:50 PM
+ */
+public class DataItem {
+
+    private String label;
+
+    private Drawable drawable;
+
+    private int navigationInfo;
+
+    public DataItem(String label, Drawable drawable, int navigationInfo) {
+        this.label = label;
+        this.drawable = drawable;
+        this.navigationInfo = navigationInfo;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public Drawable getDrawable() {
+        return drawable;
+    }
+
+    public int getNavigationInfo() {
+        return navigationInfo;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataSource.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataSource.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataSource.java
new file mode 100644
index 0000000..489bede
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DataSource.java
@@ -0,0 +1,99 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+
+import java.util.ArrayList;
+
+/**
+ * @author amulya
+ * @datetime 17 Oct 2014, 3:49 PM
+ */
+public class DataSource {
+
+    public static final int NO_NAVIGATION = -1;
+
+    private ArrayList<DataItem> mDataSource;
+    private DrawableProvider mProvider;
+
+    public DataSource(Context context) {
+        mProvider = new DrawableProvider(context);
+        mDataSource = new ArrayList<DataItem>();
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_RECT));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_ROUND_RECT));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_ROUND));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_RECT_BORDER));
+        
mDataSource.add(itemFromType(DrawableProvider.SAMPLE_ROUND_RECT_BORDER));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_ROUND_BORDER));
+        
mDataSource.add(itemFromType(DrawableProvider.SAMPLE_MULTIPLE_LETTERS));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_FONT));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_SIZE));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_ANIMATION));
+        mDataSource.add(itemFromType(DrawableProvider.SAMPLE_MISC));
+    }
+
+    public int getCount() {
+        return mDataSource.size();
+    }
+
+    public DataItem getItem(int position) {
+        return mDataSource.get(position);
+    }
+
+    private DataItem itemFromType(int type) {
+        String label = null;
+        Drawable drawable = null;
+        switch (type) {
+            case DrawableProvider.SAMPLE_RECT:
+                label = "Rectangle with Text";
+                drawable = mProvider.getRect("A");
+                break;
+            case DrawableProvider.SAMPLE_ROUND_RECT:
+                label = "Round Corner with Text";
+                drawable = mProvider.getRoundRect("B");
+                break;
+            case DrawableProvider.SAMPLE_ROUND:
+                label = "Round with Text";
+                drawable = mProvider.getRound("C");
+                break;
+            case DrawableProvider.SAMPLE_RECT_BORDER:
+                label = "Rectangle with Border";
+                drawable = mProvider.getRectWithBorder("D");
+                break;
+            case DrawableProvider.SAMPLE_ROUND_RECT_BORDER:
+                label = "Round Corner with Border";
+                drawable = mProvider.getRoundRectWithBorder("E");
+                break;
+            case DrawableProvider.SAMPLE_ROUND_BORDER:
+                label = "Round with Border";
+                drawable = mProvider.getRoundWithBorder("F");
+                break;
+            case DrawableProvider.SAMPLE_MULTIPLE_LETTERS:
+                label = "Support multiple letters";
+                drawable = mProvider.getRectWithMultiLetter();
+                type = NO_NAVIGATION;
+                break;
+            case DrawableProvider.SAMPLE_FONT:
+                label = "Support variable font styles";
+                drawable = mProvider.getRoundWithCustomFont();
+                type = NO_NAVIGATION;
+                break;
+            case DrawableProvider.SAMPLE_SIZE:
+                label = "Support for custom size";
+                drawable = mProvider.getRectWithCustomSize();
+                type = NO_NAVIGATION;
+                break;
+            case DrawableProvider.SAMPLE_ANIMATION:
+                label = "Support for animations";
+                drawable = mProvider.getRectWithAnimation();
+                type = NO_NAVIGATION;
+                break;
+            case DrawableProvider.SAMPLE_MISC:
+                label = "Miscellaneous";
+                drawable =  mProvider.getRect("\u03c0");
+                type = NO_NAVIGATION;
+                break;
+        }
+        return new DataItem(label, drawable, type);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DrawableProvider.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DrawableProvider.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DrawableProvider.java
new file mode 100644
index 0000000..fcb73a8
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/DrawableProvider.java
@@ -0,0 +1,146 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.InsetDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.util.TypedValue;
+
+import com.amulyakhare.textdrawable.TextDrawable;
+import com.amulyakhare.textdrawable.util.ColorGenerator;
+
+/**
+ * @author amulya
+ * @datetime 17 Oct 2014, 4:02 PM
+ */
+public class DrawableProvider {
+
+    public static final int SAMPLE_RECT = 1;
+    public static final int SAMPLE_ROUND_RECT = 2;
+    public static final int SAMPLE_ROUND = 3;
+    public static final int SAMPLE_RECT_BORDER = 4;
+    public static final int SAMPLE_ROUND_RECT_BORDER = 5;
+    public static final int SAMPLE_ROUND_BORDER = 6;
+    public static final int SAMPLE_MULTIPLE_LETTERS = 7;
+    public static final int SAMPLE_FONT = 8;
+    public static final int SAMPLE_SIZE = 9;
+    public static final int SAMPLE_ANIMATION = 10;
+    public static final int SAMPLE_MISC = 11;
+
+    private final ColorGenerator mGenerator;
+    private final Context mContext;
+
+    public DrawableProvider(Context context) {
+        mGenerator = ColorGenerator.DEFAULT;
+        mContext = context;
+    }
+
+    public TextDrawable getRect(String text) {
+        return TextDrawable.builder()
+                .buildRect(text, mGenerator.getColor(text));
+    }
+
+    public TextDrawable getRound(String text) {
+        return TextDrawable.builder()
+                .buildRound(text, mGenerator.getColor(text));
+    }
+
+    public TextDrawable getRoundRect(String text) {
+        return TextDrawable.builder()
+                .buildRoundRect(text, mGenerator.getColor(text), toPx(10));
+    }
+
+    public TextDrawable getRectWithBorder(String text) {
+        return TextDrawable.builder()
+                .beginConfig()
+                    .withBorder(toPx(2))
+                .endConfig()
+                .buildRect(text, mGenerator.getColor(text));
+    }
+
+    public TextDrawable getRoundWithBorder(String text) {
+        return TextDrawable.builder()
+                .beginConfig()
+                    .withBorder(toPx(2))
+                .endConfig()
+                .buildRound(text, mGenerator.getColor(text));
+    }
+
+    public TextDrawable getRoundRectWithBorder(String text) {
+        return TextDrawable.builder()
+                .beginConfig()
+                    .withBorder(toPx(2))
+                .endConfig()
+                .buildRoundRect(text, mGenerator.getColor(text), toPx(10));
+    }
+
+    public TextDrawable getRectWithMultiLetter() {
+        String text = "AK";
+        return TextDrawable.builder()
+                .beginConfig()
+                    .fontSize(toPx(20))
+                    .toUpperCase()
+                .endConfig()
+                .buildRect(text, mGenerator.getColor(text));
+    }
+
+    public TextDrawable getRoundWithCustomFont() {
+        String text = "Bold";
+        return TextDrawable.builder()
+                .beginConfig()
+                    .useFont(Typeface.DEFAULT)
+                    .fontSize(toPx(15))
+                    .textColor(0xfff58559)
+                    .bold()
+                .endConfig()
+                .buildRect(text, Color.DKGRAY /*toPx(5)*/);
+    }
+
+    public Drawable getRectWithCustomSize() {
+        String leftText = "I";
+        String rightText = "J";
+
+        TextDrawable.IBuilder builder = TextDrawable.builder()
+                .beginConfig()
+                    .width(toPx(29))
+                    .withBorder(toPx(2))
+                .endConfig()
+                .rect();
+
+        TextDrawable left = builder
+                .build(leftText, mGenerator.getColor(leftText));
+
+        TextDrawable right = builder
+                .build(rightText, mGenerator.getColor(rightText));
+
+        Drawable[] layerList = {
+                new InsetDrawable(left, 0, 0, toPx(31), 0),
+                new InsetDrawable(right, toPx(31), 0, 0, 0)
+        };
+        return new LayerDrawable(layerList);
+    }
+
+    public Drawable getRectWithAnimation() {
+        TextDrawable.IBuilder builder = TextDrawable.builder()
+                .rect();
+
+        AnimationDrawable animationDrawable = new AnimationDrawable();
+        for (int i = 10; i > 0; i--) {
+            TextDrawable frame = builder.build(String.valueOf(i), 
mGenerator.getRandomColor());
+            animationDrawable.addFrame(frame, 1200);
+        }
+        animationDrawable.setOneShot(false);
+        animationDrawable.start();
+
+        return animationDrawable;
+    }
+
+    public int toPx(int dp) {
+        Resources resources = mContext.getResources();
+        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
dp, resources.getDisplayMetrics());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/FragmentDrawer.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/FragmentDrawer.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/FragmentDrawer.java
new file mode 100644
index 0000000..40e223d
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/FragmentDrawer.java
@@ -0,0 +1,181 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by Ravi on 29/07/15.
+ */
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
+import android.view.GestureDetector;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+public class FragmentDrawer extends Fragment {
+
+    private static String TAG = FragmentDrawer.class.getSimpleName();
+
+    private RecyclerView recyclerView;
+    private ActionBarDrawerToggle mDrawerToggle;
+    private DrawerLayout mDrawerLayout;
+    private NavigationDrawerAdapter adapter;
+    private View containerView;
+    private static String[] titles = null;
+    private FragmentDrawerListener drawerListener;
+
+    public FragmentDrawer() {
+
+    }
+
+    public void setDrawerListener(FragmentDrawerListener listener) {
+        this.drawerListener = listener;
+    }
+
+    public static List<NavDrawerItem> getData() {
+        List<NavDrawerItem> data = new ArrayList<>();
+
+
+        // preparing navigation drawer items
+        for (int i = 0; i < titles.length; i++) {
+            NavDrawerItem navItem = new NavDrawerItem();
+            navItem.setTitle(titles[i]);
+            data.add(navItem);
+        }
+        return data;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // drawer labels
+        titles = 
getActivity().getResources().getStringArray(R.array.nav_drawer_labels);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        // Inflating view layout
+        View layout = inflater.inflate(R.layout.fragment_navigation_drawer, 
container, false);
+        recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
+
+        adapter = new NavigationDrawerAdapter(getActivity(), getData());
+        recyclerView.setAdapter(adapter);
+        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+        recyclerView.addOnItemTouchListener(new 
RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
+            @Override
+            public void onClick(View view, int position) {
+                drawerListener.onDrawerItemSelected(view, position);
+                mDrawerLayout.closeDrawer(containerView);
+            }
+
+            @Override
+            public void onLongClick(View view, int position) {
+
+            }
+        }));
+
+        return layout;
+    }
+
+
+    public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar 
toolbar) {
+        containerView = getActivity().findViewById(fragmentId);
+        mDrawerLayout = drawerLayout;
+        mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, 
toolbar, R.string.drawer_open, R.string.drawer_close) {
+            @Override
+            public void onDrawerOpened(View drawerView) {
+                super.onDrawerOpened(drawerView);
+                getActivity().invalidateOptionsMenu();
+            }
+
+            @Override
+            public void onDrawerClosed(View drawerView) {
+                super.onDrawerClosed(drawerView);
+                getActivity().invalidateOptionsMenu();
+            }
+
+            @Override
+            public void onDrawerSlide(View drawerView, float slideOffset) {
+                super.onDrawerSlide(drawerView, slideOffset);
+                toolbar.setAlpha(1 - slideOffset / 2);
+            }
+        };
+
+        mDrawerLayout.setDrawerListener(mDrawerToggle);
+        mDrawerLayout.post(new Runnable() {
+            @Override
+            public void run() {
+                mDrawerToggle.syncState();
+            }
+        });
+
+    }
+
+    public static interface ClickListener {
+        public void onClick(View view, int position);
+
+        public void onLongClick(View view, int position);
+    }
+
+    static class RecyclerTouchListener implements 
RecyclerView.OnItemTouchListener {
+
+        private GestureDetector gestureDetector;
+        private ClickListener clickListener;
+
+        public RecyclerTouchListener(Context context, final RecyclerView 
recyclerView, final ClickListener clickListener) {
+            this.clickListener = clickListener;
+            gestureDetector = new GestureDetector(context, new 
GestureDetector.SimpleOnGestureListener() {
+                @Override
+                public boolean onSingleTapUp(MotionEvent e) {
+                    return true;
+                }
+
+                @Override
+                public void onLongPress(MotionEvent e) {
+                    View child = recyclerView.findChildViewUnder(e.getX(), 
e.getY());
+                    if (child != null && clickListener != null) {
+                        clickListener.onLongClick(child, 
recyclerView.getChildPosition(child));
+                    }
+                }
+            });
+        }
+
+        @Override
+        public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
+
+            View child = rv.findChildViewUnder(e.getX(), e.getY());
+            if (child != null && clickListener != null && 
gestureDetector.onTouchEvent(e)) {
+                clickListener.onClick(child, rv.getChildPosition(child));
+            }
+            return false;
+        }
+
+        @Override
+        public void onTouchEvent(RecyclerView rv, MotionEvent e) {
+        }
+
+        @Override
+        public void onRequestDisallowInterceptTouchEvent(boolean 
disallowIntercept) {
+
+        }
+
+
+    }
+
+    public interface FragmentDrawerListener {
+        public void onDrawerItemSelected(View view, int position);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/Friendadapter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/Friendadapter.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/Friendadapter.java
new file mode 100644
index 0000000..dd56a7b
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/Friendadapter.java
@@ -0,0 +1,58 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roellk on 8/15/2015.
+ */
+public class Friendadapter extends BaseAdapter{
+    private Context context;
+    String[] friendNames;
+    int[] images = 
{R.drawable.letter_a,R.drawable.letter_r,R.drawable.letter_e,R.drawable.letter_g,R.drawable.letter_u,R.drawable.letter_b,R.drawable.letter_m,R.drawable.letter_p,R.drawable.letter_y,R.drawable.letter_d};
+
+    public Friendadapter(Context context){
+        this.context = context;
+        friendNames = 
context.getResources().getStringArray(R.array.friend_names);
+    }
+
+    @Override
+    public int getCount() {
+        return friendNames.length;
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return friendNames[position];
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        View row =null;
+        if(convertView == null){
+
+            LayoutInflater inflater = (LayoutInflater) context 
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            row = inflater.inflate(R.layout.custom_row,parent,false);
+        }else{
+            row = convertView;
+        }
+        TextView textViewFriend =(TextView) 
row.findViewById(R.id.textViewFriend);
+        ImageView imageViewFriend = 
(ImageView)row.findViewById(R.id.imageViewFriend);
+
+        textViewFriend.setText(friendNames[position]);
+        imageViewFriend.setImageResource(images[position]);
+        return row;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxActivity.java
new file mode 100644
index 0000000..ba679e7
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxActivity.java
@@ -0,0 +1,195 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roshan on 6/25/15.
+ */
+public class InboxActivity extends AppCompatActivity implements 
FragmentDrawer.FragmentDrawerListener{
+
+    private static String TAG = MainActivity.class.getSimpleName();
+
+    private Toolbar mToolbar;
+    private FragmentDrawer drawerFragment;
+
+    private Toolbar toolbar;
+    ImageButton FAB;
+    Button singOut;
+    ImageButton search;
+
+
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.inbox_activity);
+
+        mToolbar = (Toolbar) findViewById(R.id.toolbar);
+
+        setSupportActionBar(mToolbar);
+        getSupportActionBar().setDisplayShowHomeEnabled(true);
+
+        drawerFragment = (FragmentDrawer)
+                
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
+        drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) 
findViewById(R.id.drawer_layout), mToolbar);
+        drawerFragment.setDrawerListener(this);
+
+        // display the first navigation drawer view on app launch
+        displayView(0);
+    }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is 
present.
+        getMenuInflater().inflate(R.menu.menu_main, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+
+        //noinspection SimplifiableIfStatement
+        if (id == R.id.action_settings) {
+            return true;
+        }
+
+        if(id == R.id.action_search){
+            //Toast.makeText(getApplicationContext(), "Search action is 
selected!", Toast.LENGTH_SHORT).show();
+            Intent openNewWavectivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.SEARCHACTIVITY");
+            startActivity(openNewWavectivity);
+            return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onDrawerItemSelected(View view, int position) {
+        displayView(position);
+    }
+
+    private void displayView(int position) {
+        Fragment fragment = null;
+        String title = getString(R.string.app_name);
+        switch (position) {
+            case 0:
+                fragment = new InboxFragment();
+                title = getString(R.string.title_home);
+                break;
+            case 1:
+//                fragment = new FriendsFragment();
+//                title = getString(R.string.title_friends);
+//                break;
+            case 2:
+//                fragment = new MessagesFragment();
+//                title = getString(R.string.title_messages);
+//                break;
+            case 3:
+//                Sign out
+            default:
+                break;
+        }
+
+        if (fragment != null) {
+            FragmentManager fragmentManager = getSupportFragmentManager();
+            FragmentTransaction fragmentTransaction = 
fragmentManager.beginTransaction();
+            fragmentTransaction.replace(R.id.container_body, fragment);
+            fragmentTransaction.commit();
+
+            // set the toolbar title
+            getSupportActionBar().setTitle(title);
+        }
+        /*
+        toolbar = (Toolbar) findViewById(R.id.tool_bar); // Attaching the 
layout to the toolbar object
+        setSupportActionBar(toolbar);
+
+
+        FAB = (ImageButton) findViewById(R.id.imageButton);
+        search = (ImageButton) findViewById(R.id.ic_search);
+        //singOut = (Button) findViewById(R.id.singOut);
+
+        FAB.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent openNewWavectivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.NEWWAVEACTIVITY");
+                startActivity(openNewWavectivity);
+                //new wave
+                //setContentView(R.layout.activity_new_wave);
+            }
+        });
+
+        search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent openNewWavectivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.SEARCHACTIVITY");
+                startActivity(openNewWavectivity);
+                //test3
+                //setC//testontentView(R.layout.activity_new_wave);
+            }
+        });
+        */
+
+    }
+
+//    @Override
+////    public boolean onCreateOptionsMenu(Menu menu) {
+////        // Inflate the menu; this adds items to the action bar if it is 
present.
+////        getMenuInflater().inflate(R.menu.menu_main, menu);
+////        return true;
+////    }
+//
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item) {
+//        // Handle action bar item clicks here. The action bar will
+//        // automatically handle clicks on the Home/Up button, so long
+//        // as you specify a parent activity in AndroidManifest.xml.
+//        int id = item.getItemId();
+//
+//        //noinspection SimplifiableIfStatement
+////        if (id == R.id.action_search) {
+////            Intent openSearchActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.SEARCHACTIVITY");
+////            startActivity(openSearchActivity);
+////        }
+//
+//        return super.onOptionsItemSelected(item);
+    }
+

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxFragment.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxFragment.java
new file mode 100644
index 0000000..1031acc
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/InboxFragment.java
@@ -0,0 +1,86 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by Ravi on 29/07/15.
+ */
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.design.widget.FloatingActionButton;
+import android.support.v4.app.ListFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+
+public class InboxFragment extends ListFragment {
+
+    MessageAdapter myadapter;
+
+    public InboxFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+//        String[] values = new String[] { "Message1", "Message2", "Message3",
+//                "Message4", "Message5", "Message6", "Message7", "Message8",
+//                "Message9", "Message10" };
+//
+//        ArrayAdapter<String> adapter = new 
ArrayAdapter<String>(getActivity(),
+//                android.R.layout.simple_list_item_1, values);
+//        setListAdapter(adapter);
+        myadapter = new MessageAdapter(getActivity());
+        setListAdapter(myadapter);
+
+    }
+
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        String item = (String) getListAdapter().getItem(position);
+        Toast.makeText(getActivity(), item + " selected", 
Toast.LENGTH_LONG).show();
+//        ImageView img= (ImageView) findViewById(R.id.image);
+//        img.setImageResource(R.drawable.my_image);
+
+//        ImageView img = new ImageView(this);
+//        img.setImageResource(R.drawable.my_image);
+
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.inbox_fragment, container, 
false);
+
+
+        FloatingActionButton fab = (FloatingActionButton) 
rootView.findViewById(R.id.fab);
+
+        fab.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent openNewWavectivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.NEWWAVEACTIVITY");
+                startActivity(openNewWavectivity);
+                //test5
+                //setContentView(R.layout.activity_new_wave);
+            }
+        });
+        // Inflate the layout for this fragment
+        return rootView;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/LoginActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/LoginActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/LoginActivity.java
new file mode 100644
index 0000000..b3bc72b
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/LoginActivity.java
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+import app.android.box.waveprotocol.org.androidwave.service.WaveService;
+
+public class LoginActivity extends Activity {
+
+    Button login;
+    TextView sighup;
+    EditText username;
+    EditText password;
+
+//    AsyncTask<String, Void, String> waveSignInTask;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.login_activity);
+
+        login = (Button) findViewById(R.id.btn_login);
+        sighup = (TextView) findViewById(R.id.link_signup);
+        username = (EditText) findViewById(R.id.input_email);
+        password = (EditText) findViewById(R.id.input_password);
+
+        login.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                
//startLoginSession(Util.getHostAndUserNames(username.getText().toString())[1], 
Util.getHostAndUserNames(username.getText().toString())[0], 
password.getText().toString());
+                Intent openLoginActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.INBOXACTIVITY");
+                startActivity(openLoginActivity);
+//                Intent openTest= new 
Intent("app.android.box.waveprotocol.org.androidwave.TEST");
+//                startActivity(openTest);
+            }
+        });
+
+        sighup.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent openSignupActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.SINGUPACTIVITY");
+                startActivity(openSignupActivity);
+            }
+        });
+
+    }
+
+    private void startLoginSession(String hostname, String username, String 
password) {
+        WaveService waveService = new WaveService();
+        waveService.waveLoginTask(hostname, username, password);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MainActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MainActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MainActivity.java
new file mode 100644
index 0000000..59353dd
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MainActivity.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+
+public class MainActivity extends Activity{
+
+    Animation move;
+    ImageView myImageView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main_activity);
+
+        myImageView = (ImageView) findViewById(R.id.myImage);
+        move = AnimationUtils.loadAnimation(getApplicationContext(),
+                R.anim.move);
+        myImageView.startAnimation(move);
+
+
+        Thread timer = new Thread(){
+            public void run(){
+                try {
+                    sleep(2000);
+                }catch (InterruptedException e){
+                    e.printStackTrace();
+                }finally {
+                    Intent openLoginActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.LOGINACTIVITY");
+                    startActivity(openLoginActivity);
+                }
+            }
+        };
+        timer.start();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        finish();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MessageAdapter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MessageAdapter.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MessageAdapter.java
new file mode 100644
index 0000000..5872797
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/MessageAdapter.java
@@ -0,0 +1,63 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roellk on 8/19/2015.
+ */
+public class MessageAdapter extends BaseAdapter {
+    private Context context;
+    String[] header;
+    String[] content;
+    int[] images = 
{R.drawable.letter_a,R.drawable.letter_r,R.drawable.letter_e,R.drawable.letter_g,R.drawable.letter_u,R.drawable.letter_b,R.drawable.letter_m,R.drawable.letter_p,R.drawable.letter_y,R.drawable.letter_d};
+
+    public MessageAdapter(Context context){
+        this.context = context;
+        header = context.getResources().getStringArray(R.array.friend_names);
+        content = context.getResources().getStringArray(R.array.friend_names2);
+    }
+
+    @Override
+    public int getCount() {
+        return header.length;
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return header[position];
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        View row =null;
+        if(convertView == null){
+
+            LayoutInflater inflater = (LayoutInflater) context 
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            row = inflater.inflate(R.layout.custom_message_row,parent,false);
+        }else{
+            row = convertView;
+        }
+        TextView textViewHeader =(TextView) 
row.findViewById(R.id.textViewHeader);
+        TextView textViewContent =(TextView) 
row.findViewById(R.id.textViewContent);
+        ImageView imageViewFriend = 
(ImageView)row.findViewById(R.id.imageViewMessage);
+
+
+        textViewHeader.setText(header[position]);
+        textViewContent.setText(content[position]);
+        imageViewFriend.setImageResource(images[position]);
+        return row;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavDrawerItem.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavDrawerItem.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavDrawerItem.java
new file mode 100644
index 0000000..bff06a0
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavDrawerItem.java
@@ -0,0 +1,35 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by Ravi on 29/07/15.
+ */
+public class NavDrawerItem {
+    private boolean showNotify;
+    private String title;
+
+
+    public NavDrawerItem() {
+
+    }
+
+    public NavDrawerItem(boolean showNotify, String title) {
+        this.showNotify = showNotify;
+        this.title = title;
+    }
+
+    public boolean isShowNotify() {
+        return showNotify;
+    }
+
+    public void setShowNotify(boolean showNotify) {
+        this.showNotify = showNotify;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavigationDrawerAdapter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavigationDrawerAdapter.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavigationDrawerAdapter.java
new file mode 100644
index 0000000..2c72341
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/NavigationDrawerAdapter.java
@@ -0,0 +1,61 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by Ravi on 29/07/15.
+ */
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import java.util.Collections;
+import java.util.List;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+public class NavigationDrawerAdapter extends 
RecyclerView.Adapter<NavigationDrawerAdapter.MyViewHolder> {
+    List<NavDrawerItem> data = Collections.emptyList();
+    private LayoutInflater inflater;
+    private Context context;
+
+    public NavigationDrawerAdapter(Context context, List<NavDrawerItem> data) {
+        this.context = context;
+        inflater = LayoutInflater.from(context);
+        this.data = data;
+    }
+
+    public void delete(int position) {
+        data.remove(position);
+        notifyItemRemoved(position);
+    }
+
+    @Override
+    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view = inflater.inflate(R.layout.nav_drawer_row, parent, false);
+        MyViewHolder holder = new MyViewHolder(view);
+        return holder;
+    }
+
+    @Override
+    public void onBindViewHolder(MyViewHolder holder, int position) {
+        NavDrawerItem current = data.get(position);
+        holder.title.setText(current.getTitle());
+    }
+
+    @Override
+    public int getItemCount() {
+        return data.size();
+    }
+
+    class MyViewHolder extends RecyclerView.ViewHolder {
+        TextView title;
+
+        public MyViewHolder(View itemView) {
+            super(itemView);
+            title = (TextView) itemView.findViewById(R.id.title);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SearchActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SearchActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SearchActivity.java
new file mode 100644
index 0000000..4746c09
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SearchActivity.java
@@ -0,0 +1,33 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageButton;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+/**
+ * Created by roellk on 8/9/2015.
+ */
+public class SearchActivity extends Activity{
+    ImageButton back;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.search_activity);
+
+        back = (ImageButton)findViewById(R.id.button_back);
+
+        back.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent openNewWavectivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.INBOXACTIVITY");
+                startActivity(openNewWavectivity);
+                //test
+                //setContentView(R.layout.activity_new_wave);
+            }
+        });
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendActivity.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendActivity.java
new file mode 100644
index 0000000..d2aff79
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendActivity.java
@@ -0,0 +1,101 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.app.NavUtils;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.ImageButton;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+public class SelectFriendActivity extends AppCompatActivity{
+    private Toolbar mToolbar;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.select_friend_activity);
+
+        mToolbar = (Toolbar) findViewById(R.id.toolbar);
+
+        setSupportActionBar(mToolbar);
+        getSupportActionBar().setHomeButtonEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+        Fragment fragment = null;
+        String title = getString(R.string.app_name);
+        ImageButton myImage;
+
+
+                fragment = new SelectFriendFragment();
+                title = getString(R.string.title_friends);
+
+
+        if (fragment != null) {
+            FragmentManager fragmentManager = getSupportFragmentManager();
+            FragmentTransaction fragmentTransaction = 
fragmentManager.beginTransaction();
+            fragmentTransaction.replace(R.id.container_body_newWave, fragment);
+            fragmentTransaction.commit();
+
+            // set the toolbar title
+            getSupportActionBar().setTitle(title);
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is 
present.
+        getMenuInflater().inflate(R.menu.menu_main2, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+
+        if(id == R.id.home){
+            NavUtils.navigateUpFromSameTask(this);
+        }
+        //noinspection SimplifiableIfStatement
+        if (id == R.id.action_settings) {
+            return true;
+        }
+
+        if (id == R.id.action_forward) {
+            Intent openChatNewWaveActivity = new 
Intent("app.android.box.waveprotocol.org.androidwave.CHATNEWWAVEACTIVITY");
+            startActivity(openChatNewWaveActivity);
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+//
+}

http://git-wip-us.apache.org/repos/asf/incubator-wave-android/blob/514564b1/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendFragment.java
 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendFragment.java
new file mode 100644
index 0000000..3e5b909
--- /dev/null
+++ 
b/app/src/main/java/app/android/box/waveprotocol/org/androidwave/activities/SelectFriendFragment.java
@@ -0,0 +1,76 @@
+package app.android.box.waveprotocol.org.androidwave.activities;
+
+/**
+ * Created by Ravi on 29/07/15.
+ */
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.app.ListFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import app.android.box.waveprotocol.org.androidwave.R;
+
+
+public class SelectFriendFragment extends ListFragment {
+
+    Friendadapter friendadapter;
+
+    public SelectFriendFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+//        String[] values = new String[] { "friend1", "friend2", "friend3",
+//                "friend4", "friend5", "friend6", "friend7", "friend8",
+//                "friend9", "friend10" };
+//
+//        ArrayAdapter<String> adapter = new 
ArrayAdapter<String>(getActivity(),
+//                android.R.layout.simple_list_item_1, values);
+//        setListAdapter(adapter);
+
+
+//        ArrayAdapter<String> adapter = new 
ArrayAdapter<String>(getActivity(),
+//                android.R.layout.simple_list_item_1, values);
+
+        friendadapter = new Friendadapter(getActivity());
+        setListAdapter(friendadapter);
+
+    }
+
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id) {
+        String item = (String) getListAdapter().getItem(position);
+        Toast.makeText(getActivity(), item + " selected", 
Toast.LENGTH_LONG).show();
+//        ImageView img= (ImageView) findViewById(R.id.image);
+//        img.setImageResource(R.drawable.my_image);
+
+//        ImageView img = new ImageView(this);
+//        img.setImageResource(R.drawable.my_image);
+
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.select_friend_fragment, 
container, false);
+        // Inflate the layout for this fragment
+        return rootView;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+    }
+}

Reply via email to