From 64ac34cbbc6a418570c532cc4f38e26e104ec7db Mon Sep 17 00:00:00 2001
From: kishoreraju2 <kishoreraju.1998@gmail.com>
Date: Mon, 24 Apr 2017 04:33:09 +0530
Subject: [PATCH] WoooHoooo Added personal Feed

---
 .../com/mapps/seproject/CameraFragment.java   | 72 +++++++++++++++++--
 .../main/java/com/mapps/seproject/Feed.java   | 25 +++++++
 .../com/mapps/seproject/MainActivity.java     | 52 +++++++++++++-
 .../mapps/seproject/MunicipalActivity.java    |  2 +-
 .../com/mapps/seproject/RegisterActivity.java |  4 +-
 .../mapps/seproject/UserActivityFragment.java | 20 +++---
 .../res/layout/fragment_user_activity.xml     | 19 ++---
 7 files changed, 161 insertions(+), 33 deletions(-)
 create mode 100644 app/src/main/java/com/mapps/seproject/Feed.java

diff --git a/app/src/main/java/com/mapps/seproject/CameraFragment.java b/app/src/main/java/com/mapps/seproject/CameraFragment.java
index 4522583..4e23d29 100644
--- a/app/src/main/java/com/mapps/seproject/CameraFragment.java
+++ b/app/src/main/java/com/mapps/seproject/CameraFragment.java
@@ -28,6 +28,11 @@ import com.google.android.gms.tasks.OnFailureListener;
 import com.google.android.gms.tasks.OnSuccessListener;
 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.google.firebase.storage.FirebaseStorage;
 import com.google.firebase.storage.OnProgressListener;
 import com.google.firebase.storage.StorageReference;
@@ -62,7 +67,7 @@ public class CameraFragment extends Fragment {
     StorageReference mStorageRef;
 
 
-    FirebaseUser user;
+    FirebaseUser firebaseUser;
     FirebaseAuth firebaseAuth;
 
     private com.mapps.seproject.TrackGPS gps;
@@ -71,6 +76,12 @@ public class CameraFragment extends Fragment {
     String city;
     String postalCode;
 
+    final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("feed");
+
+    String UID="";
+    int flag = 0;
+
+
 
 
     @Override
@@ -80,6 +91,10 @@ public class CameraFragment extends Fragment {
         view = inflater.inflate(R.layout.fragment_camera, container, false);
         firebaseAuth = FirebaseAuth.getInstance();
 
+        firebaseUser = firebaseAuth.getCurrentUser();
+        UID = firebaseUser.getUid();
+
+
         mStorageRef = FirebaseStorage.getInstance().getReference();
         btnCapturePicture = (Button) view.findViewById(R.id.btnCapturePicture);
 
@@ -227,12 +242,13 @@ public class CameraFragment extends Fragment {
             progressDialog.setTitle("Uploading");
             progressDialog.show();
 
-            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
-                    Locale.getDefault()).format(new Date());
+            Long tsLong = System.currentTimeMillis()/1000;
+            final String timeStamp = tsLong.toString();
 
             StorageReference riversRef = mStorageRef.child("images/"+ timeStamp+"pic.jpg");
             riversRef.putFile(fileUri)
                     .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
+                        @SuppressWarnings("VisibleForTests")
                         @Override
                         public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                             //if the upload is successfull
@@ -241,6 +257,31 @@ public class CameraFragment extends Fragment {
 
                             //and displaying a success toast
                             Toast.makeText(getActivity().getBaseContext(), "File Uploaded ", Toast.LENGTH_LONG).show();
+                            final Uri downloadUri = taskSnapshot.getDownloadUrl();
+                            final String downloadUrl = downloadUri.toString();
+
+                            databaseReference.addValueEventListener(new ValueEventListener() {
+                                @Override
+                                public void onDataChange(DataSnapshot dataSnapshot) {
+
+
+
+                                    if(flag == 0) {
+
+
+                                        databaseReference.child(UID).child("feed").child(String.valueOf(MainActivity.ids)).child("image").setValue(downloadUrl);
+                                        databaseReference.child(UID).child("feed").child(String.valueOf(MainActivity.ids)).child("timeStamp").setValue(timeStamp);
+                                        flag = 1;
+                                    }
+
+                                }
+
+
+                                @Override
+                                public void onCancelled(DatabaseError databaseError) {
+
+                                }
+                            });
                         }
                     })
                     .addOnFailureListener(new OnFailureListener() {
@@ -281,8 +322,8 @@ public class CameraFragment extends Fragment {
             progressDialog.setTitle("Uploading");
             progressDialog.show();
 
-            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
-                    Locale.getDefault()).format(new Date());
+            Long tsLong = System.currentTimeMillis()/1000;
+            final String timeStamp = tsLong.toString();
 
             StorageReference riversRef = mStorageRef.child("images/"+ timeStamp+"pic.jpg");
             riversRef.putFile(imageUri)
@@ -295,6 +336,27 @@ public class CameraFragment extends Fragment {
 
                             //and displaying a success toast
                             Toast.makeText(getActivity().getBaseContext(), "File Uploaded ", Toast.LENGTH_LONG).show();
+                            final Uri downloadUri = taskSnapshot.getDownloadUrl();
+                            final String downloadUrl = downloadUri.toString();
+
+                            databaseReference.addValueEventListener(new ValueEventListener() {
+                                @Override
+                                public void onDataChange(DataSnapshot dataSnapshot) {
+
+                                    if(flag == 0) {
+
+
+                                        databaseReference.child(UID).child("feed").child(String.valueOf(MainActivity.ids)).child("image").setValue(downloadUrl);
+                                        databaseReference.child(UID).child("feed").child(String.valueOf(MainActivity.ids)).child("timeStamp").setValue(timeStamp);
+                                        flag = 1;
+                                    }
+                                }
+
+                                @Override
+                                public void onCancelled(DatabaseError databaseError) {
+
+                                }
+                            });
                         }
                     })
                     .addOnFailureListener(new OnFailureListener() {
diff --git a/app/src/main/java/com/mapps/seproject/Feed.java b/app/src/main/java/com/mapps/seproject/Feed.java
new file mode 100644
index 0000000..22daec1
--- /dev/null
+++ b/app/src/main/java/com/mapps/seproject/Feed.java
@@ -0,0 +1,25 @@
+package com.mapps.seproject;
+
+/**
+ * Created by kishore on 4/24/2017.
+ */
+
+public class Feed {
+
+    int id;
+    String name,image,status,profilePic,timeStamp,url;
+
+    public Feed(){}
+
+    public Feed(int id,String name,String image,String status,String profilePic,String timeStamp,String url){
+        this.id = id;
+        this.name = name;
+        this.image = image;
+        this.status = status;
+        this.profilePic = profilePic;
+        this.timeStamp = timeStamp;
+        this.url = url;
+
+    }
+
+}
diff --git a/app/src/main/java/com/mapps/seproject/MainActivity.java b/app/src/main/java/com/mapps/seproject/MainActivity.java
index 19dd84f..8638182 100644
--- a/app/src/main/java/com/mapps/seproject/MainActivity.java
+++ b/app/src/main/java/com/mapps/seproject/MainActivity.java
@@ -17,6 +17,7 @@ import android.widget.EditText;
 import android.widget.Toast;
 
 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;
@@ -36,12 +37,27 @@ public class MainActivity extends AppCompatActivity {
 
     int flag = 0;
     FirebaseDatabase database = FirebaseDatabase.getInstance();
-    DatabaseReference myRef = database.getReference("message");
+
+    DatabaseReference databaseReference;
+
     String userId;
     String UserEmail = null;
     static String location = "Not Updated";
     static String complaint = "Not Updated";
 
+    String UID="";
+
+    int flags = 0;
+
+    public static int ids;
+    String image="";
+    //   String TimeStamp = "";
+    String URL = "";
+    String profilePic="http://api.androidhive.info/feed/img/ar.jpg";
+    String status = "";
+    String UserName = "";
+    FirebaseUser firebaseUser;
+
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
@@ -72,9 +88,11 @@ public class MainActivity extends AppCompatActivity {
 
         firebaseAuth = FirebaseAuth.getInstance();
         final String data = firebaseAuth.getCurrentUser().getEmail();
+        firebaseUser = firebaseAuth.getCurrentUser();
 
         final DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users");
 
+        databaseReference = FirebaseDatabase.getInstance().getReference("feed");
         /*
         userId = mDatabase.push().getKey();
         User user = new User(data);
@@ -127,6 +145,38 @@ public class MainActivity extends AppCompatActivity {
         });
 
 
+        databaseReference.addValueEventListener(new ValueEventListener() {
+            @Override
+            public void onDataChange(DataSnapshot dataSnapshot) {
+
+
+
+                //       UserName = getname.getText().toString();
+
+                if(flags == 0)   {
+                    ids = (int) dataSnapshot.child("feed").getChildrenCount();
+
+                    Long tsLong = System.currentTimeMillis()/1000;
+                    UID = firebaseUser.getUid();
+                    final String TimeStamp = tsLong.toString();
+
+
+
+
+                    Feed feed = new Feed(ids,UserName,image,status,profilePic,TimeStamp,URL);
+                    databaseReference.child(UID).child("feed").child(String.valueOf(ids)).setValue(feed);
+                    flags = 1;
+
+                }
+            }
+
+            @Override
+            public void onCancelled(DatabaseError databaseError) {
+
+            }
+        });
+
+
 
 
         BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar);
diff --git a/app/src/main/java/com/mapps/seproject/MunicipalActivity.java b/app/src/main/java/com/mapps/seproject/MunicipalActivity.java
index 4fdeddd..9dad9aa 100644
--- a/app/src/main/java/com/mapps/seproject/MunicipalActivity.java
+++ b/app/src/main/java/com/mapps/seproject/MunicipalActivity.java
@@ -32,7 +32,7 @@ public class MunicipalActivity extends AppCompatActivity {
     private ListView listView;
     private FeedListAdapter listAdapter;
     private List<FeedItem> feedItems;
-    private String URL_FEED = "https://se-project-4a6c6.firebaseapp.com/feeds/feeds.json";
+    private String URL_FEED = "https://se-project-4a6c6.firebaseio.com/feed/.json?auth=amEmrcvLUpmPjPlRnhinnkbWjbcLrKhPuLcBdV9i";
 
     @SuppressLint("NewApi")
     @Override
diff --git a/app/src/main/java/com/mapps/seproject/RegisterActivity.java b/app/src/main/java/com/mapps/seproject/RegisterActivity.java
index 67072e8..2284722 100644
--- a/app/src/main/java/com/mapps/seproject/RegisterActivity.java
+++ b/app/src/main/java/com/mapps/seproject/RegisterActivity.java
@@ -97,14 +97,14 @@ public class RegisterActivity extends AppCompatActivity implements View.OnClickL
 
 
                                 Toast.makeText(RegisterActivity.this, "Registered Successfuly", Toast.LENGTH_SHORT).show();
-                                progress.hide();
+                                progress.dismiss();
 
 
                             } else {
 
 
                                 Toast.makeText(RegisterActivity.this, "Failed to Register", Toast.LENGTH_SHORT).show();
-                                progress.hide();
+                                progress.dismiss();
                                 //task.getException().getMessage();
 
                             }
diff --git a/app/src/main/java/com/mapps/seproject/UserActivityFragment.java b/app/src/main/java/com/mapps/seproject/UserActivityFragment.java
index d3500be..0d0fa69 100644
--- a/app/src/main/java/com/mapps/seproject/UserActivityFragment.java
+++ b/app/src/main/java/com/mapps/seproject/UserActivityFragment.java
@@ -15,6 +15,7 @@ import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.ListView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.android.volley.Cache;
 import com.android.volley.Request;
@@ -43,13 +44,15 @@ public class UserActivityFragment extends Fragment  {
 
     Button bSignOut;
 
+    FirebaseUser firebaseUser;
     FirebaseUser user;
     FirebaseAuth firebaseAuth;
 
     private ListView listView;
     private FeedListAdapter listAdapter;
     private List<FeedItem> feedItems;
-    private String URL_FEED = "https://se-project-4a6c6.firebaseapp.com/feeds/feeds.json";
+    private String URL_FEED;
+    String UID;
 
     View view;
 
@@ -61,6 +64,11 @@ public class UserActivityFragment extends Fragment  {
         view = inflater.inflate(R.layout.fragment_user_activity, container, false);
 
         firebaseAuth = FirebaseAuth.getInstance();
+        firebaseUser = firebaseAuth.getCurrentUser();
+        UID = firebaseUser.getUid();
+        Toast.makeText(getActivity().getApplicationContext(),UID,Toast.LENGTH_LONG).show();
+
+        URL_FEED = "https://se-project-4a6c6.firebaseio.com/feed/"+UID+"/.json?auth=amEmrcvLUpmPjPlRnhinnkbWjbcLrKhPuLcBdV9i";
 
 
         if(firebaseAuth.getCurrentUser() == null)   {                               // Incase the user hasnt logged in
@@ -76,17 +84,7 @@ public class UserActivityFragment extends Fragment  {
 
 
 
-        bSignOut = (Button) view.findViewById(R.id.bSignOut);
-        bSignOut.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-               // Log.i("Singout","Clicked");
-                    firebaseAuth.signOut();
-                    getActivity().finish();
-                    startActivity(new Intent(getActivity().getApplicationContext(),LoginActivity.class));
 
-            }
-        });
 
         listView = (ListView) view.findViewById(R.id.lists);
 
diff --git a/app/src/main/res/layout/fragment_user_activity.xml b/app/src/main/res/layout/fragment_user_activity.xml
index 3e0b260..1f65a04 100644
--- a/app/src/main/res/layout/fragment_user_activity.xml
+++ b/app/src/main/res/layout/fragment_user_activity.xml
@@ -1,12 +1,12 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
     tools:context="com.mapps.seproject.UserActivityFragment">
 
     <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
         >
 
 
@@ -14,17 +14,10 @@
         <ListView
             android:id="@+id/lists"
             android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="fill_parent"
             android:divider="@null" />
 
-        <Button
-            android:text="Sign Out"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/lists"
-            android:layout_centerHorizontal="true"
-            android:layout_marginTop="76dp"
-            android:id="@+id/bSignOut" />
+
     </RelativeLayout>
 
 </FrameLayout>
-- 
GitLab