Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
parkingo
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
SHAILESH KUMAR
parkingo
Commits
5b54ae00
Commit
5b54ae00
authored
Nov 26, 2019
by
Bhavesh Yadav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Slots now are fetched from firebase
parent
fd09b9c5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
148 additions
and
47 deletions
+148
-47
app/src/main/java/com/example/infiniteLoop/parkingo/category_wise_availability.java
...ple/infiniteLoop/parkingo/category_wise_availability.java
+27
-28
app/src/main/java/com/example/infiniteLoop/parkingo/login_activity.java
...ava/com/example/infiniteLoop/parkingo/login_activity.java
+5
-1
app/src/main/java/com/example/infiniteLoop/parkingo/sqlite_ops.java
...in/java/com/example/infiniteLoop/parkingo/sqlite_ops.java
+116
-18
No files found.
app/src/main/java/com/example/infiniteLoop/parkingo/category_wise_availability.java
View file @
5b54ae00
package
com.example.infiniteLoop.parkingo
;
import
android.app.Activity
;
import
android.app.ProgressDialog
;
import
android.content.Intent
;
import
android.os.Bundle
;
...
...
@@ -20,6 +21,7 @@ public class category_wise_availability extends Activity {
String
result
;
ListView
lv
;
ArrayList
slots
;
ProgressDialog
progress
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
...
...
@@ -32,35 +34,35 @@ public class category_wise_availability extends Activity {
if
(
v
.
getId
()==
R
.
id
.
car
){
if
(
checked
){
sqlite_ops
so
=
new
sqlite_ops
(
this
);
slots
=
so
.
getFreeSlots
(
"car"
);
if
(
slots
.
size
()>
0
){
ArrayAdapter
aa
=
new
ArrayAdapter
(
this
,
R
.
layout
.
spinner_layout
,
slots
);
lv
.
setAdapter
(
aa
);
}
else
{
ArrayAdapter
aa
=
new
ArrayAdapter
(
this
,
R
.
layout
.
spinner_layout
,
new
String
[]{
"No free slots"
});
lv
.
setAdapter
(
aa
);
}
lv
.
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
AdapterView
<?>
adapterView
,
View
view
,
int
i
,
long
l
)
{
if
(
slots
.
size
()>
0
){
result
=
slots
.
get
(
i
).
toString
();
sendResult
();
}
}
});
slots
=
so
.
getFreeSlots
(
this
,
"car"
);
progress
=
new
ProgressDialog
(
category_wise_availability
.
this
);
progress
.
setTitle
(
"Loading"
);
progress
.
setMessage
(
"Wait while loading..."
);
progress
.
setCancelable
(
false
);
// disable dismiss by tapping outside of the dialog
progress
.
show
();
}
}
else
if
(
v
.
getId
()==
R
.
id
.
bike
){
if
(
checked
){
sqlite_ops
so
=
new
sqlite_ops
(
this
);
slots
=
so
.
getFreeSlots
(
"bike"
);
if
(
slots
.
size
()>
0
){
slots
=
so
.
getFreeSlots
(
this
,
"bike"
);
progress
=
new
ProgressDialog
(
category_wise_availability
.
this
);
progress
.
setTitle
(
"Loading"
);
progress
.
setMessage
(
"Wait while loading..."
);
progress
.
setCancelable
(
false
);
// disable dismiss by tapping outside of the dialog
progress
.
show
();
}
}
}
public
void
returnSlots
(
final
ArrayList
slots
){
progress
.
dismiss
();
if
(
slots
.
size
()>
0
){
ArrayAdapter
aa
=
new
ArrayAdapter
(
this
,
R
.
layout
.
spinner_layout
,
slots
);
lv
.
setAdapter
(
aa
);
}
else
{
ArrayAdapter
aa
=
new
ArrayAdapter
(
this
,
R
.
layout
.
spinner_layout
,
new
String
[]{
"No free slots"
});
...
...
@@ -69,17 +71,14 @@ public class category_wise_availability extends Activity {
lv
.
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
AdapterView
<?>
adapterView
,
View
view
,
int
i
,
long
l
)
{
if
(
slots
.
size
()>
0
)
{
result
=
slots
.
get
(
i
).
toString
();
sendResult
();
if
(
slots
.
size
()>
0
){
result
=
slots
.
get
(
i
).
toString
();
sendResult
();
}
}
});
}
}
}
public
void
sendResult
(){
Intent
returnResult
=
getIntent
();
returnResult
.
putExtra
(
"result"
,
result
);
...
...
app/src/main/java/com/example/infiniteLoop/parkingo/login_activity.java
View file @
5b54ae00
...
...
@@ -35,6 +35,8 @@ public class login_activity extends Activity {
TextView
logmsg
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
final
sqlite_ops
so
=
new
sqlite_ops
(
login_activity
.
this
);
so
.
initFirebase
();
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
login_layout
);
username
=
findViewById
(
R
.
id
.
username
);
...
...
@@ -92,8 +94,9 @@ public class login_activity extends Activity {
}
else
{
sqlite_ops
so
=
new
sqlite_ops
(
login_activity
.
this
);
sqlite_ops
so
=
new
sqlite_ops
(
login_activity
.
this
);
//so.insert_login_details();
login
li
=
new
login
();
li
.
setPass
(
uname
);
li
.
setUname
(
pass
);
...
...
@@ -129,6 +132,7 @@ public class login_activity extends Activity {
}
});
}
public
void
loginSuccess
()
{
...
...
app/src/main/java/com/example/infiniteLoop/parkingo/sqlite_ops.java
View file @
5b54ae00
...
...
@@ -9,6 +9,8 @@ import android.util.Log;
import
androidx.annotation.NonNull
;
import
com.google.android.gms.tasks.OnCompleteListener
;
import
com.google.android.gms.tasks.OnFailureListener
;
import
com.google.android.gms.tasks.OnSuccessListener
;
import
com.google.android.gms.tasks.Task
;
import
com.google.firebase.firestore.DocumentReference
;
import
com.google.firebase.firestore.DocumentSnapshot
;
...
...
@@ -18,18 +20,23 @@ import com.google.firebase.firestore.QueryDocumentSnapshot;
import
com.google.firebase.firestore.QuerySnapshot
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
android
.
content
.
ContentValues
.
TAG
;
public
class
sqlite_ops
extends
SQLiteOpenHelper
{
FirebaseFirestore
fdb
;
public
static
final
int
DATABASE_VERSION
=
1
;
public
static
final
String
DATABASE_NAME
=
"parkingo.db"
;
public
sqlite_ops
(
Context
context
)
{
super
(
context
,
DATABASE_NAME
,
null
,
DATABASE_VERSION
);
}
public
void
onCreate
(
SQLiteDatabase
db
){
// initFirebase();
Log
.
d
(
"Firebase"
,
"INside Oncreate sql"
);
db
.
execSQL
(
"create table admin(username varchar unique,password varchar)"
);
db
.
execSQL
(
"create table slots(id integer primary key autoincrement ,slot varchar unique,status int,category text)"
);
db
.
execSQL
(
"create table records(tkt_no integer primary key autoincrement,name varchar,mobile int,slot varchar,vehicle varchar,check_in timestamp,check_out timestamp,isempty int)"
);
...
...
@@ -43,14 +50,63 @@ public class sqlite_ops extends SQLiteOpenHelper{
slot
+=
"0"
;
slot
+=
j
;
if
(
i
<
2
)
//slotObj.put("category","BIKE");
db
.
execSQL
(
"insert into slots values(null,'"
+
slot
+
"',0,'BIKE')"
);
else
//slotObj.put("category","CAR");
db
.
execSQL
(
"insert into slots values(null,'"
+
slot
+
"',0,'CAR')"
);
//slotObj.put("slot",slot);
}
}
}
public
void
initFirebase
()
{
//AddSlotsToFirebase();
fdb
=
FirebaseFirestore
.
getInstance
();
}
public
void
AddSlotsToFirebase
()
{
Log
.
d
(
"Firebase"
,
"Adding slots"
);
Map
<
String
,
Object
>
slotObj
=
new
HashMap
<>();
slotObj
.
put
(
"status"
,
0
);
//city.put("state", "CA");
//city.put("country", "USA");
for
(
int
i
=
0
;
i
<
5
;
i
++){
for
(
int
j
=
0
;
j
<
15
;
j
++){
char
s
=(
char
)(
i
+
65
);
String
slot
=
Character
.
toString
(
s
);
if
(
j
<
10
)
slot
+=
"0"
;
slot
+=
j
;
if
(
i
<
2
)
slotObj
.
put
(
"category"
,
"BIKE"
);
//db.execSQL("insert into slots values(null,'"+slot+"',0,'BIKE')");
else
slotObj
.
put
(
"category"
,
"CAR"
);
//db.execSQL("insert into slots values(null,'"+slot+"',0,'CAR')");
slotObj
.
put
(
"slot"
,
slot
);
fdb
.
collection
(
"slots"
)
.
add
(
slotObj
)
.
addOnSuccessListener
(
new
OnSuccessListener
<
DocumentReference
>()
{
@Override
public
void
onSuccess
(
DocumentReference
docref
)
{
Log
.
d
(
TAG
,
"DocumentSnapshot successfully written!"
);
}
})
.
addOnFailureListener
(
new
OnFailureListener
()
{
@Override
public
void
onFailure
(
@NonNull
Exception
e
)
{
Log
.
w
(
TAG
,
"Error writing document"
,
e
);
}
});
}
}
}
@Override
public
void
onUpgrade
(
SQLiteDatabase
sqLiteDatabase
,
int
i
,
int
i1
)
{
...
...
@@ -64,7 +120,8 @@ public class sqlite_ops extends SQLiteOpenHelper{
public
boolean
fetch_login_details
(
login
li
,
final
login_activity
la
){
/* SQLiteDatabase db= this.getReadableDatabase();
// SQLiteDatabase db= this.getReadableDatabase();
/*
//Log.d(TAG, "fetch_login_details: "+li.getUname()+" "+li.getPass());
Cursor cursor = db.query("admin",new String[]{"username","password"},"username"+ "=?",
new String[]{li.getUname()}, null, null, null, null);
...
...
@@ -103,15 +160,21 @@ public class sqlite_ops extends SQLiteOpenHelper{
public
void
onComplete
(
@NonNull
Task
<
QuerySnapshot
>
task
)
{
if
(
task
.
isSuccessful
())
{
QuerySnapshot
documentSnapshot
=
task
.
getResult
();
// Log.d("Firebase",documentSnapshot.);
for
(
QueryDocumentSnapshot
document
:
task
.
getResult
())
{
Log
.
d
(
TAG
,
document
.
getId
()
+
" => "
+
document
.
getData
());
}
if
(
documentSnapshot
.
isEmpty
())
{
la
.
loginFailure
();
for
(
QueryDocumentSnapshot
document
:
task
.
getResult
())
{
Log
.
d
(
TAG
,
document
.
getId
()
+
" => "
+
document
.
getData
());
}
Log
.
d
(
"Login"
,
"Failure"
);
}
else
{
la
.
loginSuccess
();
Log
.
d
(
"Login"
,
"Success"
);
}
}
else
la
.
loginFailure
();
Log
.
d
(
"Login"
,
"Failure"
);
}
...
...
@@ -130,24 +193,59 @@ public class sqlite_ops extends SQLiteOpenHelper{
return
true
;
}
public
ArrayList
getFreeSlots
(
String
category
){
public
ArrayList
getFreeSlots
(
final
category_wise_availability
cd
,
String
category
){
String
[]
cat
=
new
String
[]{
category
.
toUpperCase
(),
"0"
};
ArrayList
slots
=
new
ArrayList
();
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
Cursor
cursor
=
db
.
query
(
"slots"
,
new
String
[]{
"slot"
},
"category=? and status=?"
,
cat
,
null
,
null
,
null
,
null
);
if
(
cursor
!=
null
){
cursor
.
moveToFirst
();
if
(
cursor
.
getCount
()!=
0
){
do
{
String
data
=
cursor
.
getString
(
cursor
.
getColumnIndex
(
"slot"
));
slots
.
add
(
data
);
// do what ever you want here
}
while
(
cursor
.
moveToNext
());
}
final
ArrayList
slots
=
new
ArrayList
();
// SQLiteDatabase db= this.getWritableDatabase();
// Cursor cursor = db.query("slots",new String[]{"slot"},"category=? and status=?",
// cat, null, null, null, null);
// if(cursor!=null){
// cursor.moveToFirst();
// if(cursor.getCount()!=0){
// do{
// String data = cursor.getString(cursor.getColumnIndex("slot"));
// slots.add(data);
// // do what ever you want here
// }while(cursor.moveToNext());
// }
// }
// db.close();
Log
.
d
(
"Slots"
,
slots
.
toString
());
fdb
=
FirebaseFirestore
.
getInstance
();
Query
query
=
fdb
.
collection
(
"slots"
).
whereEqualTo
(
"category"
,
cat
[
0
])
.
whereEqualTo
(
"status"
,
0
);
if
(
query
!=
null
)
query
.
get
().
addOnCompleteListener
(
new
OnCompleteListener
<
QuerySnapshot
>()
{
@Override
public
void
onComplete
(
@NonNull
Task
<
QuerySnapshot
>
task
)
{
if
(
task
.
isSuccessful
())
{
QuerySnapshot
documentSnapshot
=
task
.
getResult
();
// Log.d("Firebase",documentSnapshot.);
for
(
QueryDocumentSnapshot
document
:
task
.
getResult
())
{
Log
.
d
(
TAG
,
document
.
getId
()
+
" => "
+
document
.
getData
());
slots
.
add
(
document
.
getData
().
get
(
"slot"
));
}
if
(
documentSnapshot
.
isEmpty
())
{
// la.loginFailure();
for
(
QueryDocumentSnapshot
document
:
task
.
getResult
())
{
Log
.
d
(
TAG
,
document
.
getId
()
+
" => "
+
document
.
getData
());
}
Log
.
d
(
"Login"
,
"Failure"
);
}
else
{
// la.loginSuccess();
Collections
.
sort
(
slots
);
cd
.
returnSlots
(
slots
);
Log
.
d
(
"Login"
,
"Success"
);
}
}
else
Log
.
d
(
"Login"
,
"Failure"
);
}
}
db
.
close
(
);
});
Log
.
d
(
"Slots"
,
slots
.
toString
()
);
return
slots
;
}
public
ArrayList
getAllSlots
(
String
category
){
...
...
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