From 4d7316f984308642217c04aef703c570c7a650d0 Mon Sep 17 00:00:00 2001 From: misakihiyo Date: Sun, 18 Feb 2018 13:21:19 +0545 Subject: [PATCH] second --- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 21 +- .../com/example/eforezan/kuevents/Event.java | 10 +- .../example/eforezan/kuevents/HomePage.java | 55 ++- .../eforezan/kuevents/MainActivity.java | 196 +++++++++- .../eforezan/kuevents/PostActivity.java | 7 +- .../eforezan/kuevents/ProfileActivity.java | 2 +- .../eforezan/kuevents/display_data.java | 8 +- .../example/eforezan/kuevents/location.java | 82 +++++ .../example/eforezan/kuevents/navigation.java | 347 ++++++++++++++++++ .../example/eforezan/kuevents/profile.java | 1 - .../com/example/eforezan/kuevents/second.java | 59 ++- .../com/example/eforezan/kuevents/splash.java | 50 +++ .../com/example/eforezan/kuevents/tab3.java | 69 +++- app/src/main/res/anim/mytransistion.xml | 8 + .../main/res/drawable-v21/ic_menu_camera.xml | 12 + .../main/res/drawable-v21/ic_menu_gallery.xml | 9 + .../main/res/drawable-v21/ic_menu_manage.xml | 9 + .../main/res/drawable-v21/ic_menu_send.xml | 9 + .../main/res/drawable-v21/ic_menu_share.xml | 9 + .../res/drawable-v21/ic_menu_slideshow.xml | 9 + app/src/main/res/drawable/logo32.png | Bin 0 -> 85740 bytes .../main/res/layout/activity_home_page.xml | 59 ++- app/src/main/res/layout/activity_main.xml | 3 + .../main/res/layout/activity_navigation.xml | 25 ++ app/src/main/res/layout/activity_second.xml | 19 +- app/src/main/res/layout/activity_splash.xml | 12 + .../main/res/layout/app_bar_navigation.xml | 26 ++ app/src/main/res/layout/content_main.xml | 7 + .../main/res/layout/content_navigation.xml | 29 ++ app/src/main/res/layout/content_splash.xml | 44 +++ app/src/main/res/layout/fragment_location.xml | 23 ++ app/src/main/res/layout/fragment_tab3.xml | 11 +- .../main/res/layout/nav_header_navigation.xml | 30 ++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3056 -> 8465 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2096 -> 4230 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4569 -> 11402 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6464 -> 22273 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9250 -> 28135 bytes app/src/main/res/values-v21/styles.xml | 8 + app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/drawables.xml | 8 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 1 + 44 files changed, 1218 insertions(+), 63 deletions(-) create mode 100644 app/src/main/java/com/example/eforezan/kuevents/location.java create mode 100644 app/src/main/java/com/example/eforezan/kuevents/navigation.java create mode 100755 app/src/main/java/com/example/eforezan/kuevents/splash.java create mode 100755 app/src/main/res/anim/mytransistion.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_camera.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_gallery.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_manage.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_send.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_share.xml create mode 100644 app/src/main/res/drawable-v21/ic_menu_slideshow.xml create mode 100755 app/src/main/res/drawable/logo32.png create mode 100644 app/src/main/res/layout/activity_navigation.xml create mode 100755 app/src/main/res/layout/activity_splash.xml create mode 100644 app/src/main/res/layout/app_bar_navigation.xml create mode 100644 app/src/main/res/layout/content_navigation.xml create mode 100755 app/src/main/res/layout/content_splash.xml create mode 100644 app/src/main/res/layout/fragment_location.xml create mode 100644 app/src/main/res/layout/nav_header_navigation.xml create mode 100644 app/src/main/res/values-v21/styles.xml create mode 100644 app/src/main/res/values/drawables.xml diff --git a/app/build.gradle b/app/build.gradle index 276d4b5..b5dd956 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,4 +54,6 @@ dependencies { + + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e968882..a31424b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,7 +32,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> - + @@ -40,15 +40,20 @@ + + + + + + + - - @@ -56,7 +61,6 @@ - @@ -64,7 +68,6 @@ - @@ -72,7 +75,6 @@ - @@ -80,7 +82,6 @@ - @@ -89,7 +90,6 @@ - @@ -113,9 +113,14 @@ android:label="@string/title_activity_maps"> + + \ No newline at end of file diff --git a/app/src/main/java/com/example/eforezan/kuevents/Event.java b/app/src/main/java/com/example/eforezan/kuevents/Event.java index 712e85f..21e62f8 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/Event.java +++ b/app/src/main/java/com/example/eforezan/kuevents/Event.java @@ -15,9 +15,10 @@ public class Event { private double Latitude; private double Longitude; - public Event(){ - } + public Event(){} + + public Event(String title, String desc, String image, String start_date, String end_date, String start_time, String end_time, double Latitude, double Longitude) { this.title = title; @@ -29,7 +30,6 @@ public Event(String title, String desc, String image, String start_date, String this.end_time = end_time; this.Latitude = Latitude; this.Longitude = Longitude; - } public String getTitle() { @@ -40,6 +40,10 @@ public void setTitle(String title) { this.title = title; } + public String getDesc() {return desc;} + + public void setDesc(String desc) {this.desc = desc;} + public String getImage() { return image; } diff --git a/app/src/main/java/com/example/eforezan/kuevents/HomePage.java b/app/src/main/java/com/example/eforezan/kuevents/HomePage.java index 9baa361..77e8358 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/HomePage.java +++ b/app/src/main/java/com/example/eforezan/kuevents/HomePage.java @@ -2,10 +2,16 @@ import android.content.Context; import android.content.Intent; +import android.support.annotation.NonNull; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -24,7 +30,7 @@ import com.google.firebase.database.ValueEventListener; import com.squareup.picasso.Picasso; -public class HomePage extends AppCompatActivity { +public class HomePage extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private RecyclerView mEventList; @@ -47,6 +53,19 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home_page); + Toolbar toolbar = (Toolbar) findViewById( R.id.toolbar ); + setSupportActionBar( toolbar ); + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle; + toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.addDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + navigationView.setNavigationItemSelectedListener(this); + mAuth = FirebaseAuth.getInstance(); mCurrentUser = mAuth.getCurrentUser(); if(mCurrentUser == null){ @@ -106,7 +125,7 @@ public void onClick(View view) { @Override public void onClick(View view) { mProcessGoing = true; - mDatabase.addValueEventListener(new ValueEventListener() { + mDatabase.child( "Events" ).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (mProcessGoing){ @@ -141,6 +160,36 @@ public void onCancelled(DatabaseError databaseError) { } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen( GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + int id = item.getItemId(); + + if (id == R.id.profile) { + // setFragment(new profile()); + } + else if (id == R.id.events) { + //startActivity( new Intent(MainActivity.this, HomePage.class ) ); + } + else if (id == R.id.location) { + Intent i = new Intent(HomePage.this, MapsActivity.class); + startActivity(i); + } + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } + public static class EventViewHolder extends RecyclerView.ViewHolder{ View mView; @@ -270,4 +319,6 @@ public void onCancelled(DatabaseError databaseError) { return super.onOptionsItemSelected(item); } + + } diff --git a/app/src/main/java/com/example/eforezan/kuevents/MainActivity.java b/app/src/main/java/com/example/eforezan/kuevents/MainActivity.java index 935a51b..2aa70e6 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/MainActivity.java +++ b/app/src/main/java/com/example/eforezan/kuevents/MainActivity.java @@ -1,5 +1,6 @@ package com.example.eforezan.kuevents; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.NavigationView; @@ -9,19 +10,45 @@ import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; +import com.firebase.ui.database.FirebaseRecyclerAdapter; 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 com.squareup.picasso.Picasso; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + + + private RecyclerView mEventList; + + + private DatabaseReference mDatabase; + private DatabaseReference mDatabaseUsers; + private DatabaseReference sDatabase; + private FirebaseAuth mAuth; + private FirebaseAuth.AuthStateListener mAuthListener; + private FirebaseUser mCurrentUser; + + private boolean mProcessGoing = false; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -38,7 +65,25 @@ protected void onCreate(Bundle savedInstanceState) { NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); - sDatabase = FirebaseDatabase.getInstance().getReference().child("Users"); + mAuth = FirebaseAuth.getInstance(); + mCurrentUser = mAuth.getCurrentUser(); + if(mCurrentUser == null){ + Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class); + loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(loginIntent); + } + + mDatabase = FirebaseDatabase.getInstance().getReference().child("Events"); + mDatabaseUsers = FirebaseDatabase.getInstance().getReference().child("Users"); + + mDatabase.keepSynced(true); + mDatabaseUsers.keepSynced(true); + + mEventList = (RecyclerView) findViewById(R.id.event_list); + mEventList.setHasFixedSize(true); + mEventList.setLayoutManager(new LinearLayoutManager(this)); + + } @Override @@ -51,10 +96,149 @@ public void onBackPressed() { } } + @Override + protected void onStart() { + super.onStart(); + + TextView going = (TextView) findViewById(R.id.going_status); + + FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter( + Event.class, + R.layout.event_row, + HomePage.EventViewHolder.class, + mDatabase + ) { + @Override + protected void populateViewHolder(HomePage.EventViewHolder viewHolder, Event model, int position) { + + final String post_key = getRef(position).getKey(); + + viewHolder.setTitle(model.getTitle()); + viewHolder.setImage(getApplicationContext(), model.getImage()); + viewHolder.setStart_Date(model.getStart_date()); + viewHolder.setgoingbtn(post_key); + //viewHolder.setLatitude(model.getLatitude()); + //viewHolder.setLongitude(model.getLongitude()); + // This is used in second.java + viewHolder.mView.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View view) { + //Toast.makeText(HomePage.this, post_key, Toast.LENGTH_LONG).show(); + Intent singleEventIntent = new Intent(MainActivity.this, second.class); + singleEventIntent.putExtra("event_id", post_key); + startActivity(singleEventIntent); + } + }); + + viewHolder.mGoingbtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mProcessGoing = true; + mDatabase.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + if (mProcessGoing){ + if (dataSnapshot.child(post_key).child("Attendee").hasChild(mAuth.getCurrentUser().getUid())){ + mDatabase.child(post_key).child("Attendee").child(mAuth.getCurrentUser().getUid()).removeValue(); + mProcessGoing = false; + + + }else{ + mDatabase.child(post_key).child("Attendee").child(mAuth.getCurrentUser().getUid()).setValue("Random"); + mProcessGoing = false; + } + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + } + }); + + + } + //}; + //} + }; + mEventList.setAdapter(firebaseRecyclerAdapter); + + + } + + public static class EventViewHolder extends RecyclerView.ViewHolder{ + + View mView; + ImageButton mGoingbtn; + DatabaseReference mDatabase; + FirebaseAuth mAuth; + TextView going; + + public EventViewHolder(View itemView) { + super(itemView); + mView = itemView; + mGoingbtn = (ImageButton) mView.findViewById(R.id.going_btn); + mDatabase = FirebaseDatabase.getInstance().getReference().child("Events"); + mAuth = FirebaseAuth.getInstance(); + mDatabase.keepSynced(true); + going = mView.findViewById(R.id.going_status); + + } + + public void setgoingbtn(final String post_key){ + mDatabase.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + if (dataSnapshot.child(post_key).child("Attendee").hasChild(mAuth.getCurrentUser().getUid())){ + mGoingbtn.setImageResource(R.mipmap.ic_bookmark_black_24dp); + going.setText("Going"); + + }else{ + mGoingbtn.setImageResource(R.drawable.ic_bookmark_border_black_24dp); + going.setText("Are you going?"); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + } + + public void setTitle(String title){ + TextView post_title = (TextView) mView.findViewById(R.id.post_title); + post_title.setText(title); + + } + + + + + public void setImage(Context ctx, String image){ + ImageView post_image = (ImageView) mView.findViewById(R.id.post_image); + Picasso.with(ctx).load(image).into(post_image); + + } + + public void setStart_Date(String start_date){ + TextView post_date=(TextView) mView.findViewById(R.id.post_date); + post_date.setText(start_date); + } + + + } + + @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, menu); + getMenuInflater().inflate(R.menu.main_menu, menu); return true; } @@ -92,11 +276,11 @@ public boolean onNavigationItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.profile) { - setFragment(new profile()); + // setFragment(new profile()); } else if (id == R.id.events) { - startActivity( new Intent(MainActivity.this, HomePage.class ) ); + //startActivity( new Intent(MainActivity.this, HomePage.class ) ); } else if (id == R.id.location) { @@ -115,8 +299,8 @@ else if (id == R.id.location) { public void setFragment(Fragment fragment){ if(fragment!=null){ FragmentTransaction ft= getSupportFragmentManager().beginTransaction(); - ft.replace(R.id.content_main,fragment); - ft.commit(); + ft.replace(R.id.event_list,fragment).commit(); + } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); diff --git a/app/src/main/java/com/example/eforezan/kuevents/PostActivity.java b/app/src/main/java/com/example/eforezan/kuevents/PostActivity.java index d42c8dd..f521909 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/PostActivity.java +++ b/app/src/main/java/com/example/eforezan/kuevents/PostActivity.java @@ -108,6 +108,7 @@ public void onClick(View view) { mDateSetListener, year, month, day); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.getDatePicker().setMinDate( System.currentTimeMillis()-1000 ); dialog.show(); } }); @@ -137,6 +138,7 @@ public void onClick(View view) { kDateSetListener, year, month, day); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.getDatePicker().setMinDate( System.currentTimeMillis()-1000 ); dialog.show(); } }); @@ -237,6 +239,8 @@ private void startPosting(){ final String starttime_value = mStartTime.getText().toString().trim(); final String endtime_value= mEndTime.getText().toString().trim(); + + if (!TextUtils.isEmpty(title_value) && !TextUtils.isEmpty(desc_value) && mimageUri!=null){ mProgress.show(); StorageReference filepath = mStorage.child("Event Images").child(mimageUri.getLastPathSegment()); @@ -258,8 +262,9 @@ public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + mProgress.dismiss(); - startActivity(new Intent(PostActivity.this, HomePage.class)); + startActivity(new Intent(PostActivity.this, navigation.class)); } }); } diff --git a/app/src/main/java/com/example/eforezan/kuevents/ProfileActivity.java b/app/src/main/java/com/example/eforezan/kuevents/ProfileActivity.java index 2b8545b..73da83a 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/ProfileActivity.java +++ b/app/src/main/java/com/example/eforezan/kuevents/ProfileActivity.java @@ -87,7 +87,7 @@ public void onClick(View view) { next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - startActivity(new Intent(ProfileActivity.this, HomePage.class)); + startActivity(new Intent(ProfileActivity.this, navigation.class)); } }); diff --git a/app/src/main/java/com/example/eforezan/kuevents/display_data.java b/app/src/main/java/com/example/eforezan/kuevents/display_data.java index 46658da..18bcbf5 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/display_data.java +++ b/app/src/main/java/com/example/eforezan/kuevents/display_data.java @@ -27,10 +27,16 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_data); - mDatabase = FirebaseDatabase.getInstance().getReference().child("Attendee"); + + + final String mPost_key = getIntent().getExtras().getString("event_id"); + + mDatabase = FirebaseDatabase.getInstance().getReference().child( "Events" ).child( mPost_key ).child( "Attendee" ); mUserList = (ListView) findViewById(R.id.user_list); + + final ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, mUsernames); mUserList.setAdapter(arrayAdapter); diff --git a/app/src/main/java/com/example/eforezan/kuevents/location.java b/app/src/main/java/com/example/eforezan/kuevents/location.java new file mode 100644 index 0000000..48f8740 --- /dev/null +++ b/app/src/main/java/com/example/eforezan/kuevents/location.java @@ -0,0 +1,82 @@ +package com.example.eforezan.kuevents; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; +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; + + + +public class location extends Fragment implements OnMapReadyCallback { + + private DatabaseReference mDatabase; + Marker marker; + + private GoogleMap mMap; + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_location, container, false); + super.onCreate(savedInstanceState); + + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + mDatabase = FirebaseDatabase.getInstance().getReference().child("Events"); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + mapFragment.getMapAsync( this ); + mDatabase.push().setValue(marker); + return view; + } + + + @Override + public void onMapReady( GoogleMap googleMap) { + mMap = googleMap; + googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + + mDatabase.addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + for (DataSnapshot child : dataSnapshot.getChildren()) { + + String lat = child.child("Latitude").getValue().toString(); + String longi = child.child("Longitude").getValue().toString(); + String title = child.child( "title" ).getValue().toString(); + + double location_left = Double.parseDouble(lat); + double location_right = Double.parseDouble(longi); + LatLng cod = new LatLng(location_left, location_right); + mMap.addMarker(new MarkerOptions().position(cod).title(title)); + float zoomLevel = 16.0f; //This goes up to 21 + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(cod, zoomLevel)); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + + } + + +} diff --git a/app/src/main/java/com/example/eforezan/kuevents/navigation.java b/app/src/main/java/com/example/eforezan/kuevents/navigation.java new file mode 100644 index 0000000..3c7d151 --- /dev/null +++ b/app/src/main/java/com/example/eforezan/kuevents/navigation.java @@ -0,0 +1,347 @@ +package com.example.eforezan.kuevents; + +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.auth.UserInfo; +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 com.squareup.picasso.Picasso; + +import org.w3c.dom.Text; + +public class navigation extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + + private RecyclerView mEventList; + + + private DatabaseReference mDatabase; + private DatabaseReference mDatabaseUsers; + private FirebaseAuth mAuth; + private FirebaseAuth.AuthStateListener mAuthListener; + private FirebaseUser mCurrentUser; + private DatabaseReference databaseReference; + private FirebaseUser firebaseUser; + + private DatabaseReference uDatabase; + + + + private boolean mProcessGoing = false; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate( savedInstanceState ); + setContentView( R.layout.activity_navigation ); + Toolbar toolbar = (Toolbar) findViewById( R.id.toolbar ); + setSupportActionBar( toolbar ); + + + DrawerLayout drawer = (DrawerLayout) findViewById( R.id.drawer_layout ); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close ); + drawer.addDrawerListener( toggle ); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById( R.id.nav_view ); + navigationView.setNavigationItemSelectedListener( this ); + + mAuth = FirebaseAuth.getInstance(); + mCurrentUser = mAuth.getCurrentUser(); + if (mCurrentUser == null) { + Intent loginIntent = new Intent( navigation.this, LoginActivity.class ); + loginIntent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP ); + startActivity( loginIntent ); + } + + + mDatabase = FirebaseDatabase.getInstance().getReference().child( "Events" ); + mDatabaseUsers = FirebaseDatabase.getInstance().getReference().child( "Users" ); + + firebaseUser = mAuth.getCurrentUser(); + + + mDatabase.keepSynced( true ); + mDatabaseUsers.keepSynced( true ); + + mEventList = (RecyclerView) findViewById( R.id.event_list ); + mEventList.setHasFixedSize( true ); + mEventList.setLayoutManager( new LinearLayoutManager( this ) ); + + mAuth = FirebaseAuth.getInstance(); + mAuthListener = new FirebaseAuth.AuthStateListener() { + @Override + public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { + if (firebaseAuth.getCurrentUser() == null) { + startActivity( new Intent( navigation.this, LoginActivity.class ) ); + } + } + }; + + final TextView mName = (TextView) navigationView.getHeaderView( 0 ).findViewById( R.id.headername ); + final ImageView mPic = (ImageView) navigationView.getHeaderView( 0 ).findViewById( R.id.headerimageView ); + + databaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(firebaseUser.getUid()); + + databaseReference.addListenerForSingleValueEvent(new ValueEventListener() { + + + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + mName.setText(dataSnapshot.child("name").getValue().toString()); + + String link =dataSnapshot.child("image").getValue().toString(); + Picasso.with(getBaseContext()).load(link).into(mPic); + + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + + + + + + }); + + + + + } + + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById( R.id.drawer_layout ); + if (drawer.isDrawerOpen( GravityCompat.START )) { + drawer.closeDrawer( GravityCompat.START ); + } else { + super.onBackPressed(); + } + } + + @Override + protected void onStart() { + super.onStart(); + + TextView going = (TextView) findViewById(R.id.going_status); + + FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter( + Event.class, + R.layout.event_row, + HomePage.EventViewHolder.class, + mDatabase + ) { + @Override + protected void populateViewHolder(HomePage.EventViewHolder viewHolder, Event model, int position) { + + final String post_key = getRef(position).getKey(); + + viewHolder.setTitle(model.getTitle()); + viewHolder.setImage(getApplicationContext(), model.getImage()); + viewHolder.setStart_Date(model.getStart_date()); + viewHolder.setgoingbtn(post_key); + //viewHolder.setLatitude(model.getLatitude()); + //viewHolder.setLongitude(model.getLongitude()); + // This is used in second.java + viewHolder.mView.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View view) { + //Toast.makeText(HomePage.this, post_key, Toast.LENGTH_LONG).show(); + Intent singleEventIntent = new Intent(navigation.this, second.class); + singleEventIntent.putExtra("event_id", post_key); + startActivity(singleEventIntent); + } + }); + + viewHolder.mGoingbtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mProcessGoing = true; + mDatabase.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + if (mProcessGoing){ + if (dataSnapshot.child(post_key).child("Attendee").hasChild(mAuth.getCurrentUser().getUid())){ + mDatabase.child(post_key).child("Attendee").child(mAuth.getCurrentUser().getUid()).removeValue(); + mDatabaseUsers.child(mAuth.getCurrentUser().getUid()).child( "GoingEvents" ).child(post_key).removeValue(); + mProcessGoing = false; + + + }else{ + + + + String uid = (String) mAuth.getCurrentUser().getUid().toString(); + + uDatabase = FirebaseDatabase.getInstance().getReference().child("Users"); + + uDatabase.child(uid).addValueEventListener( new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + + String name = (String) dataSnapshot.child("name").getValue(); + + mDatabase.child(post_key).child("Attendee").child(mAuth.getCurrentUser().getUid()).setValue(name); + mDatabaseUsers.child( mAuth.getCurrentUser().getUid()).child( "GoingEvents" ).child( post_key ).setValue( dataSnapshot.child(post_key).child( "title" ).getValue() ); + mProcessGoing = false; + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + } ); + + //mDatabase.child(post_key).child("Attendee").child(mAuth.getCurrentUser().getUid()).setValue(uid); + //mDatabaseUsers.child( mAuth.getCurrentUser().getUid()).child( "GoingEvents" ).child( post_key ).setValue( dataSnapshot.child(post_key).child( "title" ).getValue() ); + //mProcessGoing = false; + } + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + } + }); + + + } + //}; + //} + }; + mEventList.setAdapter(firebaseRecyclerAdapter); + + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate( R.menu.main_menu, menu ); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + + switch (item.getItemId()) { + case R.id.action_logout: + + FirebaseAuth.getInstance().signOut(); + finish(); + startActivity(new Intent(this, LoginActivity.class)); + + break; + + case R.id.action_add: + + String uid = mCurrentUser.getUid().toString().trim(); + + mDatabaseUsers.child(uid).addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + + String role = (String) dataSnapshot.child("role").getValue(); + + if (role.equals("Admin")){ + Toast.makeText(navigation.this, "You are admin", Toast.LENGTH_LONG).show(); + startActivity(new Intent(navigation.this, PostActivity.class)); + + } + + if (role.equals("Normal")) + { + View b = findViewById(R.id.action_add); + b.setVisibility(View.GONE); + } + + + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + + + + // Toast.makeText(HomePage.this, uid, Toast.LENGTH_LONG).show(); + + + + + + break; + + case R.id.map_button: + startActivity( new Intent( navigation.this, MapsActivity.class ) ); + } + + + return super.onOptionsItemSelected( item ); + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + + if (id == R.id.profile) { + setFragment( new profile() ); + } else if (id == R.id.events) { + startActivity( new Intent( navigation.this, navigation.class ) ); + + } else if (id == R.id.location) { + setFragment( new location() ); + } + DrawerLayout drawer = (DrawerLayout) findViewById( R.id.drawer_layout ); + drawer.closeDrawer( GravityCompat.START ); + return true; + } + + public void setFragment(Fragment fragment){ + if(fragment!=null){ + FragmentTransaction ft= getSupportFragmentManager().beginTransaction(); + ft.replace(R.id.layout_layout,fragment).commit(); + + } + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + } +} diff --git a/app/src/main/java/com/example/eforezan/kuevents/profile.java b/app/src/main/java/com/example/eforezan/kuevents/profile.java index 30da5d8..f968ab0 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/profile.java +++ b/app/src/main/java/com/example/eforezan/kuevents/profile.java @@ -43,7 +43,6 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, private void setupViewPager(ViewPager viewPager){ sliderAdapter adapter = new sliderAdapter(getChildFragmentManager()); adapter.addFragment(new tab1(), "Profile"); - adapter.addFragment(new tab2(), "Events posts"); adapter.addFragment(new tab3(), "Attended"); viewPager.setAdapter(adapter); } diff --git a/app/src/main/java/com/example/eforezan/kuevents/second.java b/app/src/main/java/com/example/eforezan/kuevents/second.java index c14cc11..2341911 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/second.java +++ b/app/src/main/java/com/example/eforezan/kuevents/second.java @@ -28,7 +28,7 @@ public class second extends AppCompatActivity { - //private String mPost_key = null; + String event_title; private DatabaseReference mDatabase; @@ -53,7 +53,7 @@ protected void onCreate(Bundle savedInstanceState) { mDatabase = FirebaseDatabase.getInstance().getReference().child("Events"); - String mPost_key = getIntent().getExtras().getString("event_id"); + final String mPost_key = getIntent().getExtras().getString("event_id"); mEventSingleImage = (ImageView) findViewById(R.id.image_event); mEventSingleTitle = (TextView) findViewById(R.id.title_view); @@ -62,6 +62,8 @@ protected void onCreate(Bundle savedInstanceState) { //Toast.makeText(second.this, mPost_key, Toast.LENGTH_LONG).show(); + //button_sbm = (Button) findViewById(R.id.button); + button_showdb = (Button) findViewById(R.id.button_showdb); @@ -73,11 +75,36 @@ public void onDataChange(DataSnapshot dataSnapshot) { String event_desc = (String) dataSnapshot.child("desc").getValue(); String event_image = (String) dataSnapshot.child("image").getValue(); + final String post_key= (String) dataSnapshot.getKey(); + + // final String post_key= mDatabase.child("title").push().getKey(); + + //added + //final String post_key = (String) dataSnapshot.getChildren().iterator().next().getKey(); + + //String uid = mDatabase.child("Events").push().getKey(); + //Log.i("uid", uid); + + + mEventSingleTitle.setText(event_title); mEventSingleDesc.setText(event_desc); Picasso.with(second.this).load(event_image).into(mEventSingleImage); + button_showdb.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view2) { + + // Toast.makeText(second.this, post_key, Toast.LENGTH_SHORT).show(); + Intent intent2 = new Intent(second.this, display_data.class); + intent2.putExtra("event_id", post_key); + startActivity(intent2); + } + }); + + + } @@ -92,13 +119,24 @@ public void onCancelled(DatabaseError databaseError) { //radio_b = (RadioButton) findViewById(selected_id); - button_sbm = (Button) findViewById(R.id.button); - button_showdb = (Button) findViewById(R.id.button_showdb); - mDatabase = FirebaseDatabase.getInstance().getReference().child("Attendee"); + + + /*button_showdb.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view2) { + + Toast.makeText(second.this, event_title, Toast.LENGTH_SHORT).show(); + //Intent intent2 = new Intent(second.this, display_data.this); + //intent2.putExtra("event_id", post_key); + //startActivity(intent2); + } + }); + */ + // AddData(); - showdb(); + //showdb(); @@ -144,16 +182,7 @@ public void onComplete(@NonNull Task task) { - public void showdb(){ - button_showdb.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view2) { - Intent intent2 = new Intent("com.example.eforezan.kuevents.display_data"); - startActivity(intent2); - } - }); - } diff --git a/app/src/main/java/com/example/eforezan/kuevents/splash.java b/app/src/main/java/com/example/eforezan/kuevents/splash.java new file mode 100755 index 0000000..63a3920 --- /dev/null +++ b/app/src/main/java/com/example/eforezan/kuevents/splash.java @@ -0,0 +1,50 @@ +package com.example.eforezan.kuevents; + +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.Menu; +import android.view.MenuItem; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.TextView; + +public class splash extends AppCompatActivity { + private TextView tv; + private ImageView iv; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash); + + tv = (TextView) findViewById(R.id.tv); + iv = (ImageView) findViewById(R.id.iv); + Animation myanim = AnimationUtils.loadAnimation(this, R.anim.mytransistion); + tv.startAnimation(myanim); + iv.startAnimation(myanim); + final Intent i = new Intent(this, LoginActivity.class); + Thread timer = new Thread() { + public void run() { + try { + sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + startActivity(i); + finish(); + } + + } + }; + timer.start(); + + } +} + diff --git a/app/src/main/java/com/example/eforezan/kuevents/tab3.java b/app/src/main/java/com/example/eforezan/kuevents/tab3.java index 1865452..f739ae1 100644 --- a/app/src/main/java/com/example/eforezan/kuevents/tab3.java +++ b/app/src/main/java/com/example/eforezan/kuevents/tab3.java @@ -3,19 +3,84 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import android.widget.Toast; + +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.ChildEventListener; +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 java.util.ArrayList; public class tab3 extends Fragment{ private static final String TAG ="Attended"; + private DatabaseReference mDatabase; + private FirebaseAuth mAuth; + private ListView mEventList; + private ArrayList mEventnames = new ArrayList<>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_tab3,container,false); - return view; + View view = inflater.inflate( R.layout.fragment_tab3, container, false ); + + + mAuth = FirebaseAuth.getInstance(); + + mDatabase = FirebaseDatabase.getInstance().getReference().child( "Users" ).child( mAuth.getCurrentUser().getUid() ).child( "GoingEvents" ); + mEventList =(ListView) view.findViewById( R.id.attended_list ); + + + + final ArrayAdapter arrayAdapter = new ArrayAdapter( getContext(), android.R.layout.simple_expandable_list_item_1, mEventnames ); + mEventList.setAdapter( arrayAdapter ); + + mDatabase.addChildEventListener( new ChildEventListener() { + @Override + public void onChildAdded(DataSnapshot dataSnapshot, String s) { + String value = dataSnapshot.getValue().toString(); + arrayAdapter.add( value); + + Toast.makeText(getContext(),"Attended list",Toast.LENGTH_LONG ).show(); + + } + + @Override + public void onChildChanged(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onChildRemoved(DataSnapshot dataSnapshot) { + + } + + @Override + public void onChildMoved(DataSnapshot dataSnapshot, String s) { + + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + } ); + + + return super.onCreateView(inflater, container, savedInstanceState); + } + + + } \ No newline at end of file diff --git a/app/src/main/res/anim/mytransistion.xml b/app/src/main/res/anim/mytransistion.xml new file mode 100755 index 0000000..9a78f9f --- /dev/null +++ b/app/src/main/res/anim/mytransistion.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_camera.xml b/app/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..0d9ea10 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_gallery.xml b/app/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..f6872c4 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_manage.xml b/app/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..c1be60b --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v21/ic_menu_send.xml b/app/src/main/res/drawable-v21/ic_menu_send.xml new file mode 100644 index 0000000..00c668c --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_share.xml b/app/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..a28fb9e --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-v21/ic_menu_slideshow.xml b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..209aa64 --- /dev/null +++ b/app/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/logo32.png b/app/src/main/res/drawable/logo32.png new file mode 100755 index 0000000000000000000000000000000000000000..9cdb9a1c76703544f84ce116d61a5124c37889b1 GIT binary patch literal 85740 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_home_page.xml b/app/src/main/res/layout/activity_home_page.xml index e1dd8a5..233c6b2 100644 --- a/app/src/main/res/layout/activity_home_page.xml +++ b/app/src/main/res/layout/activity_home_page.xml @@ -1,15 +1,60 @@ - + android:fitsSystemWindows="true" + tools:openDrawer="start"> - - + android:layout_gravity="start" + android:fitsSystemWindows="true" + app:headerLayout="@layout/nav_header_main" + app:menu="@menu/activity_main_drawer" /> + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 620b1cf..8b0d4b3 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -23,4 +23,7 @@ app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> + + + diff --git a/app/src/main/res/layout/activity_navigation.xml b/app/src/main/res/layout/activity_navigation.xml new file mode 100644 index 0000000..9ff6a66 --- /dev/null +++ b/app/src/main/res/layout/activity_navigation.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_second.xml b/app/src/main/res/layout/activity_second.xml index e272184..139093d 100644 --- a/app/src/main/res/layout/activity_second.xml +++ b/app/src/main/res/layout/activity_second.xml @@ -7,17 +7,6 @@ tools:context="com.example.eforezan.kuevents.second"> -