From d125c0dac6498509f15813c2cb16a82f2173f0bd Mon Sep 17 00:00:00 2001 From: Leon Kwak Date: Thu, 13 Oct 2016 23:50:58 -0700 Subject: [PATCH 1/2] pls have mercy --- .gitignore | 9 + .idea/compiler.xml | 22 +++ .idea/copyright/profiles_settings.xml | 3 + .idea/encodings.xml | 6 + .idea/gradle.xml | 19 +++ .idea/misc.xml | 62 +++++++ .idea/modules.xml | 9 + .idea/runConfigurations.xml | 12 ++ .idea/vcs.xml | 6 + app/.gitignore | 1 + app/build.gradle | 48 ++++++ app/google-services.json | 42 +++++ app/proguard-rules.pro | 17 ++ .../mdbsocials/ExampleInstrumentedTest.java | 26 +++ app/src/main/AndroidManifest.xml | 30 ++++ .../demo/mdb/mdbsocials/DetailActivity.java | 84 +++++++++ .../com/demo/mdb/mdbsocials/EventList.java | 38 +++++ .../com/demo/mdb/mdbsocials/FeedActivity.java | 88 ++++++++++ .../mdb/mdbsocials/InterestedActivity.java | 36 ++++ .../mdb/mdbsocials/InterestedViewAdapter.java | 54 ++++++ .../demo/mdb/mdbsocials/ListViewAdapter.java | 83 +++++++++ .../com/demo/mdb/mdbsocials/MainActivity.java | 102 +++++++++++ .../com/demo/mdb/mdbsocials/NewSocial.java | 158 +++++++++++++++++ .../demo/mdb/mdbsocials/SignUpActivity.java | 91 ++++++++++ .../main/res/drawable/ic_add_white_24dp.xml | 9 + app/src/main/res/drawable/mdb_logo.jpg | Bin 0 -> 56830 bytes .../res/drawable/mdb_logo_no_background.png | Bin 0 -> 13998 bytes app/src/main/res/layout/activity_detail.xml | 79 +++++++++ app/src/main/res/layout/activity_feed.xml | 37 ++++ .../main/res/layout/activity_interested.xml | 25 +++ app/src/main/res/layout/activity_main.xml | 105 ++++++++++++ .../main/res/layout/activity_new_social.xml | 74 ++++++++ app/src/main/res/layout/activity_sign_up.xml | 95 +++++++++++ app/src/main/res/layout/content_feed.xml | 31 ++++ .../main/res/layout/content_interested.xml | 31 ++++ app/src/main/res/layout/interested_view.xml | 35 ++++ app/src/main/res/layout/list_view.xml | 77 +++++++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes app/src/main/res/values-w820dp/dimens.xml | 6 + app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/dimens.xml | 5 + app/src/main/res/values/strings.xml | 24 +++ app/src/main/res/values/styles.xml | 17 ++ .../demo/mdb/mdbsocials/ExampleUnitTest.java | 17 ++ build.gradle | 23 +++ gradle.properties | 17 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 ++++++++++++++++++ gradlew.bat | 90 ++++++++++ settings.gradle | 1 + 55 files changed, 2016 insertions(+) create mode 100755 .gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100755 app/.gitignore create mode 100755 app/build.gradle create mode 100755 app/google-services.json create mode 100755 app/proguard-rules.pro create mode 100755 app/src/androidTest/java/com/demo/mdb/mdbsocials/ExampleInstrumentedTest.java create mode 100755 app/src/main/AndroidManifest.xml create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/DetailActivity.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/EventList.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/FeedActivity.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/InterestedActivity.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/InterestedViewAdapter.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/ListViewAdapter.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/MainActivity.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/NewSocial.java create mode 100755 app/src/main/java/com/demo/mdb/mdbsocials/SignUpActivity.java create mode 100755 app/src/main/res/drawable/ic_add_white_24dp.xml create mode 100755 app/src/main/res/drawable/mdb_logo.jpg create mode 100755 app/src/main/res/drawable/mdb_logo_no_background.png create mode 100755 app/src/main/res/layout/activity_detail.xml create mode 100755 app/src/main/res/layout/activity_feed.xml create mode 100755 app/src/main/res/layout/activity_interested.xml create mode 100755 app/src/main/res/layout/activity_main.xml create mode 100755 app/src/main/res/layout/activity_new_social.xml create mode 100755 app/src/main/res/layout/activity_sign_up.xml create mode 100755 app/src/main/res/layout/content_feed.xml create mode 100755 app/src/main/res/layout/content_interested.xml create mode 100755 app/src/main/res/layout/interested_view.xml create mode 100755 app/src/main/res/layout/list_view.xml create mode 100755 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100755 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100755 app/src/main/res/values-w820dp/dimens.xml create mode 100755 app/src/main/res/values/colors.xml create mode 100755 app/src/main/res/values/dimens.xml create mode 100755 app/src/main/res/values/strings.xml create mode 100755 app/src/main/res/values/styles.xml create mode 100755 app/src/test/java/com/demo/mdb/mdbsocials/ExampleUnitTest.java create mode 100755 build.gradle create mode 100755 gradle.properties create mode 100755 gradle/wrapper/gradle-wrapper.jar create mode 100755 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100755 gradlew.bat create mode 100755 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..a4c7838 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..0e23f8e --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7158618 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f5e9010 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100755 index 0000000..3543521 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100755 index 0000000..a69f504 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,48 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion "24.0.2" + defaultConfig { + applicationId "com.demo.mdb.mdbsocials" + minSdkVersion 14 + targetSdkVersion 24 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:24.2.1' + compile 'com.android.support:design:24.2.1' + + compile 'com.google.firebase:firebase-core:9.6.1' + compile 'com.google.firebase:firebase-database:9.6.1' + compile 'com.google.firebase:firebase-storage:9.6.1' + compile 'com.google.firebase:firebase-crash:9.6.1' + compile 'com.google.firebase:firebase-auth:9.6.1' + compile 'com.google.firebase:firebase-messaging:9.6.1' + compile 'com.google.firebase:firebase-config:9.6.1' + compile 'com.google.firebase:firebase-invites:9.6.1' + compile 'com.google.firebase:firebase-ads:9.6.1' + compile 'com.google.android.gms:play-services-appindexing:9.6.1' + + testCompile 'junit:junit:4.12' + compile 'com.android.support:recyclerview-v7:+' + compile 'com.android.support:cardview-v7:24.2.1' + compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8' + compile 'com.android.support:support-v4:24.2.1' +} + +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100755 index 0000000..ff262c2 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,42 @@ +{ + "project_info": { + "project_number": "882125936106", + "firebase_url": "https://mdb-socials-6fb87.firebaseio.com", + "project_id": "mdb-socials-6fb87", + "storage_bucket": "mdb-socials-6fb87.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:882125936106:android:47eb6aeddd7fdcb6", + "android_client_info": { + "package_name": "com.demo.mdb.mdbsocials" + } + }, + "oauth_client": [ + { + "client_id": "882125936106-iqjuv6q1busn0q6hvouo3e2lc2ohugpr.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyADpDTbITXvyqtc-qO8nhUDRWZNHMPSyAA" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100755 index 0000000..329de9f --- /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\reddy\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 *; +#} diff --git a/app/src/androidTest/java/com/demo/mdb/mdbsocials/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/demo/mdb/mdbsocials/ExampleInstrumentedTest.java new file mode 100755 index 0000000..cde459b --- /dev/null +++ b/app/src/androidTest/java/com/demo/mdb/mdbsocials/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.demo.mdb.mdbsocials", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100755 index 0000000..5c75c3b --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/DetailActivity.java b/app/src/main/java/com/demo/mdb/mdbsocials/DetailActivity.java new file mode 100755 index 0000000..9a77234 --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/DetailActivity.java @@ -0,0 +1,84 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Intent; +import android.provider.ContactsContract; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.TextView; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.ValueEventListener; + +import org.w3c.dom.Text; + +import java.util.ArrayList; +import java.util.HashMap; + +public class DetailActivity extends AppCompatActivity { + ImageView eventImageView; + TextView eventTitleTextView; + TextView eventUserTextView; + TextView eventDescriptionTextView; + Button eventInterestedButton; + CheckBox interestedCheckBox; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_detail); + + eventImageView = (ImageView) findViewById(R.id.eventImageView); + eventTitleTextView = (TextView) findViewById(R.id.eventTitleTextView); + eventUserTextView = (TextView) findViewById(R.id.eventUserTextView); + eventDescriptionTextView = (TextView) findViewById(R.id.eventDescriptionTextView); + eventInterestedButton = (Button) findViewById(R.id.eventInterestedButton); + interestedCheckBox = (CheckBox) findViewById(R.id.interestedCheckBox); + + Intent intent = getIntent(); + String title = intent.getStringExtra("title"); + String user = intent.getStringExtra("user"); + String description = intent.getStringExtra("description"); + ArrayList interestedPeople = intent.getStringArrayListExtra("interestedPeople"); + + eventTitleTextView.setText(title); + eventUserTextView.setText("Created by " + user); + eventDescriptionTextView.setText("Description: " + description); + if (interestedPeople != null) { + eventInterestedButton.setText(interestedPeople.size() + " People Interested"); + } + //set imageviews and textviews based on firebase data related to event + + /*ValueEventListener eventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + for (DataSnapshot eventSnapshot: dataSnapshot.getChildren()) { + HashMap map = (HashMap) eventSnapshot.getValue(); + String email = (String) map.get("user"); + String name = (String) map.get("name"); + if(title.equals(name)){ + + } + ArrayList interestedPeople = (ArrayList) map.get("interestedPeople"); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + };*/ + + eventInterestedButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(DetailActivity.this, InterestedActivity.class); + //intent.putStringArrayListExtra("users",); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/EventList.java b/app/src/main/java/com/demo/mdb/mdbsocials/EventList.java new file mode 100755 index 0000000..5fa590a --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/EventList.java @@ -0,0 +1,38 @@ +package com.demo.mdb.mdbsocials; + +import java.util.ArrayList; + +/** + * Created by reddy on 10/12/2016. + */ + +public class EventList { + public ArrayList eventArrayList; + + public EventList() { + this.eventArrayList = new ArrayList<>(); + } + + public ArrayList getArrayList() { + return eventArrayList; + } + + public static class Event { + String email; + String name; + String pictureURL; + String description; + String date; + ArrayList interestedPeople; + + public Event(String email, String name, String pictureURL, String description, String date, + ArrayList interestedPeople) { + this.email = email; + this.name = name; + this.pictureURL = pictureURL; + this.description = description; + this.date = date; + this.interestedPeople = interestedPeople; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/FeedActivity.java b/app/src/main/java/com/demo/mdb/mdbsocials/FeedActivity.java new file mode 100755 index 0000000..3dcba6a --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/FeedActivity.java @@ -0,0 +1,88 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Intent; +import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; + +import java.util.ArrayList; +import java.util.HashMap; + +public class FeedActivity extends AppCompatActivity { + FloatingActionButton fab; + RecyclerView recyclerView; + ListViewAdapter listViewAdapter; + DatabaseReference ref; + EventList eventList; + ArrayList eventArrayList; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_feed); + + ref = FirebaseDatabase.getInstance().getReference(); + eventList = new EventList(); + eventArrayList = eventList.getArrayList(); + + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + listViewAdapter = new ListViewAdapter(getApplicationContext(), eventArrayList); + recyclerView.setAdapter(listViewAdapter); + + ValueEventListener eventListener = new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + eventArrayList = new ArrayList<>(); + for (DataSnapshot eventSnapshot: dataSnapshot.getChildren()) { + HashMap map = (HashMap) eventSnapshot.getValue(); + String email = (String) map.get("user"); + String name = (String) map.get("name"); + String pictureURL = (String) map.get("pictureURL"); + String description = (String) map.get("description"); + String date = (String) map.get("date"); + ArrayList interestedPeople = (ArrayList) map.get("interestedPeople"); + EventList.Event event = new EventList.Event(email, name, pictureURL, description, date, interestedPeople); + Log.d("SOS", email + name + pictureURL + description + date + interestedPeople); + eventArrayList.add(0, event); + } + listViewAdapter.eventArrayList = eventArrayList; + listViewAdapter.notifyItemInserted(0); + recyclerView.setAdapter(listViewAdapter); + } + + @Override + public void onCancelled(DatabaseError databaseError) {} + }; + + ref.child("Events").addValueEventListener(eventListener); + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(FeedActivity.this, NewSocial.class); + startActivity(intent); + } + }); + } + + @Override + public void onBackPressed() { + Intent a = new Intent(Intent.ACTION_MAIN); + a.addCategory(Intent.CATEGORY_HOME); + a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(a); + } +} diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/InterestedActivity.java b/app/src/main/java/com/demo/mdb/mdbsocials/InterestedActivity.java new file mode 100755 index 0000000..dd722f8 --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/InterestedActivity.java @@ -0,0 +1,36 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Intent; +import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.Toast; + +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import java.util.ArrayList; + +public class InterestedActivity extends AppCompatActivity { + ArrayList userArrayList; + RecyclerView recyclerView; + InterestedViewAdapter interestedViewAdapter; + DatabaseReference ref; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_interested); + + Intent intent = getIntent(); + userArrayList = intent.getStringArrayListExtra("users"); + + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + interestedViewAdapter = new InterestedViewAdapter(getApplicationContext(), userArrayList); + recyclerView.setAdapter(interestedViewAdapter); + } +} diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/InterestedViewAdapter.java b/app/src/main/java/com/demo/mdb/mdbsocials/InterestedViewAdapter.java new file mode 100755 index 0000000..d1e8616 --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/InterestedViewAdapter.java @@ -0,0 +1,54 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Context; +import android.content.Intent; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * Created by reddy on 10/4/2016. + */ + +public class InterestedViewAdapter extends RecyclerView.Adapter { + + private Context context; + public ArrayList userArrayList; + + public InterestedViewAdapter(Context context, ArrayList userArrayList) { + this.context = context; + this.userArrayList = userArrayList; + } + + @Override + public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.interested_view, parent, false); + return new CustomViewHolder(view); + } + + @Override + public void onBindViewHolder(CustomViewHolder holder, int position) { + String user = userArrayList.get(position); + holder.interestedUserTextView.setText(user); + } + + @Override + public int getItemCount() { + return userArrayList.size(); + } + + class CustomViewHolder extends RecyclerView.ViewHolder { + TextView interestedUserTextView; + + public CustomViewHolder(View view) { + super(view); + this.interestedUserTextView = (TextView) view.findViewById(R.id.interestedUserTextView); + } + } +} + diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/ListViewAdapter.java b/app/src/main/java/com/demo/mdb/mdbsocials/ListViewAdapter.java new file mode 100755 index 0000000..6e111ea --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/ListViewAdapter.java @@ -0,0 +1,83 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Context; +import android.content.Intent; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * Created by reddy on 10/4/2016. + */ + +public class ListViewAdapter extends RecyclerView.Adapter { + + public Context context; + public ArrayList eventArrayList; + + public ListViewAdapter(Context context, ArrayList eventArrayList) { + this.context = context; + this.eventArrayList = eventArrayList; + } + + @Override + public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_view, parent, false); + return new CustomViewHolder(view); + } + + @Override + public void onBindViewHolder(CustomViewHolder holder, int position) { + EventList.Event event = eventArrayList.get(position); + //set imageView of holder + holder.eventTitleTextView.setText(event.name); + holder.eventUserTextView.setText("Created by " + event.email); + if (event.interestedPeople != null) { + holder.eventInterestedTextView.setText(event.interestedPeople.size() + " people interested"); + } + + } + + @Override + public int getItemCount() { + if (eventArrayList != null) { + return eventArrayList.size(); + } + else { + return 0; + } + } + + class CustomViewHolder extends RecyclerView.ViewHolder { + ImageView eventImageView; + TextView eventTitleTextView; + TextView eventUserTextView; + TextView eventInterestedTextView; + + public CustomViewHolder(View view) { + super(view); + this.eventImageView = (ImageView) view.findViewById(R.id.eventImageView); + this.eventTitleTextView = (TextView) view.findViewById(R.id.eventTitleTextView); + this.eventUserTextView = (TextView) view.findViewById(R.id.eventUserTextView); + this.eventInterestedTextView = (TextView) view.findViewById(R.id.eventInterestedTextView); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + EventList.Event event = eventArrayList.get(getAdapterPosition()); + Intent intent = new Intent(v.getContext(), DetailActivity.class); + intent.putExtra("title", event.name); + intent.putExtra("user", event.email); + intent.putExtra("description", event.description); + intent.putStringArrayListExtra("interestedPeople", event.interestedPeople); + v.getContext().startActivity(intent); + } + }); + } + } +} + diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/MainActivity.java b/app/src/main/java/com/demo/mdb/mdbsocials/MainActivity.java new file mode 100755 index 0000000..b58ca41 --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/MainActivity.java @@ -0,0 +1,102 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.GenericTypeIndicator; +import com.google.firebase.database.ValueEventListener; + +import java.util.ArrayList; + +import static android.R.attr.onClick; + +public class MainActivity extends AppCompatActivity { + EditText email; + EditText password; + Button logIn; + Button signUp; + FirebaseAuth mAuth; + FirebaseAuth.AuthStateListener mAuthListener; + DatabaseReference ref; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + email = (EditText) findViewById(R.id.email); + password = (EditText) findViewById(R.id.password); + logIn = (Button) findViewById(R.id.log_in_button); + signUp = (Button) findViewById(R.id.sign_up_button); + mAuth = FirebaseAuth.getInstance(); + ref = FirebaseDatabase.getInstance().getReference(); + + mAuthListener = new FirebaseAuth.AuthStateListener() { + @Override + public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { + FirebaseUser user = firebaseAuth.getCurrentUser(); + if (user != null) { + // User is signed in + Intent intent = new Intent(MainActivity.this, FeedActivity.class); + startActivity(intent); + } else { + Toast.makeText(MainActivity.this, "Not Signed In", Toast.LENGTH_SHORT).show(); + } + } + }; + + logIn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String userEmail = email.getText().toString(); + String userPassword = password.getText().toString(); + mAuth.signInWithEmailAndPassword(userEmail, userPassword) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (!task.isSuccessful()) { + Toast.makeText(MainActivity.this, "Authentication failed", Toast.LENGTH_SHORT).show(); + } + } + }); + } + }); + + signUp.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MainActivity.this, SignUpActivity.class); + startActivity(intent); + } + }); + } + + @Override + public void onStart() { + super.onStart(); + mAuth.addAuthStateListener(mAuthListener); + } + + @Override + public void onStop() { + super.onStop(); + if (mAuthListener != null) { + mAuth.removeAuthStateListener(mAuthListener); + } + } +} diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/NewSocial.java b/app/src/main/java/com/demo/mdb/mdbsocials/NewSocial.java new file mode 100755 index 0000000..acd2c0d --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/NewSocial.java @@ -0,0 +1,158 @@ +package com.demo.mdb.mdbsocials; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.media.Image; +import android.net.Uri; +import android.provider.MediaStore; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class NewSocial extends AppCompatActivity { + ImageView eventImg; + EditText nameEditText; + EditText desEditText; + EditText dateEditText; + DatabaseReference ref; + FirebaseAuth mAuth; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_new_social); + + nameEditText = (EditText)findViewById(R.id.eventName); + eventImg = (ImageView)findViewById(R.id.eventImg); + desEditText = (EditText)findViewById(R.id.des); + dateEditText = (EditText)findViewById(R.id.date); + + eventImg.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogFragment newFragment = new PhotoDialogFragment(); + newFragment.show(getFragmentManager(), "dia"); + } + }); + + Button done = (Button)findViewById(R.id.done); + done.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ref = FirebaseDatabase.getInstance().getReference(); + mAuth = FirebaseAuth.getInstance(); + + String email = mAuth.getCurrentUser().getEmail(); + String eventName = nameEditText.getText().toString(); + String pictureURL = ""; + String description = desEditText.getText().toString(); + String eventDate = dateEditText.getText().toString(); + ArrayList interestedPeople = new ArrayList<>(); + + Map event = new HashMap(); + event.put("user", email); + event.put("name", eventName); + event.put("pictureURL", pictureURL); + event.put("description", description); + event.put("date", eventDate); + event.put("interestedPeople", interestedPeople); + ref.child("Events").push().setValue(event); + Intent intent = new Intent(NewSocial.this, FeedActivity.class); + startActivity(intent); + } + }); + } + + public static class PhotoDialogFragment extends DialogFragment { + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.dialogTitle) + .setItems(R.array.choices, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + if(which==0){ + Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + startActivityForResult(takePicture, 0);//zero can be replaced with any action code + } + else{ + Intent pickPhoto = new Intent(Intent.ACTION_PICK, + android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(pickPhoto , 1);//one can be replaced with any action code + } + } + }) + .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + PhotoDialogFragment.this.getDialog().cancel(); + } + }); + return builder.create(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { + super.onActivityResult(requestCode, resultCode, imageReturnedIntent); + switch(requestCode) { + case 0: + if(resultCode == RESULT_OK){ + Uri selectedImage = imageReturnedIntent.getData(); + InputStream is = null; + try { + is = getApplicationContext().getContentResolver().openInputStream(imageReturnedIntent.getData()); + } + catch (Exception e) { + Log.d("File", "Not Found"); + } + if (is != null) { + Bitmap imageResource = BitmapFactory.decodeStream(is); + eventImg.setImageBitmap(imageResource); + } else { + Log.d("BITMAP", "is null"); + } + } + break; + case 1: + if(resultCode == RESULT_OK){ + Uri selectedImage = imageReturnedIntent.getData(); + InputStream is = null; + try { + is = getApplicationContext().getContentResolver().openInputStream(imageReturnedIntent.getData()); + } + catch (Exception e) { + Log.d("File", "Not Found"); + } + if (is != null) { + Bitmap imageResource = BitmapFactory.decodeStream(is); + eventImg.setImageBitmap(imageResource); + } else { + Log.d("BITMAP", "is null"); + } + } + break; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/demo/mdb/mdbsocials/SignUpActivity.java b/app/src/main/java/com/demo/mdb/mdbsocials/SignUpActivity.java new file mode 100755 index 0000000..618ae26 --- /dev/null +++ b/app/src/main/java/com/demo/mdb/mdbsocials/SignUpActivity.java @@ -0,0 +1,91 @@ +package com.demo.mdb.mdbsocials; + +import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.auth.UserProfileChangeRequest; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import java.util.ArrayList; + +import static com.demo.mdb.mdbsocials.R.id.email; + +public class SignUpActivity extends AppCompatActivity { + EditText email; + EditText password; + Button signUp; + FirebaseAuth mAuth; + FirebaseAuth.AuthStateListener mAuthListener; + DatabaseReference ref; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sign_up); + + email = (EditText) findViewById(R.id.email); + password = (EditText) findViewById(R.id.password); + signUp = (Button) findViewById(R.id.sign_up_button); + mAuth = FirebaseAuth.getInstance(); + ref = FirebaseDatabase.getInstance().getReference(); + + mAuthListener = new FirebaseAuth.AuthStateListener() { + @Override + public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { + FirebaseUser user = firebaseAuth.getCurrentUser(); + if (user != null) { + // User is signed in + String userEmail = user.getEmail(); + String uid = user.getUid(); + ref.child("Users").child(uid).child("email").setValue(userEmail); + Intent intent = new Intent(SignUpActivity.this, FeedActivity.class); + startActivity(intent); + } + } + }; + + signUp.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String userEmail = email.getText().toString(); + String userPassword = password.getText().toString(); + mAuth.createUserWithEmailAndPassword(userEmail, userPassword) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (!task.isSuccessful()) { + Toast.makeText(SignUpActivity.this, "Authentication failed", Toast.LENGTH_SHORT).show(); + } + } + }); + } + }); + } + + @Override + public void onStart() { + super.onStart(); + mAuth.addAuthStateListener(mAuthListener); + } + + @Override + public void onStop() { + super.onStop(); + if (mAuthListener != null) { + mAuth.removeAuthStateListener(mAuthListener); + } + } +} diff --git a/app/src/main/res/drawable/ic_add_white_24dp.xml b/app/src/main/res/drawable/ic_add_white_24dp.xml new file mode 100755 index 0000000..0258249 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/mdb_logo.jpg b/app/src/main/res/drawable/mdb_logo.jpg new file mode 100755 index 0000000000000000000000000000000000000000..b010e9e574d8ad447149236c19ed467857a6c8d1 GIT binary patch literal 56830 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/mdb_logo_no_background.png b/app/src/main/res/drawable/mdb_logo_no_background.png new file mode 100755 index 0000000000000000000000000000000000000000..566ae01d519b011d66941e7355ddeba1e5266b1e GIT binary patch literal 13998 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 + + + + + + + + + + + + +