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(); + } +}
