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' } }