Skip to content

Commit

Permalink
Successfully displaying received data on Firebase. Successfully showi…
Browse files Browse the repository at this point in the history
…ng recent data from Firebase. Parking screen shows new data after backing out and returning. Fixed bug where app would crash on swipe to refresh. Found new bug with showing time since last update. Data displayed in table not in order by time made.
  • Loading branch information
rkalz committed Feb 25, 2017
1 parent 8c1e96d commit 34cf406
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 53 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ android {
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "net.rofael.uabparkingfinder"
minSdkVersion 19
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
Expand Down
7 changes: 0 additions & 7 deletions app/src/main/java/net/rofael/uabparkingfinder/MainMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,6 @@ protected void onCreate(Bundle savedInstanceState) {
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

mFireBaseAuth = FirebaseAuth.getInstance();
mFireBaseAuth.signInAnonymously();
mFireBaseUser = mFireBaseAuth.getCurrentUser();

lots.add(testLot1);
lots.add(testLot2);
lots.add(testLot3);
Expand Down Expand Up @@ -107,9 +103,6 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
private Parking testLot2 = new Parking("testLot2");
private Parking testLot3 = new Parking("testLot3");
private Parking testLot4 = new Parking("testLot4");
private FirebaseAuth mFireBaseAuth;
private FirebaseUser mFireBaseUser;



/**
Expand Down
128 changes: 83 additions & 45 deletions app/src/main/java/net/rofael/uabparkingfinder/ParkingActivity.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
package net.rofael.uabparkingfinder;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;


import android.content.Context;
import android.content.SharedPreferences;
Expand All @@ -32,6 +26,7 @@
import com.google.firebase.database.*;

import java.lang.reflect.Array;
import java.util.Map;

public class ParkingActivity extends AppCompatActivity implements OnItemSelectedListener {

Expand Down Expand Up @@ -79,6 +74,31 @@ protected void onCreate(Bundle savedInstanceState) {
String commitName;

mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child(lot.toString()).limitToLast(10).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot reportSnapshot: dataSnapshot.getChildren())
{
long reportTime = (long) reportSnapshot.child("reportTime").getValue();
long reportStatus = (long) reportSnapshot.child("status").getValue();
int reportStat = Integer.parseInt(Long.toString(reportStatus));
Report rep = new Report(lot,reportStat,reportTime);
if (!reports.contains(rep))
{
reports.add(rep);
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
stringListAdapter.notifyDataSetChanged();
}
}

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

Button confirmClick = (Button) findViewById(R.id.send_staus);
confirmClick.setOnClickListener(new View.OnClickListener() {
Expand All @@ -90,6 +110,32 @@ public void onClick(View v)
reportData.set(i, reports.get((i/2)-1).readableLastReportTime());
}
adapter2.notifyDataSetChanged();

mDatabase.child(lot.toString()).limitToLast(10).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot reportSnapshot: dataSnapshot.getChildren())
{
long reportTime = (long) reportSnapshot.child("reportTime").getValue();
long reportStatus = (long) reportSnapshot.child("status").getValue();
int reportStat = Integer.parseInt(Long.toString(reportStatus));
Report rep = new Report(lot,reportStat,reportTime);
if (!reports.contains(rep))
{
reports.add(rep);
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
stringListAdapter.notifyDataSetChanged();
}
}

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}
});

Expand All @@ -99,6 +145,31 @@ public void onClick(View v)
new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mDatabase.child(lot.toString()).limitToLast(10).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot reportSnapshot: dataSnapshot.getChildren())
{
long reportTime = (long) reportSnapshot.child("reportTime").getValue();
long reportStatus = (long) reportSnapshot.child("status").getValue();
int reportStat = Integer.parseInt(Long.toString(reportStatus));
Report rep = new Report(lot,reportStat,reportTime);
if (!reports.contains(rep))
{
reports.add(rep);
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
stringListAdapter.notifyDataSetChanged();
}
}

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
for (int i = 2; i < reportData.size(); i = i + 2)
{
reportData.set(i, reports.get((i/2)-1).readableLastReportTime());
Expand Down Expand Up @@ -161,51 +232,18 @@ public void addToList() {
reportType = drop.getSelectedItemPosition() - 1;
if (reportType > -1 && reportType < 3) {
reports.add(new Report(lot, reportType));
mDatabase.child("lots").child(lot.toString()).push().child("reports").setValue(reports.get(reports.size() - 1));
mDatabase.child(lot.toString()).push().setValue(reports.get(reports.size() - 1));
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
stringListAdapter.notifyDataSetChanged();
}
mDatabase.child("lots").child(lot.toString()).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (reports.size()>0) {
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
stringListAdapter.notifyDataSetChanged();
}
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Iterable<DataSnapshot> it = dataSnapshot.getChildren();
for (DataSnapshot postSnap : it) {
Report in = postSnap.child("reports").getValue(Report.class);
in = new Report(lot,in.getStatus(),in.getReportTime());
reports.add(in);
reportData.add(reports.get(reports.size() - 1).readableLastReportTime());
reportData.add(reports.get(reports.size() - 1).viewStatus());
}
}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

@Override
public void onBackPressed()
{

super.onBackPressed();
}

private int reportType;
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/java/net/rofael/uabparkingfinder/Report.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,10 @@ else if (minutes > 0)

}

public boolean equals(Object o2)
{
return (this.getReportTime() == ((Report) o2).getReportTime());
}


}

0 comments on commit 34cf406

Please sign in to comment.