Commit f58db83f authored by Sajal Narang's avatar Sajal Narang Committed by GitHub

Merge pull request #128 from pulsejet/moremisc

More misc things
parents c3a11ea2 395a9e1f
...@@ -264,7 +264,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -264,7 +264,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
} }
bundle.putString(Constants.SESSION_ID, session.pref.getString(Constants.SESSION_ID, "Error")); bundle.putString(Constants.SESSION_ID, session.pref.getString(Constants.SESSION_ID, "Error"));
if (fragment instanceof MessMenuFragment) if (fragment instanceof MessMenuFragment)
bundle.putString(Constants.USER_HOSTEL, currentUser.getHostel()); bundle.putString(Constants.USER_HOSTEL, session.isLoggedIn() ? currentUser.getHostel() : "1");
if (fragment instanceof SettingsFragment && session.isLoggedIn()) if (fragment instanceof SettingsFragment && session.isLoggedIn())
bundle.putString(Constants.USER_ID, currentUser.getUserID()); bundle.putString(Constants.USER_ID, currentUser.getUserID());
fragment.setArguments(bundle); fragment.setArguments(bundle);
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -10,9 +11,8 @@ import java.util.List; ...@@ -10,9 +11,8 @@ import java.util.List;
@Entity(tableName = "bodies") @Entity(tableName = "bodies")
public class Body { public class Body {
@PrimaryKey(autoGenerate = true) @NonNull()
int db_id; @PrimaryKey()
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String bodyID; String bodyID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -12,9 +13,8 @@ import java.util.List; ...@@ -12,9 +13,8 @@ import java.util.List;
@Entity(tableName = "events") @Entity(tableName = "events")
public class Event { public class Event {
@NonNull()
@PrimaryKey(autoGenerate = true) @PrimaryKey()
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String eventID; String eventID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -10,9 +11,8 @@ import java.util.List; ...@@ -10,9 +11,8 @@ import java.util.List;
@Entity(tableName = "hostelMessMenus") @Entity(tableName = "hostelMessMenus")
public class HostelMessMenu { public class HostelMessMenu {
@PrimaryKey(autoGenerate = true) @NonNull()
int db_id; @PrimaryKey()
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
private String menuID; private String menuID;
......
package in.ac.iitb.gymkhana.iitbapp.data; package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
public class MessMenu { public class MessMenu {
@NonNull()
@PrimaryKey()
@SerializedName("id") @SerializedName("id")
private String mealID; private String mealID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -11,10 +12,8 @@ import java.sql.Timestamp; ...@@ -11,10 +12,8 @@ import java.sql.Timestamp;
@Entity(tableName = "news") @Entity(tableName = "news")
public class NewsArticle { public class NewsArticle {
@NonNull()
@PrimaryKey(autoGenerate = true) @PrimaryKey()
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
private String articleID; private String articleID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -11,10 +12,8 @@ import java.sql.Timestamp; ...@@ -11,10 +12,8 @@ import java.sql.Timestamp;
@Entity(tableName = "placementBlogPosts") @Entity(tableName = "placementBlogPosts")
public class PlacementBlogPost { public class PlacementBlogPost {
@NonNull()
@PrimaryKey(autoGenerate = true) @PrimaryKey()
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
private String postID; private String postID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -12,10 +13,8 @@ import java.util.List; ...@@ -12,10 +13,8 @@ import java.util.List;
public class Role { public class Role {
@NonNull()
@PrimaryKey(autoGenerate = true) @PrimaryKey()
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String roleID; String roleID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -11,10 +12,8 @@ import java.sql.Timestamp; ...@@ -11,10 +12,8 @@ import java.sql.Timestamp;
@Entity(tableName = "trainingBlogPosts") @Entity(tableName = "trainingBlogPosts")
public class TrainingBlogPost { public class TrainingBlogPost {
@NonNull()
@PrimaryKey(autoGenerate = true) @PrimaryKey()
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
private String postID; private String postID;
......
...@@ -4,6 +4,7 @@ import android.arch.persistence.room.ColumnInfo; ...@@ -4,6 +4,7 @@ import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.Ignore; import android.arch.persistence.room.Ignore;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -12,9 +13,8 @@ import java.util.List; ...@@ -12,9 +13,8 @@ import java.util.List;
@Entity(tableName = "users") @Entity(tableName = "users")
public class User { public class User {
@PrimaryKey(autoGenerate = true) @NonNull()
int db_id; @PrimaryKey()
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String userID; String userID;
...@@ -70,8 +70,7 @@ public class User { ...@@ -70,8 +70,7 @@ public class User {
@Ignore @Ignore
String currentRole; String currentRole;
public User(int db_id, String userID, String userName, String userProfilePictureUrl, List<Event> userInterestedEvents, List<Event> userGoingEvents, String userEmail, String userRollNumber, String userContactNumber, String userAbout, List<Body> userFollowedBodies, List<String> userFollowedBodiesID, List<Role> userRoles, List<Role> userInstituteRoles, String userWebsiteURL, String userLDAPId, String hostel) { public User(@NonNull String userID, String userName, String userProfilePictureUrl, List<Event> userInterestedEvents, List<Event> userGoingEvents, String userEmail, String userRollNumber, String userContactNumber, String userAbout, List<Body> userFollowedBodies, List<String> userFollowedBodiesID, List<Role> userRoles, List<Role> userInstituteRoles, String userWebsiteURL, String userLDAPId, String hostel) {
this.db_id = db_id;
this.userID = userID; this.userID = userID;
this.userName = userName; this.userName = userName;
this.userProfilePictureUrl = userProfilePictureUrl; this.userProfilePictureUrl = userProfilePictureUrl;
......
...@@ -3,13 +3,14 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,13 +3,14 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
@Entity(tableName = "venues") @Entity(tableName = "venues")
public class Venue { public class Venue {
@PrimaryKey(autoGenerate = true) @NonNull()
int db_id; @PrimaryKey()
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String venueID; String venueID;
......
...@@ -115,7 +115,7 @@ public class BodyFragment extends Fragment { ...@@ -115,7 +115,7 @@ public class BodyFragment extends Fragment {
if (response.isSuccessful()) { if (response.isSuccessful()) {
Body body = response.body(); Body body = response.body();
new insertDbBody().execute(body); new updateDbBody().execute(body);
displayBody(body); displayBody(body);
bodySwipeRefreshLayout.setRefreshing(false); bodySwipeRefreshLayout.setRefreshing(false);
...@@ -130,7 +130,18 @@ public class BodyFragment extends Fragment { ...@@ -130,7 +130,18 @@ public class BodyFragment extends Fragment {
}); });
} }
private void setVisibleIfHasElements(int[] viewIds, List list) {
if (list != null && list.size() > 0) {
for (int viewId: viewIds){
getActivity().findViewById(viewId).setVisibility(View.VISIBLE);
}
}
}
private void displayBody(final Body body) { private void displayBody(final Body body) {
/* Skip if we're already destroyed */
if (getView() == null) return;
TextView bodyName = (TextView) getView().findViewById(R.id.body_name); TextView bodyName = (TextView) getView().findViewById(R.id.body_name);
TextView bodyDescription = (TextView) getView().findViewById(R.id.body_description); TextView bodyDescription = (TextView) getView().findViewById(R.id.body_description);
ImageView eventPicture = (ImageView) getActivity().findViewById(R.id.body_picture); ImageView eventPicture = (ImageView) getActivity().findViewById(R.id.body_picture);
...@@ -138,6 +149,12 @@ public class BodyFragment extends Fragment { ...@@ -138,6 +149,12 @@ public class BodyFragment extends Fragment {
ImageButton shareBodyButton = getActivity().findViewById(R.id.share_body_button); ImageButton shareBodyButton = getActivity().findViewById(R.id.share_body_button);
final Button followButton = getActivity().findViewById(R.id.follow_button); final Button followButton = getActivity().findViewById(R.id.follow_button);
/* Show relevant card titles */
setVisibleIfHasElements(new int[]{R.id.body_events_title, R.id.event_card_recycler_view}, body.getBodyEvents());
setVisibleIfHasElements(new int[]{R.id.body_orgs_title, R.id.org_card_recycler_view}, body.getBodyChildren());
setVisibleIfHasElements(new int[]{R.id.body_parents_title, R.id.parentorg_card_recycler_view}, body.getBodyParents());
setVisibleIfHasElements(new int[]{R.id.body_people_title, R.id.people_card_recycler_view}, body.getBodyRoles());
/* Set body information */ /* Set body information */
bodyName.setText(body.getBodyName()); bodyName.setText(body.getBodyName());
Picasso.with(getContext()).load(body.getBodyImageURL()).into(eventPicture); Picasso.with(getContext()).load(body.getBodyImageURL()).into(eventPicture);
...@@ -306,15 +323,11 @@ public class BodyFragment extends Fragment { ...@@ -306,15 +323,11 @@ public class BodyFragment extends Fragment {
private class updateDbBody extends AsyncTask<Body, Void, Integer> { private class updateDbBody extends AsyncTask<Body, Void, Integer> {
@Override @Override
protected Integer doInBackground(Body... body) { protected Integer doInBackground(Body... body) {
if (appDatabase.dbDao().getBody(body[0].getBodyID()).length > 0) {
appDatabase.dbDao().updateBody(body[0]); appDatabase.dbDao().updateBody(body[0]);
return 1; } else {
}
}
private class insertDbBody extends AsyncTask<Body, Void, Integer> {
@Override
protected Integer doInBackground(Body... body) {
appDatabase.dbDao().insertBody(body[0]); appDatabase.dbDao().insertBody(body[0]);
}
return 1; return 1;
} }
} }
......
...@@ -11,6 +11,7 @@ import android.view.LayoutInflater; ...@@ -11,6 +11,7 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CalendarView; import android.widget.CalendarView;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -134,6 +135,8 @@ public class CalendarFragment extends BaseFragment { ...@@ -134,6 +135,8 @@ public class CalendarFragment extends BaseFragment {
} }
private void showEventsForDate(Date date) { private void showEventsForDate(Date date) {
/* Skip if we're already destroyed */
if (getActivity() == null) return;
final List<Event> filteredEvents = new ArrayList<Event>(); final List<Event> filteredEvents = new ArrayList<Event>();
for (Event event : events) { for (Event event : events) {
...@@ -144,6 +147,16 @@ public class CalendarFragment extends BaseFragment { ...@@ -144,6 +147,16 @@ public class CalendarFragment extends BaseFragment {
} }
} }
/* Show number of events */
TextView noEvents = getActivity().findViewById(R.id.number_of_events);
if (filteredEvents.size() == 0) {
noEvents.setText("No Events");
} else if (filteredEvents.size() == 1) {
noEvents.setText("1 Event");
} else {
noEvents.setText(Integer.toString(filteredEvents.size()) + " Events");
}
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view); RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view);
FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, new ItemClickListener() { FeedAdapter eventAdapter = new FeedAdapter(filteredEvents, new ItemClickListener() {
@Override @Override
......
...@@ -42,6 +42,7 @@ public class FeedFragment extends BaseFragment { ...@@ -42,6 +42,7 @@ public class FeedFragment extends BaseFragment {
private SwipeRefreshLayout feedSwipeRefreshLayout; private SwipeRefreshLayout feedSwipeRefreshLayout;
private AppDatabase appDatabase; private AppDatabase appDatabase;
private FloatingActionButton fab; private FloatingActionButton fab;
private boolean freshEventsDisplayed = false;
public FeedFragment() { public FeedFragment() {
// Required empty public constructor // Required empty public constructor
...@@ -98,6 +99,7 @@ public class FeedFragment extends BaseFragment { ...@@ -98,6 +99,7 @@ public class FeedFragment extends BaseFragment {
if (response.isSuccessful()) { if (response.isSuccessful()) {
NewsFeedResponse newsFeedResponse = response.body(); NewsFeedResponse newsFeedResponse = response.body();
List<Event> events = newsFeedResponse.getEvents(); List<Event> events = newsFeedResponse.getEvents();
freshEventsDisplayed = true;
displayEvents(events); displayEvents(events);
new updateDatabase().execute(events); new updateDatabase().execute(events);
...@@ -115,6 +117,9 @@ public class FeedFragment extends BaseFragment { ...@@ -115,6 +117,9 @@ public class FeedFragment extends BaseFragment {
} }
private void displayEvents(final List<Event> events) { private void displayEvents(final List<Event> events) {
/* Skip if we're already destroyed */
if (getActivity() == null) return;
final FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() { final FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() {
@Override @Override
public void onItemClick(View v, int position) { public void onItemClick(View v, int position) {
...@@ -163,7 +168,9 @@ public class FeedFragment extends BaseFragment { ...@@ -163,7 +168,9 @@ public class FeedFragment extends BaseFragment {
} }
protected void onPostExecute(List<Event> result) { protected void onPostExecute(List<Event> result) {
if (!freshEventsDisplayed) {
displayEvents(result); displayEvents(result);
} }
} }
}
} }
...@@ -15,7 +15,10 @@ import android.widget.AdapterView; ...@@ -15,7 +15,10 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Spinner; import android.widget.Spinner;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.Locale;
import in.ac.iitb.gymkhana.iitbapp.ActivityBuffer; import in.ac.iitb.gymkhana.iitbapp.ActivityBuffer;
import in.ac.iitb.gymkhana.iitbapp.Constants; import in.ac.iitb.gymkhana.iitbapp.Constants;
...@@ -25,6 +28,7 @@ import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface; ...@@ -25,6 +28,7 @@ import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator; import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator;
import in.ac.iitb.gymkhana.iitbapp.data.AppDatabase; import in.ac.iitb.gymkhana.iitbapp.data.AppDatabase;
import in.ac.iitb.gymkhana.iitbapp.data.HostelMessMenu; import in.ac.iitb.gymkhana.iitbapp.data.HostelMessMenu;
import in.ac.iitb.gymkhana.iitbapp.data.MessMenu;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
...@@ -133,7 +137,29 @@ public class MessMenuFragment extends BaseFragment { ...@@ -133,7 +137,29 @@ public class MessMenuFragment extends BaseFragment {
} }
private void displayMessMenu(HostelMessMenu hostelMessMenu) { private void displayMessMenu(HostelMessMenu hostelMessMenu) {
final MessMenuAdapter messMenuAdapter = new MessMenuAdapter(hostelMessMenu.getMessMenus()); /* Skip if we're already destroyed */
if (getActivity() == null) return;
List<MessMenu> messMenus = hostelMessMenu.getMessMenus();
/* Sort by day starting today
* This could have been done in a much simpler way with Java 8 :(
* Don't try to fix this */
final List<MessMenu> sortedMenus = new ArrayList();
final Calendar calendar = Calendar.getInstance(Locale.UK);
int today = calendar.get(Calendar.DAY_OF_WEEK) - 2;
if (today == -1) { today = 6; }
for (int i = 0; i < 7; i++) {
final int day = (today + i) % 7 + 1;
for(MessMenu menu : messMenus) {
if(menu.getDay() == day) {
sortedMenus.add(menu);
}
}
}
final MessMenuAdapter messMenuAdapter = new MessMenuAdapter(sortedMenus);
getActivityBuffer().safely(new ActivityBuffer.IRunnable() { getActivityBuffer().safely(new ActivityBuffer.IRunnable() {
@Override @Override
public void run(Activity pActivity) { public void run(Activity pActivity) {
......
...@@ -37,6 +37,7 @@ public class NewsFragment extends BaseFragment { ...@@ -37,6 +37,7 @@ public class NewsFragment extends BaseFragment {
private RecyclerView newsRecyclerView; private RecyclerView newsRecyclerView;
private SwipeRefreshLayout newsSwipeRefreshLayout; private SwipeRefreshLayout newsSwipeRefreshLayout;
private AppDatabase appDatabase; private AppDatabase appDatabase;
private boolean freshNewsDisplayed = false;
public NewsFragment() { public NewsFragment() {
// Required empty public constructor // Required empty public constructor
...@@ -75,6 +76,7 @@ public class NewsFragment extends BaseFragment { ...@@ -75,6 +76,7 @@ public class NewsFragment extends BaseFragment {
public void onResponse(Call<List<NewsArticle>> call, Response<List<NewsArticle>> response) { public void onResponse(Call<List<NewsArticle>> call, Response<List<NewsArticle>> response) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
List<NewsArticle> articles = response.body(); List<NewsArticle> articles = response.body();
freshNewsDisplayed = true;
displayNews(articles); displayNews(articles);
new updateDatabase().execute(articles); new updateDatabase().execute(articles);
...@@ -92,6 +94,9 @@ public class NewsFragment extends BaseFragment { ...@@ -92,6 +94,9 @@ public class NewsFragment extends BaseFragment {
} }
private void displayNews(final List<NewsArticle> result) { private void displayNews(final List<NewsArticle> result) {
/* Skip if we're already destroyed */
if (getActivity() == null) return;
final NewsAdapter newsAdapter = new NewsAdapter(result, new ItemClickListener() { final NewsAdapter newsAdapter = new NewsAdapter(result, new ItemClickListener() {
@Override @Override
public void onItemClick(View v, int position) { public void onItemClick(View v, int position) {
...@@ -134,7 +139,9 @@ public class NewsFragment extends BaseFragment { ...@@ -134,7 +139,9 @@ public class NewsFragment extends BaseFragment {
} }
protected void onPostExecute(List<NewsArticle> result) { protected void onPostExecute(List<NewsArticle> result) {
if (!freshNewsDisplayed) {
displayNews(result); displayNews(result);
} }
} }
}
} }
...@@ -37,6 +37,7 @@ public class PlacementBlogFragment extends BaseFragment { ...@@ -37,6 +37,7 @@ public class PlacementBlogFragment extends BaseFragment {
private RecyclerView placementFeedRecyclerView; private RecyclerView placementFeedRecyclerView;
private SwipeRefreshLayout feedSwipeRefreshLayout; private SwipeRefreshLayout feedSwipeRefreshLayout;
private AppDatabase appDatabase; private AppDatabase appDatabase;
private boolean freshBlogDisplayed = false;
public PlacementBlogFragment() { public PlacementBlogFragment() {
...@@ -76,6 +77,7 @@ public class PlacementBlogFragment extends BaseFragment { ...@@ -76,6 +77,7 @@ public class PlacementBlogFragment extends BaseFragment {
public void onResponse(Call<List<PlacementBlogPost>> call, Response<List<PlacementBlogPost>> response) { public void onResponse(Call<List<PlacementBlogPost>> call, Response<List<PlacementBlogPost>> response) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
List<PlacementBlogPost> posts = response.body(); List<PlacementBlogPost> posts = response.body();
freshBlogDisplayed = true;
displayPlacementFeed(posts); displayPlacementFeed(posts);
new updateDatabase().execute(posts); new updateDatabase().execute(posts);
...@@ -93,6 +95,9 @@ public class PlacementBlogFragment extends BaseFragment { ...@@ -93,6 +95,9 @@ public class PlacementBlogFragment extends BaseFragment {
} }
private void displayPlacementFeed(final List<PlacementBlogPost> result) { private void displayPlacementFeed(final List<PlacementBlogPost> result) {
/* Skip if we're already destroyed */
if (getActivity() == null) return;
final PlacementBlogAdapter placementBlogAdapter = new PlacementBlogAdapter(result, new ItemClickListener() { final PlacementBlogAdapter placementBlogAdapter = new PlacementBlogAdapter(result, new ItemClickListener() {
@Override @Override
public void onItemClick(View v, int position) { public void onItemClick(View v, int position) {
...@@ -135,7 +140,9 @@ public class PlacementBlogFragment extends BaseFragment { ...@@ -135,7 +140,9 @@ public class PlacementBlogFragment extends BaseFragment {
} }
protected void onPostExecute(List<PlacementBlogPost> result) { protected void onPostExecute(List<PlacementBlogPost> result) {
if (!freshBlogDisplayed) {
displayPlacementFeed(result); displayPlacementFeed(result);
} }
} }
}
} }
...@@ -72,7 +72,11 @@ public class SettingsFragment extends Fragment { ...@@ -72,7 +72,11 @@ public class SettingsFragment extends Fragment {
ImageView userProfilePictureImageView = getActivity().findViewById(R.id.user_card_avatar); ImageView userProfilePictureImageView = getActivity().findViewById(R.id.user_card_avatar);
TextView userNameTextView = getActivity().findViewById(R.id.user_card_name); TextView userNameTextView = getActivity().findViewById(R.id.user_card_name);
Picasso.with(getContext()).load(user.getUserProfilePictureUrl()).into(userProfilePictureImageView); Picasso.with(getContext())
.load(user.getUserProfilePictureUrl())
.resize(800, 0)
.placeholder(R.drawable.user_placeholder)
.into(userProfilePictureImageView);
userNameTextView.setText(user.getUserName()); userNameTextView.setText(user.getUserName());
Button updateProfileButton = getActivity().findViewById(R.id.settings_update_profile); Button updateProfileButton = getActivity().findViewById(R.id.settings_update_profile);
......
...@@ -37,6 +37,7 @@ public class TrainingBlogFragment extends BaseFragment { ...@@ -37,6 +37,7 @@ public class TrainingBlogFragment extends BaseFragment {
private RecyclerView trainingFeedRecyclerView; private RecyclerView trainingFeedRecyclerView;
private SwipeRefreshLayout feedSwipeRefreshLayout; private SwipeRefreshLayout feedSwipeRefreshLayout;
private AppDatabase appDatabase; private AppDatabase appDatabase;
private boolean freshBlogDisplayed = false;
public TrainingBlogFragment() { public TrainingBlogFragment() {
...@@ -76,6 +77,7 @@ public class TrainingBlogFragment extends BaseFragment { ...@@ -76,6 +77,7 @@ public class TrainingBlogFragment extends BaseFragment {
public void onResponse(Call<List<TrainingBlogPost>> call, Response<List<TrainingBlogPost>> response) { public void onResponse(Call<List<TrainingBlogPost>> call, Response<List<TrainingBlogPost>> response) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
List<TrainingBlogPost> posts = response.body(); List<TrainingBlogPost> posts = response.body();
freshBlogDisplayed = true;
displayTrainingFeed(posts); displayTrainingFeed(posts);
new updateDatabase().execute(posts); new updateDatabase().execute(posts);
...@@ -93,6 +95,9 @@ public class TrainingBlogFragment extends BaseFragment { ...@@ -93,6 +95,9 @@ public class TrainingBlogFragment extends BaseFragment {
} }
private void displayTrainingFeed(final List<TrainingBlogPost> result) { private void displayTrainingFeed(final List<TrainingBlogPost> result) {
/* Skip if we're already destroyed */
if (getActivity() == null) return;
final TrainingBlogAdapter trainingBlogAdapter = new TrainingBlogAdapter(result, new ItemClickListener() { final TrainingBlogAdapter trainingBlogAdapter = new TrainingBlogAdapter(result, new ItemClickListener() {
@Override @Override
public void onItemClick(View v, int position) { public void onItemClick(View v, int position) {
...@@ -135,7 +140,9 @@ public class TrainingBlogFragment extends BaseFragment { ...@@ -135,7 +140,9 @@ public class TrainingBlogFragment extends BaseFragment {
} }
protected void onPostExecute(List<TrainingBlogPost> result) { protected void onPostExecute(List<TrainingBlogPost> result) {
if (!freshBlogDisplayed) {
displayTrainingFeed(result); displayTrainingFeed(result);
} }
} }
}
} }
...@@ -44,7 +44,10 @@ ...@@ -44,7 +44,10 @@
android:id="@+id/body_card_description" android:id="@+id/body_card_description"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Description" /> android:text="Description"
android:scrollHorizontally="true"
android:ellipsize="end"
android:maxLines="1" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -78,7 +78,9 @@ ...@@ -78,7 +78,9 @@
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end" android:ellipsize="end"
android:text="LH 101" /> android:text="LH 101"
android:scrollHorizontally="true"
android:maxLines="1"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -127,6 +127,8 @@ ...@@ -127,6 +127,8 @@
android:textSize="16sp" /> android:textSize="16sp" />
<TextView <TextView
android:id="@+id/body_events_title"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
...@@ -136,12 +138,15 @@ ...@@ -136,12 +138,15 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/event_card_recycler_view" android:id="@+id/event_card_recycler_view"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
android:nestedScrollingEnabled="false" /> android:nestedScrollingEnabled="false" />
<TextView <TextView
android:id="@+id/body_orgs_title"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
...@@ -151,12 +156,15 @@ ...@@ -151,12 +156,15 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/org_card_recycler_view" android:id="@+id/org_card_recycler_view"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
android:nestedScrollingEnabled="false" /> android:nestedScrollingEnabled="false" />
<TextView <TextView
android:id="@+id/body_people_title"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
...@@ -166,12 +174,15 @@ ...@@ -166,12 +174,15 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/people_card_recycler_view" android:id="@+id/people_card_recycler_view"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
android:nestedScrollingEnabled="false" /> android:nestedScrollingEnabled="false" />
<TextView <TextView
android:id="@+id/body_parents_title"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
...@@ -181,9 +192,10 @@ ...@@ -181,9 +192,10 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/parentorg_card_recycler_view" android:id="@+id/parentorg_card_recycler_view"
android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
android:nestedScrollingEnabled="false" /> android:nestedScrollingEnabled="false" />
</LinearLayout> </LinearLayout>
......
...@@ -41,13 +41,14 @@ ...@@ -41,13 +41,14 @@
android:background="@android:color/darker_gray" /> android:background="@android:color/darker_gray" />
<TextView <TextView
android:id="@+id/number_of_events"
android:layout_width="120dp" android:layout_width="120dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_below="@id/simpleCalendarView" android:layout_below="@id/simpleCalendarView"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:background="@drawable/round_text_box" android:background="@drawable/round_text_box"
android:gravity="center" android:gravity="center"
android:text="# Events Today" android:text="No Events"
android:textColor="@color/secondaryTextColor" /> android:textColor="@color/secondaryTextColor" />
</RelativeLayout> </RelativeLayout>
......
...@@ -17,20 +17,20 @@ ...@@ -17,20 +17,20 @@
android:layout_width="64dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="64dp"
android:paddingTop="@dimen/nav_header_vertical_spacing" android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@mipmap/ic_launcher_round" /> android:src="@drawable/user_placeholder" />
<TextView <TextView
android:id="@+id/user_name_nav_header" android:id="@+id/user_name_nav_header"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing" android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="Android Studio" android:text="Guest"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView <TextView
android:id="@+id/user_rollno_nav_header" android:id="@+id/user_rollno_nav_header"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="android.studio@android.com" /> android:text="IITB User" />
</LinearLayout> </LinearLayout>
...@@ -44,7 +44,10 @@ ...@@ -44,7 +44,10 @@
android:id="@+id/role_card_role" android:id="@+id/role_card_role"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Role" /> android:text="Role"
android:scrollHorizontally="true"
android:ellipsize="end"
android:maxLines="1" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment