Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
InstiLostAndFound
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
MUTTINENI NAVYA
InstiLostAndFound
Commits
5643adf7
Commit
5643adf7
authored
Nov 26, 2019
by
ankitasingh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor changes and revised docs
parent
40ef7cb4
Changes
25
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
735 additions
and
570 deletions
+735
-570
.gradle/5.4.1/executionHistory/executionHistory.lock
.gradle/5.4.1/executionHistory/executionHistory.lock
+0
-0
.gradle/5.4.1/fileHashes/fileHashes.lock
.gradle/5.4.1/fileHashes/fileHashes.lock
+0
-0
.gradle/buildOutputCleanup/buildOutputCleanup.lock
.gradle/buildOutputCleanup/buildOutputCleanup.lock
+0
-0
.idea/misc.xml
.idea/misc.xml
+1
-1
.idea/workspace.xml
.idea/workspace.xml
+279
-261
app/src/main/java/com/example/instilostandfound/Config.java
app/src/main/java/com/example/instilostandfound/Config.java
+3
-0
app/src/main/java/com/example/instilostandfound/CreateFoundObject.java
...java/com/example/instilostandfound/CreateFoundObject.java
+62
-27
app/src/main/java/com/example/instilostandfound/FoundItem.java
...rc/main/java/com/example/instilostandfound/FoundItem.java
+36
-58
app/src/main/java/com/example/instilostandfound/ImageAdapter.java
...main/java/com/example/instilostandfound/ImageAdapter.java
+0
-62
app/src/main/java/com/example/instilostandfound/ItemClaim.java
...rc/main/java/com/example/instilostandfound/ItemClaim.java
+12
-7
app/src/main/java/com/example/instilostandfound/ItemDetails.java
.../main/java/com/example/instilostandfound/ItemDetails.java
+6
-31
app/src/main/java/com/example/instilostandfound/LostItem.java
...src/main/java/com/example/instilostandfound/LostItem.java
+38
-28
app/src/main/java/com/example/instilostandfound/MainActivity.java
...main/java/com/example/instilostandfound/MainActivity.java
+0
-3
app/src/main/java/com/example/instilostandfound/MyPosts.java
app/src/main/java/com/example/instilostandfound/MyPosts.java
+3
-4
app/src/main/java/com/example/instilostandfound/MyPostsAdaptor.java
...in/java/com/example/instilostandfound/MyPostsAdaptor.java
+55
-6
app/src/main/java/com/example/instilostandfound/MyPostsFoundRV.java
...in/java/com/example/instilostandfound/MyPostsFoundRV.java
+25
-10
app/src/main/java/com/example/instilostandfound/MyPostsLostRV.java
...ain/java/com/example/instilostandfound/MyPostsLostRV.java
+19
-3
app/src/main/java/com/example/instilostandfound/Navigation.java
...c/main/java/com/example/instilostandfound/Navigation.java
+25
-11
app/src/main/java/com/example/instilostandfound/NetworkConnection.java
...java/com/example/instilostandfound/NetworkConnection.java
+22
-2
app/src/main/java/com/example/instilostandfound/NewsFeedFound.java
...ain/java/com/example/instilostandfound/NewsFeedFound.java
+27
-17
app/src/main/java/com/example/instilostandfound/NewsFeedLost.java
...main/java/com/example/instilostandfound/NewsFeedLost.java
+29
-16
app/src/main/java/com/example/instilostandfound/NewsfeedAdaptor.java
...n/java/com/example/instilostandfound/NewsfeedAdaptor.java
+37
-8
app/src/main/java/com/example/instilostandfound/RedirectMyPosts.java
...n/java/com/example/instilostandfound/RedirectMyPosts.java
+9
-2
app/src/main/java/com/example/instilostandfound/SendMail.java
...src/main/java/com/example/instilostandfound/SendMail.java
+22
-0
app/src/main/java/com/example/instilostandfound/emailFragment.java
...ain/java/com/example/instilostandfound/emailFragment.java
+25
-13
No files found.
.gradle/5.4.1/executionHistory/executionHistory.lock
View file @
5643adf7
No preview for this file type
.gradle/5.4.1/fileHashes/fileHashes.lock
View file @
5643adf7
No preview for this file type
.gradle/buildOutputCleanup/buildOutputCleanup.lock
View file @
5643adf7
No preview for this file type
.idea/misc.xml
View file @
5643adf7
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"JavadocGenerationManager"
>
<option
name=
"OUTPUT_DIRECTORY"
value=
"$USER_HOME$"
/>
<option
name=
"OUTPUT_DIRECTORY"
value=
"$USER_HOME$
/InstiLostAndFoundDoc
"
/>
</component>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_7"
project-jdk-name=
"1.8"
project-jdk-type=
"JavaSDK"
/>
</project>
\ No newline at end of file
.idea/workspace.xml
View file @
5643adf7
This diff is collapsed.
Click to expand it.
app/src/main/java/com/example/instilostandfound/Config.java
View file @
5643adf7
package
com.example.instilostandfound
;
/**
* Configuration class for email setups
*/
public
class
Config
{
public
static
final
String
EMAIL
=
"hackoholicgirls@gmail.com"
;
public
static
final
String
PASSWORD
=
"hackoholicgirls123"
;
...
...
app/src/main/java/com/example/instilostandfound/CreateFoundObject.java
View file @
5643adf7
...
...
@@ -7,9 +7,11 @@ import java.io.Serializable;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
/**
* Creates a database object for each item found or lost
*/
public
class
CreateFoundObject
implements
Serializable
{
//private String mLDAPID;
private
String
mImageUrl
;
private
String
mKey
;
private
String
mTitle
;
...
...
@@ -21,17 +23,23 @@ public class CreateFoundObject implements Serializable {
private
String
mDateFound
;
private
String
mtype
;
public
CreateFoundObject
()
{
}
/**
* Constructor to initilaise objects of the class object found /lost
* @param LDAPID LDAP id of the user
* @param title title of the post
* @param imageUrl image url of the object as stored in firebase storage
* @param location location of the object
* @param desc description of the object
* @param category Category of the object
* @param datefound Date when object was lost/found
* @param type type of item -> lost/found
*/
public
CreateFoundObject
(
String
LDAPID
,
String
title
,
String
imageUrl
,
String
location
,
String
desc
,
String
category
,
String
datefound
,
String
type
)
{
if
(
LDAPID
.
trim
().
equals
(
""
))
{
mLDAP
=
"No Name"
;
}
//mLDAPID = LDAPID;
mImageUrl
=
imageUrl
;
mLDAP
=
FirebaseAuth
.
getInstance
().
getCurrentUser
().
getEmail
();
mDescription
=
desc
;
...
...
@@ -49,47 +57,69 @@ public class CreateFoundObject implements Serializable {
}
/**
* Get LDAP id
* @return LDAP of user
*/
public
String
getLDAP
()
{
return
mLDAP
;
}
/**
* Setting LDAP credentials
* @param LDAP LDAP id of user
*/
public
void
setLDAP
(
String
LDAP
)
{
mLDAP
=
LDAP
;
}
/**
* Set the title of post
* @return title of post
*/
public
String
getmTitle
()
{
return
mTitle
;
}
public
void
setmTitle
(
String
mTitle
)
{
this
.
mTitle
=
mTitle
;
}
/**
* get the image url
* @return image url
*/
public
String
getImageUrl
()
{
return
mImageUrl
;
}
public
void
setImageUrl
(
String
imageUrl
)
{
mImageUrl
=
imageUrl
;
}
/**
* get category of post
* @return category of post
*/
public
String
getmCategory
()
{
return
mCategory
;
}
public
void
setmCategory
(
String
category
)
{
mCategory
=
category
;
}
{
return
mCategory
;
}
/**
* get date when object was lost/found
* @return date of lost/found
*/
public
String
getmDateFound
()
{
return
mDateFound
;
}
public
void
setmDateFound
(
String
dateFound
)
{
mDateFound
=
dateFound
;
}
{
return
mDateFound
;
}
/**
* description of post
* @return description
*/
public
String
getmDescription
()
{
return
mDescription
;
}
public
void
setmDescription
(
String
desc
)
{
mDescription
=
desc
;
}
/**
* Get the location of object
* @return location coordinates
*/
public
String
getmLocation
()
{
return
mLocation
;}
public
void
setmLocation
(
String
location
)
{
mLocation
=
location
;}
@Exclude
public
String
getKey
()
...
...
@@ -102,8 +132,13 @@ public class CreateFoundObject implements Serializable {
mKey
=
key
;
}
/**
* Get date of item lost/found
* @return date item
*/
public
String
getDate
()
{
return
mDate
;
}
public
void
setDate
(
String
date
)
{
mDate
=
date
;
}
{
return
mDate
;
}
}
app/src/main/java/com/example/instilostandfound/FoundItem.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
com.example.instilostandfound.R
;
import
com.google.android.gms.tasks.OnFailureListener
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.firebase.auth.FirebaseAuth
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.OnProgressListener
;
import
com.google.firebase.storage.StorageReference
;
import
com.google.firebase.storage.StorageTask
;
import
com.google.firebase.storage.UploadTask
;
import
android.Manifest
;
import
android.app.Activity
;
import
android.app.DatePickerDialog
;
import
android.app.Dialog
;
import
android.app.ProgressDialog
;
import
android.content.ContentResolver
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.icu.text.SimpleDateFormat
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Bundle
;
import
com.google.android.material.floatingactionbutton.FloatingActionButton
;
import
com.google.android.material.snackbar.Snackbar
;
import
com.google.firebase.auth.FirebaseAuth
;
import
com.squareup.picasso.Picasso
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.Toolbar
;
import
androidx.core.content.FileProvider
;
import
android.os.Environment
;
import
android.os.Handler
;
import
android.provider.MediaStore
;
import
android.util.Log
;
import
android.view.View
;
import
android.webkit.MimeTypeMap
;
...
...
@@ -54,22 +21,30 @@ import android.widget.Spinner;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.Toolbar
;
import
com.google.android.gms.tasks.OnFailureListener
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.StorageReference
;
import
com.google.firebase.storage.StorageTask
;
import
com.google.firebase.storage.UploadTask
;
import
com.squareup.picasso.Picasso
;
import
java.io.Serializable
;
import
java.net.URI
;
import
java.net.URL
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Random
;
//import static android.app.Activity.RESULT_OK;
//import com.squareup.picasso.Picasso;
/**
* Activity to post the details of the found item -> includes image
*/
public
class
FoundItem
extends
AppCompatActivity
implements
View
.
OnClickListener
,
Serializable
{
private
static
final
String
TAG
=
FoundItem
.
class
.
getSimpleName
();
;
//private FirebaseAuth mAuth;
private
static
final
String
TAG
=
FoundItem
.
class
.
getSimpleName
();
EditText
title
;
EditText
place
;
EditText
desc
;
...
...
@@ -77,11 +52,8 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
Spinner
category
;
String
username
;
ImageView
camera
;
// various item categries defined here
public
static
String
[]
items
=
new
String
[]{
"Others"
,
"Electronics"
,
"Documents"
,
"Clothes"
,
"Furniture"
,
"Accessories"
};
private
static
final
int
CAMERA_REQUEST
=
1888
;
private
ImageView
imageView
;
private
static
final
int
MY_CAMERA_PERMISSION_CODE
=
100
;
private
DatabaseReference
mDatabase
;
public
Uri
mImageUri
;
public
Uri
uploadSessionUri
;
int
PICK_IMAGE_REQUEST
=
111
;
...
...
@@ -92,13 +64,14 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
public
String
tempUri
;
DatePickerDialog
.
OnDateSetListener
dateSetListener
;
// ...
FirebaseDatabase
database
=
FirebaseDatabase
.
getInstance
();
DatabaseReference
myRef
=
FirebaseDatabase
.
getInstance
().
getReference
(
"FoundData"
);
StorageReference
mStorage
=
FirebaseStorage
.
getInstance
().
getReference
(
"Images"
);
FirebaseStorage
mStorageRef
=
FirebaseStorage
.
getInstance
();
/**
* On create method for found item activity takes input the details of the object found
* @param savedInstanceState default param
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -139,6 +112,9 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
}
/**
* Stores the data in firebase db
*/
private
void
SubmitFound
()
{
final
String
Title
=
title
.
getText
().
toString
().
trim
();
final
String
Place
=
place
.
getText
().
toString
().
trim
();
...
...
@@ -280,11 +256,12 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
startActivity
(
intent
);
finish
();
}
}
/**Method to get extension of type of image uploaded
*
* @param uri image url
* @return extension name
*/
private
String
getExtension
(
Uri
uri
)
{
ContentResolver
cr
=
getContentResolver
();
...
...
@@ -294,9 +271,10 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
/**
* On click for views and buttons of activity
*/
public
void
onClick
(
View
view
)
{
switch
(
view
.
getId
())
...
...
app/src/main/java/com/example/instilostandfound/ImageAdapter.java
deleted
100644 → 0
View file @
40ef7cb4
package
com.example.instilostandfound
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.squareup.picasso.Picasso
;
import
java.util.List
;
public
class
ImageAdapter
extends
RecyclerView
.
Adapter
<
ImageAdapter
.
ImageViewHolder
>
{
private
Context
mContext
;
private
List
<
CreateFoundObject
>
mUploads
;
public
ImageAdapter
(
Context
context
,
List
<
CreateFoundObject
>
uploads
)
{
mContext
=
context
;
mUploads
=
uploads
;
}
@Override
public
ImageViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
v
=
LayoutInflater
.
from
(
mContext
).
inflate
(
R
.
layout
.
image_item
,
parent
,
false
);
return
new
ImageViewHolder
(
v
);
}
@Override
public
void
onBindViewHolder
(
ImageViewHolder
holder
,
int
position
)
{
CreateFoundObject
uploadCurrent
=
mUploads
.
get
(
position
);
holder
.
textViewName
.
setText
(
uploadCurrent
.
getmTitle
());
Picasso
.
with
(
mContext
)
.
load
(
uploadCurrent
.
getImageUrl
())
.
placeholder
(
R
.
mipmap
.
ic_launcher
)
.
fit
()
.
centerCrop
()
.
into
(
holder
.
imageView
);
}
@Override
public
int
getItemCount
()
{
return
mUploads
.
size
();
}
public
class
ImageViewHolder
extends
RecyclerView
.
ViewHolder
{
public
TextView
textViewName
;
public
ImageView
imageView
;
public
ImageViewHolder
(
View
itemView
)
{
super
(
itemView
);
textViewName
=
itemView
.
findViewById
(
R
.
id
.
text_view_name
);
imageView
=
itemView
.
findViewById
(
R
.
id
.
image_view_upload
);
}
}
}
app/src/main/java/com/example/instilostandfound/ItemClaim.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentActivity
;
import
android.app.FragmentManager
;
import
android.app.FragmentTransaction
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentActivity
;
import
com.squareup.picasso.Picasso
;
/**
* Activity to see details and claim the item
*/
public
class
ItemClaim
extends
AppCompatActivity
implements
View
.
OnClickListener
{
private
String
username
=
null
;
CreateFoundObject
objectfound
;
...
...
@@ -39,6 +39,11 @@ public class ItemClaim extends AppCompatActivity implements View.OnClickListene
.
centerCrop
()
.
into
(
camera
);
}
/**
* Executed on click of claim button
* @param v claim button
*/
@Override
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
())
{
...
...
app/src/main/java/com/example/instilostandfound/ItemDetails.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.squareup.picasso.Picasso
;
/**
* Activity to display object details
*/
public
class
ItemDetails
extends
AppCompatActivity
{
String
category
,
name
,
key
;
int
type
;
Bundle
details_bundle
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -36,28 +33,6 @@ Bundle details_bundle;
.
centerCrop
()
.
into
(
camera
);
// findViewById(R.id.edit_post).setOnClickListener(this);
// findViewById(R.id.resolve_post).setOnClickListener(this);
}
/* @Override
public void onClick(View v) {
switch (v.getId()){
case R.id.edit_post:
if(details_bundle.getString("type").equals("lost")){
Intent intent = new Intent(ItemDetails.this, LostItem.class);
intent.putExtras(details_bundle);
startActivity(intent);
}
else if(details_bundle.getString("type").equals("found")){
Intent intent = new Intent(ItemDetails.this, FoundItem.class);
intent.putExtras(details_bundle);
startActivity(intent);
}
break;
case R.id.resolve_post:
break;
}
}*/
}
app/src/main/java/com/example/instilostandfound/LostItem.java
View file @
5643adf7
...
...
@@ -9,23 +9,6 @@ import android.graphics.drawable.ColorDrawable;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Bundle
;
import
com.google.android.gms.tasks.OnFailureListener
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.android.material.floatingactionbutton.FloatingActionButton
;
import
com.google.android.material.snackbar.Snackbar
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.StorageReference
;
import
com.google.firebase.storage.StorageTask
;
import
com.google.firebase.storage.UploadTask
;
import
com.squareup.picasso.Picasso
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.Toolbar
;
import
android.os.Handler
;
import
android.util.Log
;
import
android.view.View
;
...
...
@@ -38,10 +21,29 @@ import android.widget.Spinner;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.Toolbar
;
import
com.google.android.gms.tasks.OnFailureListener
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.StorageReference
;
import
com.google.firebase.storage.StorageTask
;
import
com.google.firebase.storage.UploadTask
;
import
com.squareup.picasso.Picasso
;
import
java.io.Serializable
;
import
java.util.Calendar
;
import
java.util.Date
;
/**
* Activity to post the details of the lost item -> includes image
*/
public
class
LostItem
extends
AppCompatActivity
implements
View
.
OnClickListener
,
Serializable
{
private
static
final
String
TAG
=
LostItem
.
class
.
getSimpleName
();
;
...
...
@@ -52,6 +54,7 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
Spinner
category
;
String
username
;
ImageView
camera
;
// various item categries defined here
String
[]
items
=
new
String
[]{
"Others"
,
"Electronics"
,
"Documents"
,
"Clothes"
,
"Furniture"
,
"Accessories"
};
private
static
final
int
CAMERA_REQUEST
=
1888
;
private
ImageView
imageView
;
...
...
@@ -72,6 +75,10 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
FirebaseStorage
mStorageRef
=
FirebaseStorage
.
getInstance
();
DatePickerDialog
.
OnDateSetListener
dateSetListener
;
/**
* On create method for lost item activity
* @param savedInstanceState default param takes input the details of the object lost
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -114,7 +121,7 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
}
/**
*
*
Stores the data in firebase db
*/
private
void
SubmitLost
()
{
final
String
Title
=
title
.
getText
().
toString
().
trim
();
...
...
@@ -262,10 +269,10 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
}
/**
/**
Method to get extension of type of image uploaded
*
* @param uri
* @return
* @param uri
image url
* @return
extension name
*/
private
String
getExtension
(
Uri
uri
)
{
...
...
@@ -275,8 +282,9 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
}
/**
* On click for views and buttons of activity
*/
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
N
)
public
void
onClick
(
View
view
)
{
...
...
@@ -315,6 +323,13 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
break
;
}
}
/**
* Executed after image is selected
* @param requestCode default param
* @param resultCode default param
* @param data default param
*/
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
...
...
@@ -323,11 +338,6 @@ public class LostItem extends AppCompatActivity implements View.OnClickListener,
mImageUri
=
data
.
getData
();
try
{
//getting image from gallery
//Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), mImageUri);
//Setting image to ImageView
//camera.setImageBitmap(bitmap);
Picasso
.
with
(
LostItem
.
this
).
load
(
mImageUri
)
.
fit
()
.
centerCrop
()
...
...
app/src/main/java/com/example/instilostandfound/MainActivity.java
View file @
5643adf7
...
...
@@ -27,9 +27,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
// ...
// Initialize Firebase Auth
mAuth
=
FirebaseAuth
.
getInstance
();
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
...
...
app/src/main/java/com/example/instilostandfound/MyPosts.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.widget.AdapterView
;
import
android.widget.ArrayAdapter
;
import
android.widget.ListView
;
import
android.widget.Toast
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.google.firebase.database.DatabaseReference
;
import
com.google.firebase.database.FirebaseDatabase
;
import
com.google.firebase.database.Query
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
MyPosts
extends
AppCompatActivity
{
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
...
...
app/src/main/java/com/example/instilostandfound/MyPostsAdaptor.java
View file @
5643adf7
...
...
@@ -17,6 +17,9 @@ import com.squareup.picasso.Picasso;
import
java.util.List
;
/**
* Adaptor class for my posts
*/
public
class
MyPostsAdaptor
extends
RecyclerView
.
Adapter
<
MyPostsAdaptor
.
myViewHolder
>
{
private
Context
mcontext
;
private
List
<
CreateFoundObject
>
mUploads
;
...
...
@@ -27,6 +30,12 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
mUploads
=
uploads
;
}
/**
* Creates view holder for adapter class
* @param parent default parent
* @param viewType type
* @return
*/
@NonNull
@Override
public
MyPostsAdaptor
.
myViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
...
...
@@ -34,6 +43,11 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
return
new
myViewHolder
(
v
);
}
/**
* Sets the image uri onto the view
* @param holder image holder view layout
* @param position position of image
*/
@Override
public
void
onBindViewHolder
(
@NonNull
MyPostsAdaptor
.
myViewHolder
holder
,
int
position
)
{
CreateFoundObject
current_post
=
mUploads
.
get
(
position
);
...
...
@@ -44,11 +58,18 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
.
into
(
holder
.
imageView
);
}
/**
* Gets the count of total data /objects
* @return count value
*/
@Override
public
int
getItemCount
()
{
return
mUploads
.
size
();
}
/**
* Creates recycler view for viewing item image and the title
*/
public
class
myViewHolder
extends
RecyclerView
.
ViewHolder
implements
View
.
OnClickListener
,
View
.
OnCreateContextMenuListener
,
MenuItem
.
OnMenuItemClickListener
{
...
...
@@ -75,7 +96,12 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
}
/**
* Menu that comes up when user right clicks image
* @param menu menu item default
* @param v view default
* @param menuInfo menu default
*/
@Override
public
void
onCreateContextMenu
(
ContextMenu
menu
,
View
v
,
ContextMenu
.
ContextMenuInfo
menuInfo
)
{
menu
.
setHeaderTitle
(
"Select Action"
);
...
...
@@ -86,6 +112,11 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
delete
.
setOnMenuItemClickListener
(
this
);
}
/**
* Method executed when user long clicks item
* @param item
* @return
*/
@Override
public
boolean
onMenuItemClick
(
MenuItem
item
)
{
if
(
mListener
!=
null
)
{
...
...
@@ -106,14 +137,32 @@ public class MyPostsAdaptor extends RecyclerView.Adapter<MyPostsAdaptor.myViewHo
}
}
/**
* Implements item on click methods on the recycler view
*/
public
interface
OnItemClickListener
{
/**
* Executed when item is clicked once
* @param position position of item on the screen
*/
void
onItemClick
(
int
position
);
/**
* Executed when user clicks edit option
* @param position position of item on the screen
*/
void
oneditClick
(
int
position
);
/**
* Executed when user clicks delete option
* @param position position of item on the screen
*/
void
onDeleteClick
(
int
position
);
}
/**
* Declaration for on click listener
* @param listener listener
*/
public
void
setOnItemClickListener
(
OnItemClickListener
listener
)
{
mListener
=
listener
;
}
...
...
app/src/main/java/com/example/instilostandfound/MyPostsFoundRV.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.AdapterView
;
import
android.widget.Toast
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.firebase.database.ChildEventListener
;
import
com.google.firebase.database.DataSnapshot
;
import
com.google.firebase.database.DatabaseError
;
import
com.google.firebase.database.DatabaseReference
;
...
...
@@ -27,6 +24,9 @@ import java.io.Serializable;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Activity that displays all found items for the current user
*/
public
class
MyPostsFoundRV
extends
AppCompatActivity
implements
MyPostsAdaptor
.
OnItemClickListener
,
Serializable
{
private
RecyclerView
mrecyclerView
;
private
MyPostsAdaptor
mAdaptor
;
...
...
@@ -37,7 +37,10 @@ public class MyPostsFoundRV extends AppCompatActivity implements MyPostsAdaptor.
private
String
username
=
null
;
/**
* Populates the view based on filter values via shared preferences
* @param savedInstanceState Current state
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -79,6 +82,11 @@ public class MyPostsFoundRV extends AppCompatActivity implements MyPostsAdaptor.
}
});
}
/**
* Method to open the item details activity
* @param position Position of the item on the screen
*/
@Override
public
void
onItemClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -91,6 +99,10 @@ public class MyPostsFoundRV extends AppCompatActivity implements MyPostsAdaptor.
startActivity
(
intent
);
}
/**
* Method to open item edit activity
* @param position Position of the item on the screen
*/
@Override
public
void
oneditClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -102,7 +114,10 @@ public class MyPostsFoundRV extends AppCompatActivity implements MyPostsAdaptor.
intent
.
putExtra
(
"username"
,
username
);
startActivity
(
intent
);
}
/**
* Method to delete item
* @param position Position of the item on the screen
*/
@Override
public
void
onDeleteClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
app/src/main/java/com/example/instilostandfound/MyPostsLostRV.java
View file @
5643adf7
...
...
@@ -26,6 +26,9 @@ import com.google.firebase.storage.StorageReference;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Activity that displays all lost items for the current user
*/
public
class
MyPostsLostRV
extends
AppCompatActivity
implements
MyPostsAdaptor
.
OnItemClickListener
,
Serializable
{
private
RecyclerView
mrecyclerView
;
...
...
@@ -37,7 +40,10 @@ public class MyPostsLostRV extends AppCompatActivity implements MyPostsAdaptor.O
private
String
username
=
null
;
/**
* Populates the view based on filter values via shared preferences
* @param savedInstanceState Current state
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -79,6 +85,10 @@ public class MyPostsLostRV extends AppCompatActivity implements MyPostsAdaptor.O
}
});
}
/**
* Method to open the item details activity
* @param position Position of the item on the screen
*/
@Override
public
void
onItemClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -90,7 +100,10 @@ public class MyPostsLostRV extends AppCompatActivity implements MyPostsAdaptor.O
intent
.
putExtra
(
"username"
,
username
);
startActivity
(
intent
);
}
/**
* Method to open item edit activity
* @param position Position of the item on the screen
*/
@Override
public
void
oneditClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -102,7 +115,10 @@ public class MyPostsLostRV extends AppCompatActivity implements MyPostsAdaptor.O
intent
.
putExtra
(
"username"
,
username
);
startActivity
(
intent
);
}
/**
* Method to delete item
* @param position Position of the item on the screen
*/
@Override
public
void
onDeleteClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
app/src/main/java/com/example/instilostandfound/Navigation.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.ActionBarDrawerToggle
;
import
androidx.appcompat.app.AppCompatActivity
;
...
...
@@ -7,19 +13,19 @@ import androidx.appcompat.widget.Toolbar;
import
androidx.core.view.GravityCompat
;
import
androidx.drawerlayout.widget.DrawerLayout
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.google.android.material.navigation.NavigationView
;
/**
* Home activity to navigate news feed and other activity screens
*/
public
class
Navigation
extends
AppCompatActivity
implements
NavigationView
.
OnNavigationItemSelectedListener
,
View
.
OnClickListener
{
private
String
username
=
null
;
private
DrawerLayout
drawerLayout
;
/**
* Method for implementing drawer layout for navigation
* @param savedInstanceState current instance
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -46,11 +52,11 @@ public class Navigation extends AppCompatActivity implements NavigationView.OnNa
drawerLayout
.
addDrawerListener
(
navigation_toggle
);
navigation_toggle
.
syncState
();
/* if(savedInstanceState==null){
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MainActivity()).commit();
}*/
}
/**
* Close and open navigation drawer on back pressed
*/
@Override
public
void
onBackPressed
()
{
if
(
drawerLayout
.
isDrawerOpen
(
GravityCompat
.
START
))
{
...
...
@@ -59,6 +65,11 @@ public class Navigation extends AppCompatActivity implements NavigationView.OnNa
super
.
onBackPressed
();
}
/**
* Method to migrate to other activities based on selection of menu
* @param menuItem the list of menu items on navigation drawer
* @return
*/
@Override
public
boolean
onNavigationItemSelected
(
@NonNull
MenuItem
menuItem
)
{
switch
((
menuItem
.
getItemId
()))
{
...
...
@@ -93,7 +104,10 @@ public class Navigation extends AppCompatActivity implements NavigationView.OnNa
}
/**
* On click methods for news feed for lost and found items
* @param v view layout
*/
@Override
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
()){
...
...
app/src/main/java/com/example/instilostandfound/NetworkConnection.java
View file @
5643adf7
...
...
@@ -8,19 +8,31 @@ import android.net.ConnectivityManager;
import
android.net.NetworkInfo
;
import
android.provider.Settings
;
/**
* Class that contains various methods for network connection checking and displays messages accordingly
*/
public
class
NetworkConnection
{
public
static
final
String
ERR_DIALOG_TITLE
=
"No internet connection detected !"
;
private
static
final
String
ERR_DIALOG_MSG
=
"Please check your device's network settings."
;
private
static
final
String
ERR_DIALOG_POSITIVE_BTN
=
"Settings"
;
private
static
final
String
ERR_DIALOG_NEGATIVE_BTN
=
"Dismiss"
;
/**
* Check whether device is connected to internet
* @param context the class object
* @return true or false value
*/
public
static
boolean
isConnectedToInternet
(
Context
context
)
{
ConnectivityManager
connectivityManager
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
NetworkInfo
networkInfo
=
connectivityManager
.
getActiveNetworkInfo
();
return
networkInfo
!=
null
&&
networkInfo
.
isConnectedOrConnecting
();
}
/**
* Check whether devide is connected to wifi
* @param context the class object
* @return true or false value
*/
public
static
boolean
isConnectedToWifi
(
Context
context
)
{
ConnectivityManager
connectivityManager
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
NetworkInfo
networkInfo
=
connectivityManager
.
getActiveNetworkInfo
();
...
...
@@ -29,7 +41,11 @@ public class NetworkConnection {
networkInfo
.
getType
()
==
ConnectivityManager
.
TYPE_WIFI
;
}
/**
* Check whether device is connected to internet via mobile network
* @param context the class object
* @return true or false value
*/
public
static
boolean
isConnectedToMobileNetwork
(
Context
context
)
{
ConnectivityManager
connectivityManager
=
(
ConnectivityManager
)
context
.
getSystemService
(
Context
.
CONNECTIVITY_SERVICE
);
NetworkInfo
networkInfo
=
connectivityManager
.
getActiveNetworkInfo
();
...
...
@@ -38,6 +54,10 @@ public class NetworkConnection {
networkInfo
.
getType
()
==
ConnectivityManager
.
TYPE_MOBILE
;
}
/**
* Method that displays dialog in case no internet is available
* @param context class object
*/
public
static
void
showNoInternetAvailableErrorDialog
(
final
Context
context
)
{
new
AlertDialog
.
Builder
(
context
)
.
setTitle
(
ERR_DIALOG_TITLE
)
...
...
app/src/main/java/com/example/instilostandfound/NewsFeedFound.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.ActionBar
;
import
androidx.appcompat.app.AlertDialog
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.core.view.MenuItemCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
...
...
@@ -18,20 +10,28 @@ import android.view.MenuItem;
import
android.widget.SearchView
;
import
android.widget.Toast
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.ActionBar
;
import
androidx.appcompat.app.AlertDialog
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.core.view.MenuItemCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
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.Query
;
import
com.google.firebase.database.ValueEventListener
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.StorageReference
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Activity displaying the news feed of found items
*/
public
class
NewsFeedFound
extends
AppCompatActivity
implements
NewsfeedAdaptor
.
OnItemClickListener
,
Serializable
{
private
RecyclerView
mrecyclerView
;
private
NewsfeedAdaptor
mAdaptor
;
...
...
@@ -41,7 +41,10 @@ public class NewsFeedFound extends AppCompatActivity implements NewsfeedAdaptor.
private
FirebaseStorage
mStorage
;
private
List
<
CreateFoundObject
>
mPosts
;
private
String
username
=
null
;
/**
* Displays the found items based on applied category filter
* @param savedInstanceState
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -87,12 +90,15 @@ public class NewsFeedFound extends AppCompatActivity implements NewsfeedAdaptor.
}
});
mLayoutManager
=
new
LinearLayoutManager
(
this
);
//this will load the items from bottom means newest first
mLayoutManager
.
setReverseLayout
(
true
);
mLayoutManager
.
setStackFromEnd
(
true
);
}
/**
* Displays the details of the item and the claim button
* @param position position of the item on the screen
*/
@Override
public
void
onItemClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -106,7 +112,11 @@ public class NewsFeedFound extends AppCompatActivity implements NewsfeedAdaptor.
}
/**
* Create filter and search options for the user
* @param menu menu items
* @return
*/
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
//inflate the menu; this adds items to the action bar if it present
...
...
@@ -143,7 +153,9 @@ public class NewsFeedFound extends AppCompatActivity implements NewsfeedAdaptor.
return
super
.
onOptionsItemSelected
(
item
);
}
/**
* Displays the categories via which user can sort items
*/
private
void
showSortDialog
()
{
//options to display in dialog
final
String
[]
sortOptions
=
{
"Others"
,
"Electronics"
,
"Documents"
,
"Clothes"
,
"Furniture"
,
"Accessories"
};
...
...
@@ -178,8 +190,6 @@ public class NewsFeedFound extends AppCompatActivity implements NewsfeedAdaptor.
builder
.
show
();
}
}
app/src/main/java/com/example/instilostandfound/NewsFeedLost.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.ActionBar
;
import
androidx.appcompat.app.AlertDialog
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.core.view.MenuItemCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
...
...
@@ -18,20 +10,28 @@ import android.view.MenuItem;
import
android.widget.SearchView
;
import
android.widget.Toast
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.ActionBar
;
import
androidx.appcompat.app.AlertDialog
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.core.view.MenuItemCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
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.Query
;
import
com.google.firebase.database.ValueEventListener
;
import
com.google.firebase.storage.FirebaseStorage
;
import
com.google.firebase.storage.StorageReference
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Activity displaying the news feed of lost items
*/
public
class
NewsFeedLost
extends
AppCompatActivity
implements
NewsfeedAdaptor
.
OnItemClickListener
,
Serializable
{
private
RecyclerView
mrecyclerView
;
private
NewsfeedAdaptor
mAdaptor
;
...
...
@@ -42,6 +42,10 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
private
List
<
CreateFoundObject
>
mPosts
;
private
String
username
=
null
;
/**
* Displays the lost items based on applied category filter
* @param savedInstanceState
*/
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -56,14 +60,11 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
mDatabaseRef
=
FirebaseDatabase
.
getInstance
().
getReference
(
"LostData"
);
mStorage
=
FirebaseStorage
.
getInstance
();
//Query usernamequery = mDatabaseRef.orderByChild("ldap").equalTo((username+"@iitb.ac.in").toLowerCase());
//Log.v("query",usernamequery.toString());
ActionBar
actionBar
=
getSupportActionBar
();
//set title
mSharedPref
=
getSharedPreferences
(
"SortSettings"
,
MODE_PRIVATE
);
String
mSorting
=
mSharedPref
.
getString
(
"Sort"
,
"Others"
);
//where if no settingsis selected newest will be default
//if (mSorting.equals("newest")) {
mDatabaseRef
.
orderByChild
(
"mCategory"
).
equalTo
(
mSorting
).
addValueEventListener
(
new
ValueEventListener
()
{
@Override
public
void
onDataChange
(
@NonNull
DataSnapshot
dataSnapshot
)
{
...
...
@@ -93,6 +94,11 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
mLayoutManager
.
setStackFromEnd
(
true
);
}
/**
* Displays the details of the item and the claim button
* @param position position of the item on the screen
*/
@Override
public
void
onItemClick
(
int
position
)
{
Log
.
v
(
"position ="
,
String
.
valueOf
(
position
));
...
...
@@ -105,6 +111,11 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
startActivity
(
intent
);
}
/**
* Create filter and search options for the user
* @param menu menu items
* @return
*/
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
//inflate the menu; this adds items to the action bar if it present
...
...
@@ -142,6 +153,9 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
return
super
.
onOptionsItemSelected
(
item
);
}
/**
* Displays the categories via which user can sort items
*/
private
void
showSortDialog
()
{
//options to display in dialog
final
String
[]
sortOptions
=
{
"Others"
,
"Electronics"
,
"Documents"
,
"Clothes"
,
"Furniture"
,
"Accessories"
};
...
...
@@ -177,7 +191,6 @@ public class NewsFeedLost extends AppCompatActivity implements NewsfeedAdaptor.O
}
}
app/src/main/java/com/example/instilostandfound/NewsfeedAdaptor.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
android.content.Context
;
import
android.view.ContextMenu
;
import
android.view.LayoutInflater
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
...
...
@@ -17,6 +14,9 @@ import com.squareup.picasso.Picasso;
import
java.util.List
;
/**
* Adapter class for news feed
*/
public
class
NewsfeedAdaptor
extends
RecyclerView
.
Adapter
<
NewsfeedAdaptor
.
myViewHolder
>
{
private
Context
mcontext
;
private
List
<
CreateFoundObject
>
mUploads
;
...
...
@@ -26,14 +26,23 @@ public class NewsfeedAdaptor extends RecyclerView.Adapter<NewsfeedAdaptor.myView
mcontext
=
context
;
mUploads
=
uploads
;
}
/**
* Creates view holder for adapter class
* @param parent default parent
* @param viewType type
* @return
*/
@NonNull
@Override
public
NewsfeedAdaptor
.
myViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
v
=
LayoutInflater
.
from
(
mcontext
).
inflate
(
R
.
layout
.
list_item
,
parent
,
false
);
return
new
myViewHolder
(
v
);
}
/**
* Sets the image uri onto the view
* @param holder image holder view layout
* @param position position of image
*/
@Override
public
void
onBindViewHolder
(
@NonNull
NewsfeedAdaptor
.
myViewHolder
holder
,
int
position
)
{
CreateFoundObject
current_post
=
mUploads
.
get
(
position
);
...
...
@@ -43,12 +52,17 @@ public class NewsfeedAdaptor extends RecyclerView.Adapter<NewsfeedAdaptor.myView
.
centerCrop
()
.
into
(
holder
.
imageView
);
}
/**
* Gets the count of total data /objects
* @return count value
*/
@Override
public
int
getItemCount
()
{
return
mUploads
.
size
();
}
/**
* Creates recycler view for viewing item image and the title
*/
public
class
myViewHolder
extends
RecyclerView
.
ViewHolder
implements
View
.
OnClickListener
{
public
TextView
textViewname
;
...
...
@@ -75,10 +89,25 @@ public class NewsfeedAdaptor extends RecyclerView.Adapter<NewsfeedAdaptor.myView
}
/**
* Implements item on click methods on the recycler view
*/
public
interface
OnItemClickListener
{
/**
* Executed when item is clicked once
* @param position position of item on the screen
*/
void
onItemClick
(
int
position
);
}
/**
* Executed when user clicks edit option
* @param position position of item on the screen
*/
}
/**
* Declaration for on click listener
* @param listener listener
*/
public
void
setOnItemClickListener
(
OnItemClickListener
listener
)
{
mListener
=
listener
;
}
...
...
app/src/main/java/com/example/instilostandfound/RedirectMyPosts.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.View
;
import
androidx.appcompat.app.AppCompatActivity
;
/**
* Activity that redireccts user's posts to lost or found item activity
*/
public
class
RedirectMyPosts
extends
AppCompatActivity
implements
View
.
OnClickListener
{
String
username
;
@Override
...
...
@@ -19,6 +22,10 @@ public class RedirectMyPosts extends AppCompatActivity implements View.OnClickLi
findViewById
(
R
.
id
.
found_button
).
setOnClickListener
(
this
);
}
/**
* Redirection to appropriate activities based on button click
* @param v lost/found buttons
*/
@Override
public
void
onClick
(
View
v
)
{
switch
(
v
.
getId
()){
...
...
app/src/main/java/com/example/instilostandfound/SendMail.java
View file @
5643adf7
...
...
@@ -16,6 +16,9 @@ import javax.mail.Transport;
import
javax.mail.internet.InternetAddress
;
import
javax.mail.internet.MimeMessage
;
/**
* Class to build the email framework parameters
*/
public
class
SendMail
extends
AsyncTask
<
Void
,
Void
,
Void
>
{
private
Context
context
;
...
...
@@ -25,6 +28,13 @@ public class SendMail extends AsyncTask<Void, Void, Void> {
private
String
message
;
private
ProgressDialog
progressDialog
;
/**
* Constructor to initialise members
* @param context calling class
* @param email email of the reciever
* @param subject subject of the email
* @param message Content of the email
*/
public
SendMail
(
Context
context
,
String
email
,
String
subject
,
String
message
)
{
this
.
context
=
context
;
...
...
@@ -33,6 +43,9 @@ public class SendMail extends AsyncTask<Void, Void, Void> {
this
.
message
=
message
;
}
/**
* Shows progress bar before sending the mail
*/
@Override
protected
void
onPreExecute
()
{
super
.
onPreExecute
();
...
...
@@ -40,6 +53,10 @@ public class SendMail extends AsyncTask<Void, Void, Void> {
progressDialog
=
ProgressDialog
.
show
(
context
,
"Sending message"
,
"Please wait..."
,
false
,
false
);
}
/**
* Notifies user after email is sent
* @param aVoid
*/
@Override
protected
void
onPostExecute
(
Void
aVoid
)
{
super
.
onPostExecute
(
aVoid
);
...
...
@@ -52,6 +69,11 @@ public class SendMail extends AsyncTask<Void, Void, Void> {
context
.
startActivity
(
intent
);
}
/**
* Background process for setting up email parameters (gmail used here)
* @param params list of parameters
* @return null parameter
*/
@Override
protected
Void
doInBackground
(
Void
...
params
)
{
Properties
props
=
new
Properties
();
...
...
app/src/main/java/com/example/instilostandfound/emailFragment.java
View file @
5643adf7
package
com.example.instilostandfound
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentActivity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
...
...
@@ -19,8 +10,14 @@ import android.widget.Button;
import
android.widget.EditText
;
import
android.widget.Toast
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
/**
* Fragment class to send message to user
*/
public
class
emailFragment
extends
Fragment
implements
View
.
OnClickListener
{
private
EditText
editTextMessage
;
private
Button
buttonSend
;
...
...
@@ -29,6 +26,14 @@ public class emailFragment extends Fragment implements View.OnClickListener {
private
String
recieverid
;
private
String
itemname
;
CreateFoundObject
objectfound
;
/**
* On create method when fragement is generated
* @param inflater default param
* @param container default param
* @param savedInstanceState default param
* @return
*/
@Nullable
@Override
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
...
...
@@ -42,23 +47,28 @@ public class emailFragment extends Fragment implements View.OnClickListener {
senderid
=
bundle
.
getString
(
"username"
);
recieverid
=
bundle
.
getString
(
"recievername"
);
itemname
=
bundle
.
getString
(
"itemname"
);
// bName = bundle.getString("bName");
// pName = bundle.getString("pName");
}
return
v
;
}
/**
* Method to send email with corresponding message
*/
private
void
sendEmail
()
{
String
email
=
recieverid
;
String
subject
=
"Regarding posted item in Lost and Found App "
+
itemname
;
String
autoMsg
=
"\n\nThis is an auto generated email. Please do not reply to this email."
;
String
message
=
editTextMessage
.
getText
().
toString
().
trim
()
+
"\n\nsent by ldap user : "
+
username
+
"@iitb.ac.in"
+
autoMsg
;
String
message
=
editTextMessage
.
getText
().
toString
().
trim
()
+
"\n\nsent by ldap user : "
+
username
+
autoMsg
;
SendMail
sm
=
new
SendMail
(
getActivity
(),
email
,
subject
,
message
);
sm
.
execute
();
}
/**
* On click method for sending the message button
* @param v Claim button
*/
@Override
public
void
onClick
(
View
v
)
{
if
(
editTextMessage
.
getText
().
toString
().
length
()
<
1
){
...
...
@@ -88,7 +98,9 @@ public class emailFragment extends Fragment implements View.OnClickListener {
// dialog.dismiss();
}
});
/**
* Alert dialog to confirm if user wants to send email or not
*/
AlertDialog
ad
=
builder
.
create
();
ad
.
show
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment