shlist

share and manage lists between multiple people
Log | Files | Refs

commit 0d6ba1379de498697e1666543ffa02a9593ec719
parent 556f8bc022b30c5d07a1ede155d65ebb466d7d21
Author: David Engel <david@absentmindedproductions.ca>
Date:   Sun,  9 Aug 2015 22:04:07 -0600

android: Join and leave functionality works, killed lists don't show up when leaving, lists move as they should.

Diffstat:
Mandroid/shlist/.idea/.name | 0
Mandroid/shlist/.idea/compiler.xml | 46+++++++++++++++++++++++-----------------------
Mandroid/shlist/.idea/copyright/profiles_settings.xml | 4++--
Dandroid/shlist/.idea/encodings.xml | 5-----
Mandroid/shlist/.idea/gradle.xml | 39++++++++++++++++++++-------------------
Mandroid/shlist/.idea/misc.xml | 33+++++++++++++++++++++++----------
Mandroid/shlist/.idea/modules.xml | 20++++++++++----------
Dandroid/shlist/.idea/scopes/scope_settings.xml | 6------
Mandroid/shlist/.idea/vcs.xml | 14+++++++-------
Mandroid/shlist/app/app.iml | 187++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mandroid/shlist/app/src/main/java/drsocto/shlist/HomeScreen.java | 136+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
Mandroid/shlist/app/src/main/java/drsocto/shlist/NetMan.java | 8+++++++-
Mandroid/shlist/shlist.iml | 39++++++++++++++++++++-------------------
13 files changed, 325 insertions(+), 212 deletions(-)

diff --git a/android/shlist/.idea/.name b/android/shlist/.idea/.name diff --git a/android/shlist/.idea/compiler.xml b/android/shlist/.idea/compiler.xml @@ -1,23 +1,22 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="CompilerConfiguration"> - <option name="DEFAULT_COMPILER" value="Javac" /> - <resourceExtensions /> - <wildcardResourcePatterns> - <entry name="!?*.java" /> - <entry name="!?*.form" /> - <entry name="!?*.class" /> - <entry name="!?*.groovy" /> - <entry name="!?*.scala" /> - <entry name="!?*.flex" /> - <entry name="!?*.kt" /> - <entry name="!?*.clj" /> - </wildcardResourcePatterns> - <annotationProcessing> - <profile default="true" name="Default" enabled="false"> - <processorPath useClasspath="true" /> - </profile> - </annotationProcessing> - </component> -</project> - +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> +\ No newline at end of file diff --git a/android/shlist/.idea/copyright/profiles_settings.xml b/android/shlist/.idea/copyright/profiles_settings.xml @@ -1,3 +1,3 @@ -<component name="CopyrightManager"> - <settings default="" /> +<component name="CopyrightManager"> + <settings default="" /> </component> \ No newline at end of file diff --git a/android/shlist/.idea/encodings.xml b/android/shlist/.idea/encodings.xml @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" /> -</project> - diff --git a/android/shlist/.idea/gradle.xml b/android/shlist/.idea/gradle.xml @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="GradleSettings"> - <option name="linkedExternalProjectsSettings"> - <GradleProjectSettings> - <option name="distributionType" value="LOCAL" /> - <option name="externalProjectPath" value="$PROJECT_DIR$" /> - <option name="gradleHome" value="C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1" /> - <option name="modules"> - <set> - <option value="$PROJECT_DIR$" /> - <option value="$PROJECT_DIR$/app" /> - </set> - </option> - </GradleProjectSettings> - </option> - </component> -</project> - +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="LOCAL" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.2.1" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> +\ No newline at end of file diff --git a/android/shlist/.idea/misc.xml b/android/shlist/.idea/misc.xml @@ -1,10 +1,22 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="EntryPointsManager"> - <entry_points version="2.0" /> - </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> - <output url="file://$PROJECT_DIR$/build/classes" /> - </component> -</project> - +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> +\ No newline at end of file diff --git a/android/shlist/.idea/modules.xml b/android/shlist/.idea/modules.xml @@ -1,10 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectModuleManager"> - <modules> - <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> - <module fileurl="file://$PROJECT_DIR$/shlist.iml" filepath="$PROJECT_DIR$/shlist.iml" /> - </modules> - </component> -</project> - +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + <module fileurl="file://$PROJECT_DIR$/shlist.iml" filepath="$PROJECT_DIR$/shlist.iml" /> + </modules> + </component> +</project> +\ No newline at end of file diff --git a/android/shlist/.idea/scopes/scope_settings.xml b/android/shlist/.idea/scopes/scope_settings.xml @@ -1,5 +0,0 @@ -<component name="DependencyValidationManager"> - <state> - <option name="SKIP_IMPORT_STATEMENTS" value="false" /> - </state> -</component> -\ No newline at end of file diff --git a/android/shlist/.idea/vcs.xml b/android/shlist/.idea/vcs.xml @@ -1,7 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="VcsDirectoryMappings"> - <mapping directory="" vcs="" /> - </component> -</project> - +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="" /> + </component> +</project> +\ No newline at end of file diff --git a/android/shlist/app/app.iml b/android/shlist/app/app.iml @@ -1,93 +1,93 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="shlist" 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="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> - <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" /> - <option name="ALLOW_USER_CONFIGURATION" value="false" /> - <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> - <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" 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/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 22 Platform" jdkType="Android SDK" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" exported="" name="support-annotations-22.1.1" level="project" /> - <orderEntry type="library" exported="" name="support-v4-22.1.1" level="project" /> - <orderEntry type="library" exported="" name="appcompat-v7-22.1.1" level="project" /> - </component> -</module> - +<?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="shlist" 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="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> + <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" /> + <option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" /> + <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" /> + <option name="ALLOW_USER_CONFIGURATION" value="false" /> + <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> + <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" 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/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 22 Platform" jdkType="Android SDK" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" exported="" name="support-annotations-22.1.1" level="project" /> + <orderEntry type="library" exported="" name="support-v4-22.1.1" level="project" /> + <orderEntry type="library" exported="" name="appcompat-v7-22.1.1" level="project" /> + </component> +</module> +\ No newline at end of file diff --git a/android/shlist/app/src/main/java/drsocto/shlist/HomeScreen.java b/android/shlist/app/src/main/java/drsocto/shlist/HomeScreen.java @@ -18,6 +18,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.LinearLayout; @@ -40,15 +41,18 @@ public class HomeScreen extends ActionBarActivity { private final String DEBUG_TAG = "PIMPJUICE"; private final String SERVER_ADDRESS = "104.236.186.39"; - private final int SERVER_PORT = 5438; + private final int SERVER_PORT = 5437; private final String dbName = "shlist.db"; private ArrayList<String> list1; private ArrayAdapter<String> adapter1; private ArrayAdapter<String> adapter2; private ArrayList<String> list2; private long phoneNum; + private String id; private TextView cListsTV; private TextView oListsTV; + private String joinLeaveMessage; + private int joinLeavePosition; NetMan nm; DBHelper dbHelper; @@ -69,7 +73,7 @@ public class HomeScreen extends ActionBarActivity { // remove '+' before parsing phoneNum = Long.parseLong(mPhoneNumber); - String id = dbHelper.getDeviceID(); + id = dbHelper.getDeviceID(); dbHelper.closeDB(); @@ -94,14 +98,6 @@ public class HomeScreen extends ActionBarActivity { ListView lv1 = (ListView) findViewById(R.id.currentLists); list2 = new ArrayList<String>(); - list2.add("Ain't that just the shlist"); - list2.add("Tough shlist"); - list2.add("shlist happens"); - list2.add("YOU WANNA START SOME shlist?"); - list2.add("awww shlist... I think I'm out"); - list2.add("gotta pad this shlist a bit more"); - list2.add("and we're done..."); - list2.add("... shlist"); adapter2 = new ArrayAdapter<String>(this, R.layout.list_row, R.id.r_text, list2); @@ -116,6 +112,32 @@ public class HomeScreen extends ActionBarActivity { lv1.setAdapter(adapter1); lv2.setAdapter(adapter2); + lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long posid) { + String text = adapter1.getItem(position); + Log.d("lv1", "Clicked: " + text); + String[] nameID = text.split(":"); + String message = id + "\0" + nameID[1]; + new sendLeaveListMessageTask().execute(message, "leave_list"); + joinLeaveMessage = text; + joinLeavePosition = position; + } + }); + + lv2.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long posid) { + String text = adapter2.getItem(position); + Log.d("lv2", "Clicked: " + text); + String[] nameID = text.split(":"); + String message = id + "\0" + nameID[1]; + new sendJoinListMessageTask().execute(message, "join_list"); + joinLeaveMessage = text; + joinLeavePosition = position; + } + }); + if (id != null) { new sendGetListsMessageTask().execute(id, "get_lists"); } @@ -124,12 +146,12 @@ public class HomeScreen extends ActionBarActivity { /* if device id doesn't exist get phone number send to server - TODO: make sure server always rolls new id and clears data + TODO: if phone number already exists, verify contacts, + TODO: resend device id, or reroll id and wipe out references get device id write device id locally - */ // We can get around the new phone thing, if you reinstall the app, we force it to reload contacts @@ -228,6 +250,50 @@ public class HomeScreen extends ActionBarActivity { } } + public class sendJoinListMessageTask extends AsyncTask<String, Void, String> { + @Override + protected String doInBackground(String... urls) { + Log.d("NetMan", "Join List Start"); + String result = nm.sendMessage(urls); + return result; + } + @Override + protected void onPostExecute(String result) { + Log.d("NetMan", "Join List End"); + list1.add(joinLeaveMessage); + list2.remove(joinLeavePosition); + adapter1.notifyDataSetChanged(); + adapter2.notifyDataSetChanged(); + cListsTV.setText("Current Lists (" + list1.size() + ")"); + oListsTV.setText("Available Lists (" + list2.size() + ")"); + } + } + + public class sendLeaveListMessageTask extends AsyncTask<String, Void, String> { + @Override + protected String doInBackground(String... urls) { + Log.d("NetMan", "Leave List Start"); + String result = nm.sendMessage(urls); + return result; + } + @Override + protected void onPostExecute(String result) { + result = result.substring(4); + String[] parts = result.split("\0"); + Log.d("NetMan", "List id: " + parts[0]); + Log.d("NetMan", "Alive: " + parts[1]); + Log.d("NetMan", "Leave List End"); + if (parts[1].equals("1")) { + list2.add(joinLeaveMessage); + } + list1.remove(joinLeavePosition); + adapter1.notifyDataSetChanged(); + adapter2.notifyDataSetChanged(); + cListsTV.setText("Current Lists (" + list1.size() + ")"); + oListsTV.setText("Available Lists (" + list2.size() + ")"); + } + } + public class sendGetListsMessageTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { @@ -239,12 +305,48 @@ public class HomeScreen extends ActionBarActivity { protected void onPostExecute(String result) { Log.d("NetMan", "Get Lists Done"); result = result.substring(4); - String[] lists = result.split("\0"); - for (int i = 0; i < lists.length; ++i) { - String[] deets = lists[i].split(":"); - list1.add(deets[0] + " - " + deets[1]); + if (!result.equals("\0\0")) { + Log.d("NetMan", "Got Response: " + result); + String[] halves = result.split("\0\0"); + Log.d("NetMan", "halves size: " + halves.length); + String[] cur_lists = halves[0].split("\0"); + if (halves.length > 1) { + String[] ava_lists = halves[1].split("\0"); + for (int i = 0; i < ava_lists.length; ++i) { + String[] temp = ava_lists[i].split(":"); + Log.d("NetMan", "-------------------"); + Log.d("NetMan", "List (Available): " + (i+1)); + Log.d("NetMan", "-------------------"); + Log.d("NetMan", "Name: " + temp[0]); + list2.add(temp[0] + ":" + temp[1]); + Log.d("NetMan", "ID: " + temp[1]); + for (int j = 2; j < temp.length; ++j) { + Log.d("NetMan", "Member: " + temp[j]); + } + } + } + if (!cur_lists[0].equals("")) { + for (int i = 0; i < cur_lists.length; ++i) { + String[] temp = cur_lists[i].split(":"); + Log.d("NetMan", "-------------------"); + Log.d("NetMan", "List (Current): " + (i + 1)); + Log.d("NetMan", "-------------------"); + Log.d("NetMan", "Name: " + temp[0]); + Log.d("NetMan", "ID: " + temp[1]); + list1.add(temp[0] + ":" + temp[1]); + for (int j = 2; j < temp.length; ++j) { + Log.d("NetMan", "Member: " + temp[j]); + } + } + } + + adapter1.notifyDataSetChanged(); + adapter2.notifyDataSetChanged(); + cListsTV.setText("Current Lists (" + list1.size() + ")"); + oListsTV.setText("Available Lists (" + list2.size() + ")"); + } else { + Log.d("NetMan", "No Lists"); } - adapter1.notifyDataSetChanged(); } } diff --git a/android/shlist/app/src/main/java/drsocto/shlist/NetMan.java b/android/shlist/app/src/main/java/drsocto/shlist/NetMan.java @@ -20,6 +20,8 @@ public class NetMan { private final int NEW_DEVICE_MESSAGE_TYPE= 0; private final int NEW_LIST_MESSAGE_TYPE= 1; private final int LIST_REQUEST_MESSAGE_TYPE=3; + private final int JOIN_LIST_MESSAGE_TYPE=4; + private final int LEAVE_LIST_MESSAGE_TYPE=5; private String addr; private int port; Socket socket; @@ -80,7 +82,7 @@ public class NetMan { dbh.closeDB(); } else if (mTypeInt == NEW_LIST_MESSAGE_TYPE) { String[] messageParts = message[0].split("\0"); - response = messageParts[1] + " - " + response.substring(4); + response = messageParts[1] + ":" + response.substring(4); } else if (mTypeInt == LIST_REQUEST_MESSAGE_TYPE) { Log.d("NetMan", response.substring(4)); } @@ -101,6 +103,10 @@ public class NetMan { return NEW_DEVICE_MESSAGE_TYPE; } else if (mTypeStr.equals("get_lists")) { return LIST_REQUEST_MESSAGE_TYPE; + } else if (mTypeStr.equals("join_list")) { + return JOIN_LIST_MESSAGE_TYPE; + } else if (mTypeStr.equals("leave_list")) { + return LEAVE_LIST_MESSAGE_TYPE; } return -1; } diff --git a/android/shlist/shlist.iml b/android/shlist/shlist.iml @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> - <component name="FacetManager"> - <facet type="java-gradle" name="Java-Gradle"> - <configuration> - <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" /> - </configuration> - </facet> - </component> - <component name="NewModuleRootManager" 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> - +<?xml version="1.0" encoding="UTF-8"?> +<module external.linked.project.id="shlist" 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" 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