diff --git a/app/build.gradle b/app/build.gradle
index aed621b..690cb45 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,20 @@
+buildscript {
+ repositories {
+ maven { url 'https://maven.fabric.io/public' }
+ }
+
+ dependencies {
+ classpath 'io.fabric.tools:gradle:1.25.4'
+ }
+}
plugins {}
apply plugin: 'com.android.application'
+apply plugin: 'io.fabric'
+
+repositories {
+ maven { url 'https://maven.fabric.io/public' }
+}
+
//noinspection GradleCompatible
apply plugin: 'com.android.application'
@@ -16,8 +31,8 @@ android {
applicationId 'garbagecollectors.com.unipool'
minSdkVersion 16
targetSdkVersion 27
- versionCode 120
- versionName "1.20"
+ versionCode 124
+ versionName "1.24"
resConfigs "en"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -29,6 +44,8 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
+ // Disable fabric build ID generation for debug builds
+ //ext.enableCrashlytics = false
debuggable true
}
}
@@ -55,11 +72,17 @@ dependencies {
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.google.firebase:firebase-config:16.0.0'
+ implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
+ transitive = true
+ }
+
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'
+ implementation 'com.google.code.gson:gson:2.8.2'
+
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 678b50c..78f35c5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,6 +19,11 @@
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyB8Ik3P9bFz_prcjauv0oGMM_4gQmK2U_I" />
+
+
@@ -72,7 +77,8 @@
-
+
+
\ No newline at end of file
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/AboutActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/AboutActivity.java
index 0804ebe..2c44a81 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/AboutActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/AboutActivity.java
@@ -19,7 +19,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.activities.RequestActivity.RequestActivity;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import static garbagecollectors.com.unipool.activities.BaseActivity.currentUser;
@@ -117,6 +117,12 @@ private void dealWithSelectedMenuItem(MenuItem menuItem)
case R.id.nav_about:
break;
+ case R.id.nav_privacy:
+ // The code for opening a URL in a Browser in Android:
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.PrivacyPolicyUrl)));
+ startActivity(browserIntent);
+ break;
+
case R.id.nav_logout:
BaseActivity.mAuth.signOut();
startActivity(new Intent(this, LoginActivity.class));
@@ -214,6 +220,6 @@ public void onBackPressed()
protected void onResume()
{
super.onResume();
- Constants.OPEN_ACTIVITY = "ABOUT";
+ Globals.OPEN_ACTIVITY = "ABOUT";
}
}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/BaseActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/BaseActivity.java
index e4b04bf..e48c023 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/BaseActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/BaseActivity.java
@@ -3,6 +3,7 @@
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
@@ -24,7 +25,6 @@
import com.google.android.gms.maps.model.LatLng;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
-import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseException;
@@ -41,9 +41,10 @@
import garbagecollectors.com.unipool.activities.RequestActivity.ReceivedRequestsFragment;
import garbagecollectors.com.unipool.activities.RequestActivity.RequestActivity;
import garbagecollectors.com.unipool.activities.RequestActivity.SentRequestsFragment;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.dialog.NewEntryDialog;
+import garbagecollectors.com.unipool.firebase.FirebaseInteractions;
import garbagecollectors.com.unipool.models.GenLocation;
import garbagecollectors.com.unipool.models.Message;
import garbagecollectors.com.unipool.models.TripEntry;
@@ -63,7 +64,7 @@ public abstract class BaseActivity extends AppCompatActivity implements BottomNa
public static User finalCurrentUser;
- protected static ArrayList tripEntryList = SplashActivity.getTripEntryList();
+ public static ArrayList tripEntryList = SplashActivity.getTripEntryList();
protected static HashMap chatMap; //key = UserId
protected static HashMap> messages = new HashMap<>(); //Key - PairUpID, Value- List of messages in that pairUp
@@ -80,7 +81,7 @@ protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(getContentViewId());
- Constants.init();
+ Globals.init();
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
@@ -92,14 +93,14 @@ protected void onCreate(Bundle savedInstanceState)
actionBar.setDisplayHomeAsUpEnabled(true);
}
- Constants.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users/" + finalCurrentUser.getUserId());
- Constants.userMessageDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "messages/" + finalCurrentUser.getUserId());
+ Globals.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users/" + finalCurrentUser.getUserId());
+ Globals.userMessageDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "messages/" + finalCurrentUser.getUserId());
startMessageListener();
- getTripEntries();
+ FirebaseInteractions.addTripEntryChildListener(this);
- getMegaEntries();
+ FirebaseInteractions.addMegaEntryChildListener(this);
getUserDetails();
}
@@ -131,7 +132,7 @@ protected void startMessageListener()
protected void getUserDetails()
{
- Constants.userDatabaseReference.addValueEventListener(new ValueEventListener()
+ Globals.userDatabaseReference.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -143,7 +144,7 @@ public void onDataChange(DataSnapshot dataSnapshot)
if(dataSnapshot.getValue() != null)
{
finalCurrentUser = dataSnapshot.getValue(User.class);
- UtilityMethods.populateChatMap(dataSnapshot);
+ UtilityMethods.populateChatMap(dataSnapshot.child("pairUps"));
ReceivedRequestsFragment.refreshRecycler();
SentRequestsFragment.refreshRecycler();
ChatFragment.refreshRecycler();
@@ -169,117 +170,7 @@ public void onCancelled(DatabaseError error)
bottomNavigationView.setOnNavigationItemSelectedListener(this);
}
- protected void getTripEntries()
- {
- Constants.entryDatabaseReference.addChildEventListener(new ChildEventListener()
- {
- @Override
- public void onChildAdded(DataSnapshot dataSnapshot, String s)
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- UtilityMethods.updateTripList(tripEntryList, tripEntry);
-
- HomeActivity.updateRecycleAdapter();
- }
-
- @Override
- public void onChildChanged(DataSnapshot dataSnapshot, String s)
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- UtilityMethods.updateTripList(tripEntryList, tripEntry);
-
- HomeActivity.updateRecycleAdapter();
- }
-
- @Override
- public void onChildRemoved(DataSnapshot dataSnapshot)
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- if (tripEntry != null)
- {
- UtilityMethods.removeFromList(tripEntryList, tripEntry.getEntry_id());
- HomeActivity.updateRecycleAdapter();
- }
-
- }
-
- @Override
- public void onChildMoved(DataSnapshot dataSnapshot, String s)
- {
- //IDK
- }
-
- @Override
- public void onCancelled(DatabaseError databaseError)
- {
- // Failed to read value
- Log.w("Hello", "Failed to read value.", databaseError.toException());
- Toast.makeText(getApplicationContext(), "Network Issues!", Toast.LENGTH_SHORT).show();
- }
- });
- }
-
- protected void getMegaEntries()
- {
- Constants.megaEntryDatabaseReference.addChildEventListener(new ChildEventListener()
- {
- @Override
- public void onChildAdded(DataSnapshot dataSnapshot, String s)
- {
- try
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- UtilityMethods.updateTripList(tripEntryList, tripEntry);
-
- HomeActivity.updateRecycleAdapter();
- } catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- @Override
- public void onChildChanged(DataSnapshot dataSnapshot, String s)
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- UtilityMethods.updateTripList(tripEntryList, tripEntry);
- HomeActivity.updateRecycleAdapter();
- }
-
- @Override
- public void onChildRemoved(DataSnapshot dataSnapshot)
- {
- try
- {
- TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- if (tripEntry != null)
- {
- UtilityMethods.removeFromList(tripEntryList, tripEntry.getEntry_id());
- HomeActivity.updateRecycleAdapter();
- }
- } catch (Exception e)
- {
- e.printStackTrace();
- }
-
- }
-
- @Override
- public void onChildMoved(DataSnapshot dataSnapshot, String s)
- {
- //IDK
- }
-
- @Override
- public void onCancelled(DatabaseError databaseError)
- {
- // Failed to read value
- Log.w("Hello", "Failed to read value.", databaseError.toException());
- Toast.makeText(getApplicationContext(), "Network Issues!", Toast.LENGTH_SHORT).show();
- }
- });
- }
@Override
protected void onStart()
@@ -287,7 +178,7 @@ protected void onStart()
super.onStart();
updateNavigationBarState();
finalCurrentUser.setOnline(true);
- Constants.userDatabaseReference.child("isOnline").setValue("true");
+ Globals.userDatabaseReference.child("isOnline").setValue("true");
}
@Override
@@ -295,8 +186,8 @@ public void onBackPressed()
{
super.onBackPressed();
finalCurrentUser.setOnline(false);
- Constants.userDatabaseReference.child("isOnline").setValue("false");
- Constants.expiryDatabaseReference.child(finalCurrentUser.getUserId()).removeValue();
+ Globals.userDatabaseReference.child("isOnline").setValue("false");
+ Globals.expiryDatabaseReference.child(finalCurrentUser.getUserId()).removeValue();
}
@Override
@@ -398,6 +289,12 @@ protected void dealWithSelectedMenuItem(MenuItem menuItem)
startActivity(new Intent(getApplicationContext(), AboutActivity.class));
overridePendingTransition(0, 0);
finish();
+ break;
+
+ case R.id.nav_privacy:
+ // The code for opening a URL in a Browser in Android:
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.PrivacyPolicyUrl)));
+ startActivity(browserIntent);
break;
case R.id.nav_logout:
@@ -407,7 +304,7 @@ protected void dealWithSelectedMenuItem(MenuItem menuItem)
break;
case R.id.nav_home:
- if(!Constants.OPEN_ACTIVITY.contains("HOME"))
+ if(!Globals.OPEN_ACTIVITY.contains("HOME"))
{
startActivity(new Intent(getApplicationContext(), HomeActivity.class));
overridePendingTransition(0, 0);
@@ -416,7 +313,7 @@ protected void dealWithSelectedMenuItem(MenuItem menuItem)
break;
case R.id.nav_newEntry:
- if(Constants.OPEN_ACTIVITY.contains("HOME"))
+ if(Globals.OPEN_ACTIVITY.contains("HOME"))
new NewEntryDialog().show(getFragmentManager(), "NewEntryDialog");
else
{
@@ -429,7 +326,7 @@ protected void dealWithSelectedMenuItem(MenuItem menuItem)
break;
case R.id.nav_requests:
- if(!Constants.OPEN_ACTIVITY.contains("REQ"))
+ if(!Globals.OPEN_ACTIVITY.contains("REQ"))
{
startActivity(new Intent(getApplicationContext(), RequestActivity.class));
overridePendingTransition(0, 0);
@@ -438,7 +335,7 @@ protected void dealWithSelectedMenuItem(MenuItem menuItem)
break;
case R.id.nav_chat:
- if(!Constants.OPEN_ACTIVITY.contains("CHAT"))
+ if(!Globals.OPEN_ACTIVITY.contains("CHAT"))
{
Intent chatIntent = new Intent(getApplicationContext(), RequestActivity.class);
chatIntent.putExtra("openingTab", 2);
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/HomeActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/HomeActivity.java
index c40210a..f810d4e 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/HomeActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/HomeActivity.java
@@ -25,9 +25,8 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.adapters.HomeActivityTEA;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.dialog.NewEntryDialog;
-import garbagecollectors.com.unipool.firebase.FirebaseInteractions;
public class HomeActivity extends BaseActivity
{
@@ -110,18 +109,18 @@ else if (dy > 0 && newEntryFab.isShown())
homeTripEntrySwipe.setOnRefreshListener(() -> {
newEntryFab.show();
- FirebaseInteractions.getMegaTripEntries(getApplicationContext());
- FirebaseInteractions.getTripEntries(getApplicationContext());
- });
+ /*FirebaseInteractions.getMegaTripEntries(getApplicationContext());
+ FirebaseInteractions.getTripEntries(getApplicationContext());*/
- stopRefresherAfterSomeTime();
+ stopRefresherAfterSomeTime();
+ });
}
private void stopRefresherAfterSomeTime()
{
- //stops refreshing after 5 seconds
+ //stops refreshing after 3 seconds
final Handler handler = new Handler();
- handler.postDelayed(() -> homeTripEntrySwipe.setRefreshing(false), 5000);
+ handler.postDelayed(() -> homeTripEntrySwipe.setRefreshing(false), 3000);
}
private void changeToSOLogo()
@@ -189,8 +188,8 @@ public boolean onQueryTextChange(String newText)
protected void onResume()
{
super.onResume();
- Constants.OPEN_ACTIVITY = "HOME";
- Log.d("Open", Constants.OPEN_ACTIVITY);
+ Globals.OPEN_ACTIVITY = "HOME";
+ Log.d("Open", Globals.OPEN_ACTIVITY);
}
@Override
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/LoginActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/LoginActivity.java
index bdd5d0d..86aaf9c 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/LoginActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/LoginActivity.java
@@ -11,6 +11,8 @@
import android.view.View;
import android.widget.Toast;
+import com.crashlytics.android.Crashlytics;
+import com.crashlytics.android.core.CrashlyticsCore;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
@@ -29,17 +31,20 @@
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.iid.FirebaseInstanceId;
-import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
+import garbagecollectors.com.unipool.BuildConfig;
import garbagecollectors.com.unipool.R;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
+import garbagecollectors.com.unipool.application.LocalStorageHelper;
+import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.GenLocation;
import garbagecollectors.com.unipool.models.Message;
import garbagecollectors.com.unipool.models.PairUp;
import garbagecollectors.com.unipool.models.TripEntry;
import garbagecollectors.com.unipool.models.User;
+import io.fabric.sdk.android.Fabric;
import static garbagecollectors.com.unipool.activities.BaseActivity.finalCurrentUser;
@@ -68,6 +73,8 @@ public class LoginActivity extends Activity implements View.OnClickListener
@Override
protected void onCreate(Bundle savedInstanceState)
{
+ //disableCrashlyticsForDebug();
+
startIntro();
super.onCreate(savedInstanceState);
@@ -92,6 +99,17 @@ protected void onCreate(Bundle savedInstanceState)
}
+ private void disableCrashlyticsForDebug()
+ {
+ // Set up Crashlytics, disabled for debug builds
+ Crashlytics crashlyticsKit = new Crashlytics.Builder()
+ .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
+ .build();
+
+ // Initialize Fabric with the debug-disabled crashlytics.
+ Fabric.with(this, crashlyticsKit, new Crashlytics());
+ }
+
private void startIntro()
{
// Declare a new thread to do a preference check
@@ -208,14 +226,7 @@ private void firebaseAuthWithGoogle(GoogleSignInAccount acct)
FirebaseUser user = mAuth.getCurrentUser();
- try
- {
- createUserOnDatabase(user);
- } catch (ParseException e)
- {
- e.printStackTrace();
- Toast.makeText(getApplicationContext(), "Network Issues!", Toast.LENGTH_SHORT).show();
- }
+ createUserOnDatabase(user);
}
else
{
@@ -229,13 +240,14 @@ private void firebaseAuthWithGoogle(GoogleSignInAccount acct)
});
}
- private void createUserOnDatabase(FirebaseUser user) throws ParseException
+
+ private void createUserOnDatabase(FirebaseUser user)
{
dummyInitFinalCurrentUser(user);
- Constants.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users/" + user.getUid());
+ Globals.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users/" + user.getUid());
- Constants.userDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.userDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot snapshot)
@@ -259,9 +271,9 @@ public void onCancelled(DatabaseError databaseError)
{
userNewOnDatabase = true;
- Constants.userDatabaseReference.setValue(finalCurrentUser);
+ Globals.userDatabaseReference.setValue(finalCurrentUser);
- Constants.messageDatabaseReference.child(finalCurrentUser.getUserId()).child(defaultMessage.getMessageId()).
+ Globals.messageDatabaseReference.child(finalCurrentUser.getUserId()).child(defaultMessage.getMessageId()).
setValue(defaultMessage);
//Toast.makeText(getApplicationContext(), "User added to database!", Toast.LENGTH_SHORT).show();
@@ -280,7 +292,7 @@ public void onCancelled(DatabaseError databaseError)
});
}
- private void dummyInitFinalCurrentUser(FirebaseUser user) throws ParseException
+ private void dummyInitFinalCurrentUser(FirebaseUser user)
{
GenLocation dummyGenLocation = new GenLocation("dummy", "dummy", 0d, 0d);
@@ -318,23 +330,31 @@ private void dummyInitFinalCurrentUser(FirebaseUser user) throws ParseException
}
- private void updateUI(FirebaseUser currentUser)
+ private void updateUI(FirebaseUser user)
{
progressDialog.dismiss();
- if(currentUser != null)
+ if(user != null)
{
- String deviceToken = FirebaseInstanceId.getInstance().getToken();
+ UtilityMethods.storeUserLocally(user, getApplicationContext());
+
+ FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(instanceIdResult -> {
+ String deviceToken = instanceIdResult.getToken();
+
+ LocalStorageHelper.storeLocally(Globals.USER_SP_FILE, Globals.USER_TOKEN_KEY, deviceToken, getApplicationContext());
+
+ UtilityMethods.fillGlobalVariables(getApplicationContext());
- Constants.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users/" + currentUser.getUid());
+ Globals.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users/" + user.getUid());
- Constants.userDatabaseReference.child("deviceToken").setValue(deviceToken);
+ Globals.userDatabaseReference.child("deviceToken").setValue(deviceToken);
- Constants.expiryDatabaseReference.child(currentUser.getUid()).setValue(true);
+ Globals.expiryDatabaseReference.child(user.getUid()).setValue(true);
- finish();
- startActivity(new Intent(getApplicationContext(), SplashActivity.class));
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ finish();
+ startActivity(new Intent(getApplicationContext(), SplashActivity.class));
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ });
}
}
}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/MessageListActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/MessageListActivity.java
index a7f08f8..9828163 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/MessageListActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/MessageListActivity.java
@@ -25,7 +25,7 @@
import java.util.TreeMap;
import garbagecollectors.com.unipool.R;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.Message;
import garbagecollectors.com.unipool.models.PairUp;
@@ -65,15 +65,25 @@ protected void onCreate(Bundle savedInstanceState)
messagesOnScreen = new ArrayList<>();
messageProgressDialog = new ProgressDialog(this);
+ messageProgressDialog.setCanceledOnTouchOutside(false);
messageProgressDialog.setMessage("Fetching your messages...");
messageProgressDialog.show();
setScrollViewToBottom();
- DatabaseReference userMessageDatabaseReference = FirebaseDatabase.getInstance().
- getReference("messages/" + BaseActivity.getFinalCurrentUser().getUserId());
+ DatabaseReference userMessageDatabaseReference = null;
+ try
+ {
+ userMessageDatabaseReference = FirebaseDatabase.getInstance().
+ getReference("messages/" + BaseActivity.getFinalCurrentUser().getUserId());
+ } catch (Exception e)
+ {
+ //Could be NPE, fall back to locally stored USER_ID
+ userMessageDatabaseReference = FirebaseDatabase.getInstance().
+ getReference("messages/" + Globals.USER_ID);
+ }
- //load from local
+ /*load from local*/
userMessageDatabaseReference.addChildEventListener(new ChildEventListener()
{
@@ -141,7 +151,7 @@ public void onCancelled(DatabaseError databaseError)
notificationObject.put("from", BaseActivity.getFinalCurrentUser().getUserId());
notificationObject.put("type", "chat");
- Constants.notificationDatabaseReference.child(chatUser.getUserId()).push().setValue(notificationObject);
+ Globals.notificationDatabaseReference.child(chatUser.getUserId()).push().setValue(notificationObject);
messageArea.setText("");
personalMessageMap.put(message.getCreatedAtTime(), message);
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ChatFragment.java b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ChatFragment.java
index 49068bd..609a6a4 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ChatFragment.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ChatFragment.java
@@ -16,7 +16,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.activities.BaseActivity;
import garbagecollectors.com.unipool.adapters.UserAdapter;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.models.User;
public class ChatFragment extends Fragment
@@ -42,8 +42,8 @@ public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
- Constants.OPEN_ACTIVITY = "CHATS";
- Log.d("Open", Constants.OPEN_ACTIVITY);
+ Globals.OPEN_ACTIVITY = "CHATS";
+ Log.d("Open", Globals.OPEN_ACTIVITY);
}
}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ReceivedRequestsFragment.java b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ReceivedRequestsFragment.java
index b378052..d1f1446 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ReceivedRequestsFragment.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/ReceivedRequestsFragment.java
@@ -19,7 +19,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.activities.HomeActivity;
import garbagecollectors.com.unipool.adapters.ReceivedRequestsTEA;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.TripEntry;
import garbagecollectors.com.unipool.models.User;
@@ -47,8 +47,8 @@ public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
- Constants.OPEN_ACTIVITY = "REQUESTS";
- Log.d("Open", Constants.OPEN_ACTIVITY);
+ Globals.OPEN_ACTIVITY = "REQUESTS";
+ Log.d("Open", Globals.OPEN_ACTIVITY);
}
}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/RequestActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/RequestActivity.java
index f87d83d..9b03ff6 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/RequestActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/RequestActivity.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
@@ -28,7 +29,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.activities.BaseActivity;
import garbagecollectors.com.unipool.activities.LoginActivity;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.TripEntry;
@@ -41,9 +42,12 @@ public class RequestActivity extends BaseActivity
static TaskCompletionSource sentRequestsSource;
static TaskCompletionSource receivedRequestsSource;
+ static TaskCompletionSource pairUpSource;
static Task sentRequestsDBTask;
static Task receivedRequestsDBTask;
+ static Task pairUpDBTask;
+
private int tabIndex;
@Override
@@ -54,11 +58,14 @@ protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_request);
- Constants.sentRequestsDatabaseReference = FirebaseDatabase.getInstance().getReference(
- Constants.UNI + "users/" + finalCurrentUser.getUserId() + "/requestSent");
+ Globals.sentRequestsDatabaseReference = FirebaseDatabase.getInstance().getReference(
+ Globals.UNI + "users/" + finalCurrentUser.getUserId() + "/requestSent");
+
+ Globals.receivedRequestsDatabaseReference = FirebaseDatabase.getInstance().getReference(
+ Globals.UNI + "users/" + finalCurrentUser.getUserId() + "/requestsReceived");
- Constants.receivedRequestsDatabaseReference = FirebaseDatabase.getInstance().getReference(
- Constants.UNI + "users/" + finalCurrentUser.getUserId() + "/requestsReceived");
+ Globals.userPairUpDatabaseReference = FirebaseDatabase.getInstance().getReference(
+ Globals.UNI + "users/" + finalCurrentUser.getUserId() + "/pairUps");
drawerLayout = findViewById(R.id.requests_layout);
@@ -95,6 +102,13 @@ protected void onCreate(Bundle savedInstanceState)
}
}
+ @Override
+ protected void onResume()
+ {
+ super.onResume();
+ refreshRequests(this);
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
@@ -109,11 +123,13 @@ public static void refreshRequests(Context context)
sentRequestsSource = new TaskCompletionSource<>();
receivedRequestsSource = new TaskCompletionSource<>();
+ pairUpSource = new TaskCompletionSource<>();
sentRequestsDBTask = sentRequestsSource.getTask();
receivedRequestsDBTask = receivedRequestsSource.getTask();
+ pairUpDBTask = pairUpSource.getTask();
- Constants.sentRequestsDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.sentRequestsDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -128,7 +144,7 @@ public void onCancelled(DatabaseError databaseError)
}
});
- Constants.receivedRequestsDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.receivedRequestsDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -144,7 +160,23 @@ public void onCancelled(DatabaseError databaseError)
}
});
- Task allTask = Tasks.whenAll(sentRequestsDBTask, receivedRequestsDBTask);
+ Globals.userPairUpDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ {
+ @Override
+ public void onDataChange(@NonNull DataSnapshot dataSnapshot)
+ {
+ pairUpSource.setResult(dataSnapshot);
+ }
+
+ @Override
+ public void onCancelled(@NonNull DatabaseError databaseError)
+ {
+ pairUpSource.setException(databaseError.toException());
+ Toast.makeText(context, "Network Issues!", Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ Task allTask = Tasks.whenAll(sentRequestsDBTask, receivedRequestsDBTask, pairUpDBTask);
allTask.addOnSuccessListener((Void aVoid) ->
{
finalCurrentUser.getRequestSent().clear();
@@ -154,6 +186,7 @@ public void onCancelled(DatabaseError databaseError)
DataSnapshot sentRequestsData = sentRequestsDBTask.getResult();
DataSnapshot receivedRequestsData = receivedRequestsDBTask.getResult();
+ DataSnapshot pairUpData = pairUpDBTask.getResult();
for (DataSnapshot ds : sentRequestsData.getChildren())
finalCurrentUser.getRequestSent().put(ds.getValue(TripEntry.class).getEntry_id(), ds.getValue(TripEntry.class));
@@ -168,10 +201,13 @@ public void onCancelled(DatabaseError databaseError)
finalCurrentUser.getRequestsReceived().put(dataSnapshot.getKey(), userIdList);
}
- Task task = UtilityMethods.populateReceivedRequestsList(ReceivedRequestsFragment.getReceivedRequestsList(), finalCurrentUser.getRequestsReceived(), tripEntryList);
+ Task chatListTask = UtilityMethods.populateChatMap(pairUpData);
+
+ Task receivedRequestsTask = UtilityMethods.populateReceivedRequestsList(ReceivedRequestsFragment.getReceivedRequestsList(), finalCurrentUser.getRequestsReceived(), tripEntryList);
+
+ Task twoTasks = Tasks.whenAll(chatListTask, receivedRequestsTask);
+ twoTasks.addOnSuccessListener(aVoid1 -> {
- task.addOnSuccessListener(o ->
- {
ReceivedRequestsFragment.refreshRecycler();
SentRequestsFragment.refreshRecycler();
ChatFragment.refreshRecycler();
@@ -179,7 +215,8 @@ public void onCancelled(DatabaseError databaseError)
requestsProgressBar.setVisibility(View.INVISIBLE);
});
- task.addOnFailureListener(e -> Toast.makeText(context, "Network Issues!", Toast.LENGTH_SHORT).show());
+ twoTasks.addOnFailureListener(e -> Toast.makeText(context, "Network Issues!", Toast.LENGTH_SHORT).show());
+
});
allTask.addOnFailureListener(e ->
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/SentRequestsFragment.java b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/SentRequestsFragment.java
index 4910c9c..cb2480c 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/SentRequestsFragment.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/RequestActivity/SentRequestsFragment.java
@@ -16,7 +16,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.adapters.SentRequestsTEA;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.models.TripEntry;
import garbagecollectors.com.unipool.models.User;
@@ -36,8 +36,8 @@ public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
- Constants.OPEN_ACTIVITY = "REQUESTS";
- Log.d("Open", Constants.OPEN_ACTIVITY);
+ Globals.OPEN_ACTIVITY = "REQUESTS";
+ Log.d("Open", Globals.OPEN_ACTIVITY);
}
}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/activities/SplashActivity.java b/app/src/main/java/garbagecollectors/com/unipool/activities/SplashActivity.java
index 011e24e..b66157d 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/activities/SplashActivity.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/activities/SplashActivity.java
@@ -26,8 +26,8 @@
import java.util.ArrayList;
import garbagecollectors.com.unipool.R;
-import garbagecollectors.com.unipool.application.Constants;
import garbagecollectors.com.unipool.application.ForceUpdateChecker;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.TripEntry;
import garbagecollectors.com.unipool.models.User;
@@ -76,16 +76,18 @@ protected void onCreate(Bundle savedInstanceState)
//For Oreo and above
createNotificationChannel();
+ UtilityMethods.fillGlobalVariables(getApplicationContext());
+
BaseActivity.setCurrentUser(currentUser);
- Constants.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users/" + currentUser.getUid());
+ Globals.userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users/" + currentUser.getUid());
- Constants.messageDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "messages/" + currentUser.getUid());
+ Globals.messageDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "messages/" + currentUser.getUid());
Handler handler = new Handler();
- handler.postDelayed(() -> timerSource.setResult(null), 12350);
+ handler.postDelayed(() -> timerSource.setResult(null), 12345);
- Constants.userDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.userDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -101,7 +103,7 @@ public void onCancelled(DatabaseError databaseError)
}
});
- Constants.entryDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.entryDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -128,15 +130,15 @@ public void onCancelled(DatabaseError databaseError)
for (DataSnapshot dataSnapshot : entryData.getChildren())
{
TripEntry tripEntry = dataSnapshot.getValue(TripEntry.class);
- UtilityMethods.updateTripList(tripEntryList, tripEntry);
+ UtilityMethods.updateTripList(tripEntryList, tripEntry, true);
}
if (!(LoginActivity.userNewOnDatabase))
BaseActivity.setFinalCurrentUser(userData.getValue(User.class));
- Task chatListTask = UtilityMethods.populateChatMap(userData);
+ Task chatListTask = UtilityMethods.populateChatMap(userData.child("pairUps"));
- Constants.messageDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.messageDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -207,7 +209,7 @@ private void createNotificationChannel() {
// the NotificationChannel class is new and not in the support library
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
int importance = NotificationManager.IMPORTANCE_DEFAULT;
- NotificationChannel channel = new NotificationChannel(Constants.CHANNEL_ID, "UniPool Channel", importance);
+ NotificationChannel channel = new NotificationChannel(Globals.CHANNEL_ID, "UniPool Channel", importance);
channel.setDescription("The default notification channel for UniPool");
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
diff --git a/app/src/main/java/garbagecollectors/com/unipool/adapters/HomeActivityTEA.java b/app/src/main/java/garbagecollectors/com/unipool/adapters/HomeActivityTEA.java
index 729d0c5..2365d74 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/adapters/HomeActivityTEA.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/adapters/HomeActivityTEA.java
@@ -30,7 +30,7 @@
import garbagecollectors.com.unipool.R;
import garbagecollectors.com.unipool.activities.BaseActivity;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.TripEntry;
import garbagecollectors.com.unipool.models.User;
@@ -99,7 +99,9 @@ public void onBindViewHolder(MyHolder holder, int position)
holder.itemView.setOnLongClickListener(v ->
{
- onRequestClick(v, position);
+ if(Globals.USER_EMAIL.contains(context.getString(R.string.dev_mail))) //God mode
+ deleteEntry(v, position);
+ else onRequestClick(v, position);
return true;
});
} catch (Exception e)
@@ -185,9 +187,9 @@ private void deleteEntry(View view, int position)
TripEntry tripEntry = list.get(position);
- Task task1 = Constants.entryDatabaseReference.child(tripEntry.getEntry_id()).removeValue();
+ Task task1 = Globals.entryDatabaseReference.child(tripEntry.getEntry_id()).removeValue();
- Constants.userDatabaseReference.child("userTripEntries").addListenerForSingleValueEvent(new ValueEventListener()
+ Globals.userDatabaseReference.child("userTripEntries").addListenerForSingleValueEvent(new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
@@ -217,7 +219,7 @@ public void onCancelled(DatabaseError databaseError)
i[0]++;
}
- Task task3 = Constants.userDatabaseReference.child("userTripEntries").child(tripEntry.getEntry_id()).removeValue();
+ Task task3 = Globals.userDatabaseReference.child("userTripEntries").child(tripEntry.getEntry_id()).removeValue();
task3.addOnSuccessListener(aVoid1 ->
{
@@ -276,7 +278,7 @@ private void sendRequest(View view, int position)
tripEntryUser[0] = snapshot.getValue(User.class);
- DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users");
+ DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users");
HashMap requestSent = user.getRequestSent();
HashMap> requestsReceived = tripEntryUser[0].getRequestsReceived();
@@ -301,7 +303,7 @@ private void sendRequest(View view, int position)
notificationObject.put("from", user.getUserId());
notificationObject.put("type", "requestCreated");
- Task task3 = Constants.notificationDatabaseReference.child(tripEntryUser[0].getUserId()).push().setValue(notificationObject);
+ Task task3 = Globals.notificationDatabaseReference.child(tripEntryUser[0].getUserId()).push().setValue(notificationObject);
Task allTask = Tasks.whenAll(task1, task2, task3);
allTask.addOnSuccessListener(bVoid ->
diff --git a/app/src/main/java/garbagecollectors/com/unipool/adapters/ReceivedRequestsTEA.java b/app/src/main/java/garbagecollectors/com/unipool/adapters/ReceivedRequestsTEA.java
index 1eecf25..8339e1c 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/adapters/ReceivedRequestsTEA.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/adapters/ReceivedRequestsTEA.java
@@ -27,7 +27,7 @@
import garbagecollectors.com.unipool.activities.BaseActivity;
import garbagecollectors.com.unipool.activities.RequestActivity.ReceivedRequestsFragment;
import garbagecollectors.com.unipool.activities.RequestActivity.RequestActivity;
-import garbagecollectors.com.unipool.application.Constants;
+import garbagecollectors.com.unipool.application.Globals;
import garbagecollectors.com.unipool.application.UtilityMethods;
import garbagecollectors.com.unipool.models.PairUp;
import garbagecollectors.com.unipool.models.TripEntry;
@@ -72,12 +72,13 @@ public void onBindViewHolder(@NonNull MyHolder holder, int position)
holder.messageCard.setVisibility(View.GONE);
MessageDBTask.addOnCompleteListener(o -> requestsProgressDialog.dismiss());
+ MessageDBTask.addOnFailureListener(o -> requestsProgressDialog.dismiss());
holder.requestButton.setOnClickListener(view ->
{
- DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "users");
- DatabaseReference pairUpDatabaseReference = Constants.pairUpDatabaseReference;
- DatabaseReference notificationDatabaseReference = Constants.notificationDatabaseReference;
+ DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "users");
+ DatabaseReference pairUpDatabaseReference = Globals.pairUpDatabaseReference;
+ DatabaseReference notificationDatabaseReference = Globals.notificationDatabaseReference;
TripEntry tripEntry = list.get(position);
diff --git a/app/src/main/java/garbagecollectors/com/unipool/application/Constants.java b/app/src/main/java/garbagecollectors/com/unipool/application/Globals.java
similarity index 69%
rename from app/src/main/java/garbagecollectors/com/unipool/application/Constants.java
rename to app/src/main/java/garbagecollectors/com/unipool/application/Globals.java
index e9eb436..e149fad 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/application/Constants.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/application/Globals.java
@@ -5,11 +5,29 @@
import java.util.HashMap;
-public class Constants
+public class Globals
{
public static final String UNI = "";
public static final String CHANNEL_ID = "unipool";
+ // SharedPreference Keys
+ public static final String USER_SP_FILE = "USER_SP_FILE";
+ public static final String USER_ID_KEY = "USER_ID";
+ public static final String USER_NAME_KEY = "USER_NAME";
+ public static final String USER_EMAIL_KEY = "USER_EMAIL";
+ public static final String USER_PHONE_KEY = "USER_PHONE";
+ public static final String USER_PHOTO_URL_KEY = "USER_PHOTO_URL";
+ public static final String USER_TOKEN_KEY = "USER_TOKEN";
+
+ // User Stuff
+ public static String USER_ID = "";
+ public static String USER_NAME = "";
+ public static String USER_EMAIL = "";
+ public static String USER_PHONE = "";
+ public static String USER_PHOTO_URL = "";
+ public static String USER_TOKEN = "";
+
+
public static DatabaseReference userDatabaseReference;
public static DatabaseReference userMessageDatabaseReference;
public static DatabaseReference entryDatabaseReference = FirebaseDatabase.getInstance().getReference(UNI + "entries");
@@ -21,6 +39,7 @@ public class Constants
public static DatabaseReference sentRequestsDatabaseReference;
public static DatabaseReference receivedRequestsDatabaseReference;
+ public static DatabaseReference userPairUpDatabaseReference;
public static String OPEN_ACTIVITY = "";
//HOME, REQUESTS, CHAT, ABOUT
diff --git a/app/src/main/java/garbagecollectors/com/unipool/application/LocalStorageHelper.java b/app/src/main/java/garbagecollectors/com/unipool/application/LocalStorageHelper.java
new file mode 100644
index 0000000..7d34fa9
--- /dev/null
+++ b/app/src/main/java/garbagecollectors/com/unipool/application/LocalStorageHelper.java
@@ -0,0 +1,51 @@
+package garbagecollectors.com.unipool.application;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import com.google.android.gms.common.util.Strings;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+
+import java.lang.reflect.Type;
+
+
+public class LocalStorageHelper
+{
+ public static void storeLocally(String fileName, String key, Object value, Context context)
+ {
+ Gson gson = new Gson();
+ String valString = gson.toJson(value);
+
+ if(!Strings.nullToEmpty(key).equals("") && !Strings.nullToEmpty(valString).equals("")) // strings are neither null nor empty
+ {
+ SharedPreferences.Editor editor = context.getSharedPreferences(fileName, Context.MODE_PRIVATE).edit();
+
+ editor.putString(key, valString);
+
+ editor.apply();
+ }
+ }
+
+ public static Object loadFromLocal(String key, Context context, Type typeOfT)
+ {
+ //returns "", if some problem, else returns required object
+
+ try
+ {
+ if(!Strings.nullToEmpty(key).equals(""))
+ {
+ Gson gson = new Gson();
+
+ SharedPreferences sharedPreferences = context.getSharedPreferences(Globals.USER_SP_FILE, Context.MODE_PRIVATE);
+ String valString = sharedPreferences.getString(key, "");
+
+ return Strings.nullToEmpty(gson.fromJson(valString, typeOfT));
+ }
+ else return "";
+ } catch (JsonSyntaxException e)
+ {
+ return "";
+ }
+ }
+}
diff --git a/app/src/main/java/garbagecollectors/com/unipool/application/UtilityMethods.java b/app/src/main/java/garbagecollectors/com/unipool/application/UtilityMethods.java
index 3547ba4..a8f1d0a 100644
--- a/app/src/main/java/garbagecollectors/com/unipool/application/UtilityMethods.java
+++ b/app/src/main/java/garbagecollectors/com/unipool/application/UtilityMethods.java
@@ -7,6 +7,7 @@
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
+import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
@@ -40,7 +41,7 @@ public static Task accessUserDatabase(String userReference)
TaskCompletionSource userSource = new TaskCompletionSource<>();
Task userTask = userSource.getTask();
- DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + userReference);
+ DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + userReference);
userDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener()
{
@@ -129,7 +130,7 @@ public static boolean putInMap(HashMap> requestsReceiv
return flag;
}
- public static void updateTripList(ArrayList tripEntryList, TripEntry tripEntry)
+ public static void updateTripList(ArrayList tripEntryList, TripEntry tripEntry, boolean addToEnd)
{
Iterator iterator = tripEntryList.iterator();
@@ -150,7 +151,9 @@ public static void updateTripList(ArrayList tripEntryList, TripEntry
}
}
- tripEntryList.add(0, tripEntry);
+ if(addToEnd)
+ tripEntryList.add(tripEntryList.size(), tripEntry);
+ else tripEntryList.add(0, tripEntry);
}
public static Task populateReceivedRequestsList(ArrayList receivedRequestsList, HashMap> receivedRequestsMap, ArrayList tripEntries)
@@ -321,13 +324,13 @@ public static Long getCurrentTime()
return time;
}
- public static Task populateChatMap(DataSnapshot userData)
+ public static Task populateChatMap(DataSnapshot pairUpSnapshot)
{
final String[] userId = new String[1];
ArrayList pairUps = new ArrayList<>();
- for(DataSnapshot dataSnapshot: userData.child("pairUps").getChildren())
+ for(DataSnapshot dataSnapshot: pairUpSnapshot.getChildren())
pairUps.add(dataSnapshot.getValue(PairUp.class));
Task task = accessUserDatabase("users");
@@ -431,8 +434,8 @@ public static PairUp getPairUp(User user, HashMap pairUps)
public static void putMessageOnDB(Message message, User chatUser, User user)
{
- DatabaseReference chatUserMessageReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "messages/" + chatUser.getUserId());
- DatabaseReference userMessageReference = FirebaseDatabase.getInstance().getReference(Constants.UNI + "messages/" + user.getUserId());
+ DatabaseReference chatUserMessageReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "messages/" + chatUser.getUserId());
+ DatabaseReference userMessageReference = FirebaseDatabase.getInstance().getReference(Globals.UNI + "messages/" + user.getUserId());
String messageId = userMessageReference.push().getKey();
message.setMessageId(messageId);
@@ -505,6 +508,9 @@ public static TreeMap getPersonalMessageMap(HashMap
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index be8f9de..aecb69a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,10 +3,14 @@
Home
560852588496-baos0qb9om1qmvade33hbh1l2ic70l00.apps.googleusercontent.com
+ https://cdn.rawgit.com/divya21raj/06cb6b6dbe68b6eeecb9e2fa4da1337a/raw/3ff0f30047e536454c472ed6b673ce19bcf9c8e6/unipoolPp.html
+
New Entry
Requests
placeholder
+ divya21raj
+
Divya Raj
Abhishek Srivastava
Simran Srivastava
@@ -16,8 +20,9 @@
Getting your current location…
- v1.19
+ v1.23
CREATE ENTRY
Shiv Nadar University, NH91, Tehsil Dadri, Gautam Buddha Nagar, Greater Noida, Uttar Pradesh
+
diff --git a/build.gradle b/build.gradle
index 1edfde8..6d72921 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,14 +5,20 @@ buildscript {
maven {
url "https://maven.google.com"
}
+ maven {
+ url 'https://maven.fabric.io/public'
+ }
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.3'
+ classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.0.1'
+
+ classpath 'io.fabric.tools:gradle:1.25.4'
}
}