Commit 143b9855 authored by Preetam Ozarde's avatar Preetam Ozarde

Update minor changes

parent 149badff
......@@ -3,11 +3,11 @@ package app.insti;
/**
* Created by Shivam Sharma on 13-08-2018.
*/
public class TagClass {
public class ComplaintTag {
private String name;
public TagClass(String name) {
public ComplaintTag(String name) {
this.name = name;
}
......
......@@ -20,6 +20,7 @@ public class Constants {
public static final String IS_LOGGED_IN = "IsLoggedIn";
public static final String GCM_ID = "GcmId";
public static final String CURRENT_USER = "current_user";
public static final String CURRENT_USER_PROFILE_PICTURE = "current_user_profile_picture";
public static final String SESSION_ID = "session_id";
public static final int STATUS_GOING = 2;
public static final int STATUS_INTERESTED = 1;
......
......@@ -55,10 +55,8 @@ import app.insti.api.model.Role;
import app.insti.api.model.User;
import app.insti.api.request.UserFCMPatchRequest;
import app.insti.fragment.BackHandledFragment;
import app.insti.fragment.BodyFragment;
import app.insti.fragment.CalendarFragment;
import app.insti.fragment.ComplaintFragment;
import app.insti.fragment.EventFragment;
import app.insti.fragment.ComplaintsFragment;
import app.insti.fragment.ExploreFragment;
import app.insti.fragment.FeedFragment;
import app.insti.fragment.FileComplaintFragment;
......@@ -530,8 +528,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
case R.id.nav_complaint:
if (session.isLoggedIn()) {
ComplaintFragment complaintFragment = new ComplaintFragment();
updateFragment(complaintFragment);
ComplaintsFragment complaintsFragment = new ComplaintsFragment();
updateFragment(complaintsFragment);
} else {
Toast.makeText(this, Constants.LOGIN_MESSAGE, Toast.LENGTH_LONG).show();
}
......@@ -577,8 +575,12 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
bundle.putString(Constants.SESSION_ID, session.pref.getString(Constants.SESSION_ID, ""));
if (fragment instanceof MessMenuFragment)
bundle.putString(Constants.USER_HOSTEL, session.isLoggedIn() && currentUser.getHostel() != null ? currentUser.getHostel() : "1");
if (fragment instanceof SettingsFragment && session.isLoggedIn() || fragment instanceof ComplaintFragment && session.isLoggedIn())
if (fragment instanceof SettingsFragment && session.isLoggedIn())
bundle.putString(Constants.USER_ID, currentUser.getUserID());
if (fragment instanceof ComplaintsFragment && session.isLoggedIn()){
bundle.putString(Constants.USER_ID, currentUser.getUserID());
bundle.putString(Constants.CURRENT_USER_PROFILE_PICTURE, currentUser.getUserProfilePictureUrl());
}
fragment.setArguments(bundle);
FragmentManager manager = getSupportFragmentManager();
if (fragment instanceof FeedFragment)
......
......@@ -5,6 +5,7 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
......@@ -12,8 +13,6 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;
......@@ -25,7 +24,6 @@ import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.activity.MainActivity;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Venter;
import app.insti.utils.DateTimeUtil;
......@@ -38,25 +36,27 @@ import retrofit2.Response;
* Created by Shivam Sharma on 23-09-2018.
*/
public class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public class CommentsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String TAG = CommentRecyclerViewAdapter.class.getSimpleName();
private static final String TAG = CommentsAdapter.class.getSimpleName();
private Context context;
private LayoutInflater inflater;
private String sessionId, userId;
Activity activity;
private TextView textViewCommentLabel;
TextView textViewCommentLabel;
private Fragment fragment;
private List<Venter.Comment> commentList = new ArrayList<>();
public CommentRecyclerViewAdapter(Activity activity, Context context, String sessionId, String userId, TextView textViewCommentLabel) {
public CommentsAdapter(Activity activity, Context context, String sessionId, String userId, TextView textViewCommentLabel, Fragment fragment) {
this.context = context;
this.sessionId = sessionId;
this.userId = userId;
inflater = LayoutInflater.from(context);
this.activity = activity;
this.textViewCommentLabel = textViewCommentLabel;
this.fragment =fragment;
}
public class CommentsViewHolder extends RecyclerView.ViewHolder {
......@@ -66,7 +66,7 @@ public class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVie
private TextView textViewName;
private TextView textViewCommentTime;
private TextView textViewComment;
final RetrofitInterface retrofitInterface = Utils.getRetrofitInterface();
private final RetrofitInterface retrofitInterface = Utils.getRetrofitInterface();
public CommentsViewHolder(View itemView) {
super(itemView);
......@@ -83,10 +83,7 @@ public class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVie
try {
String profileUrl = comment.getUser().getUserProfilePictureUrl();
Log.i(TAG, "PROFILE URL: " + profileUrl);
if (profileUrl != null)
Picasso.get().load(profileUrl).into(circleImageView);
else
Picasso.get().load(R.drawable.baseline_account_circle_black_36).into(circleImageView);
Picasso.get().load(profileUrl).placeholder(R.drawable.user_placeholder).into(circleImageView);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -124,7 +121,6 @@ public class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVie
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful()) {
Toast.makeText(context, "Comment Deleted", Toast.LENGTH_SHORT).show();
commentList.remove(position);
notifyDataSetChanged();
notifyItemRemoved(position);
......@@ -156,7 +152,14 @@ public class CommentRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVie
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.comments_card, parent, false);
CommentsViewHolder commentsViewHolder = new CommentsViewHolder(view);
final CommentsViewHolder commentsViewHolder = new CommentsViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utils.openUserFragment(commentList.get(commentsViewHolder.getAdapterPosition()).getUser(), fragment.getActivity());
}
});
return commentsViewHolder;
}
......
......@@ -6,8 +6,7 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import app.insti.api.model.Venter;
import app.insti.fragment.DetailedComplaintFragment;
import app.insti.fragment.RelevantComplaintsFragment;
import app.insti.fragment.ComplaintDetailsFragment;
/**
* Created by Shivam Sharma on 19-09-2018.
......@@ -17,35 +16,33 @@ public class ComplaintDetailsPagerAdapter extends FragmentPagerAdapter {
Venter.Complaint detailedComplaint;
Context context;
String sessionid, complaintid, userid;
int voteCount;
private String sessionid, complaintid, userid, userProfileUrl;
public ComplaintDetailsPagerAdapter(FragmentManager fm, Venter.Complaint detailedComplaint, Context context, String sessionid, String complaintid, String userid, int voteCount) {
public ComplaintDetailsPagerAdapter(FragmentManager fm, Venter.Complaint detailedComplaint, Context context, String sessionid, String complaintid, String userid, String userProfileUrl) {
super(fm);
this.context = context;
this.detailedComplaint = detailedComplaint;
this.sessionid = sessionid;
this.complaintid = complaintid;
this.userid = userid;
this.voteCount = voteCount;
this.userProfileUrl = userProfileUrl;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return DetailedComplaintFragment.getInstance(sessionid, complaintid, userid, voteCount);
return DetailedComplaintFragment.getInstance(sessionid, complaintid, userid);
case 1:
return RelevantComplaintsFragment.getInstance(sessionid, userid);
return ComplaintDetailsFragment.getInstance(sessionid, complaintid, userid, userProfileUrl);
/* case 1:
return RelevantComplaintsFragment.getInstance(sessionid, userid);*/
default:
return DetailedComplaintFragment.getInstance(sessionid, complaintid, userid, voteCount);
return ComplaintDetailsFragment.getInstance(sessionid, complaintid, userid, userProfileUrl);
}
}
@Override
public CharSequence getPageTitle(int position) {
if (position == 0){
if (position == 0) {
return "Complaint Details";
} else {
return "Relevant Complaints";
......
......@@ -6,8 +6,8 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import app.insti.fragment.HomeFragment;
import app.insti.fragment.MeFragment;
import app.insti.fragment.ComplaintsHomeFragment;
import app.insti.fragment.ComplaintsMeFragment;
/**
* Created by Shivam Sharma on 15-08-2018.
......@@ -15,26 +15,26 @@ import app.insti.fragment.MeFragment;
public class ComplaintFragmentViewPagerAdapter extends FragmentStatePagerAdapter {
private static final String TAG = ComplaintFragmentViewPagerAdapter.class.getSimpleName();
Context context;
String userID, sessionID;
private String userID, sessionID, userProfileUrl;
public ComplaintFragmentViewPagerAdapter(FragmentManager fm, Context context, String userID, String sessionID) {
public ComplaintFragmentViewPagerAdapter(FragmentManager fm, Context context, String userID, String sessionID, String userProfileUrl) {
super(fm);
this.context = context;
this.userID = userID;
this.sessionID = sessionID;
this.userProfileUrl = userProfileUrl;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return HomeFragment.getInstance(sessionID, userID);
return ComplaintsHomeFragment.getInstance(sessionID, userID, userProfileUrl);
case 1:
return MeFragment.getInstance(sessionID,userID);
return ComplaintsMeFragment.getInstance(sessionID,userID, userProfileUrl);
default:
return HomeFragment.getInstance(sessionID, userID);
return ComplaintsHomeFragment.getInstance(sessionID, userID, userProfileUrl);
}
}
......
......@@ -2,36 +2,26 @@ package app.insti.adapter;
import android.app.Activity;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.TimeZone;
import app.insti.R;
import app.insti.Utils;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.User;
import app.insti.api.model.Venter;
import app.insti.fragment.ComplaintDetailsFragment;
import app.insti.fragment.ComplaintFragment;
import app.insti.utils.DateTimeUtil;
import app.insti.utils.GsonProvider;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
......@@ -40,14 +30,15 @@ import retrofit2.Response;
* Created by Shivam Sharma on 15-08-2018.
*/
public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public class ComplaintsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private LayoutInflater inflater;
private Activity context;
private String sessionID;
private String userID;
private static final String TAG = ComplaintsRecyclerViewAdapter.class.getSimpleName();
List<Venter.Complaint> complaintList = new ArrayList<>();
private String userProfileUrl;
private static final String TAG = ComplaintsAdapter.class.getSimpleName();
private List<Venter.Complaint> complaintList = new ArrayList<>();
public class ComplaintsViewHolder extends RecyclerView.ViewHolder {
......@@ -61,9 +52,7 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
private TextView textViewUserName;
private TextView textViewReportDate;
private TextView textViewStatus;
private int pos;
private int voteCount = 0;
public ComplaintsViewHolder(View currentView) {
super(currentView);
......@@ -81,7 +70,6 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
public void bindHolder(final int position) {
this.pos = position;
Log.i(TAG, "json = " + GsonProvider.getGsonOutput().toJson(complaintList.get(pos)));
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -89,10 +77,11 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
bundle.putString("id", complaintList.get(pos).getComplaintID());
bundle.putString("sessionId", sessionID);
bundle.putString("userId", userID);
ComplaintDetailsFragment complaintDetailsFragment = new ComplaintDetailsFragment();
complaintDetailsFragment.setArguments(bundle);
bundle.putString("userProfileUrl", userProfileUrl);
ComplaintFragment complaintFragment = new ComplaintFragment();
complaintFragment.setArguments(bundle);
AppCompatActivity activity = (AppCompatActivity) context;
activity.getSupportFragmentManager().beginTransaction().replace(R.id.framelayout_for_fragment, complaintDetailsFragment).addToBackStack(TAG).commit();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.framelayout_for_fragment, complaintFragment).addToBackStack(TAG).commit();
}
});
......@@ -124,18 +113,19 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
bundle.putString("id", complaintList.get(pos).getComplaintID());
bundle.putString("sessionId", sessionID);
bundle.putString("userId", userID);
ComplaintDetailsFragment complaintDetailsFragment = new ComplaintDetailsFragment();
complaintDetailsFragment.setArguments(bundle);
bundle.putString("userProfileUrl", userProfileUrl);
ComplaintFragment complaintFragment = new ComplaintFragment();
complaintFragment.setArguments(bundle);
AppCompatActivity activity = (AppCompatActivity) context;
activity.getSupportFragmentManager().beginTransaction().replace(R.id.framelayout_for_fragment, complaintDetailsFragment).addToBackStack(TAG).commit();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.framelayout_for_fragment, complaintFragment).addToBackStack(TAG).commit();
}
});
buttonVotes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (voteCount == 0) {
if (complaintList.get(position).getVoteCount() == 0) {
RetrofitInterface retrofitInterface = Utils.getRetrofitInterface();
retrofitInterface.upVote("sessionid=" + sessionID, complaintList.get(pos).getComplaintID()).enqueue(new Callback<Venter.Complaint>() {
retrofitInterface.upVote("sessionid=" + sessionID, complaintList.get(pos).getComplaintID(), 1).enqueue(new Callback<Venter.Complaint>() {
@Override
public void onResponse(Call<Venter.Complaint> call, Response<Venter.Complaint> response) {
if (response.isSuccessful()) {
......@@ -143,8 +133,26 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (complaint != null) {
textViewVotes.setText(String.valueOf(complaint.getUsersUpVoted().size()));
}
Toast.makeText(context, "You have Up Voted this complaint", Toast.LENGTH_SHORT).show();
voteCount++;
complaintList.get(position).setVoteCount(1);
}
}
@Override
public void onFailure(Call<Venter.Complaint> call, Throwable t) {
Log.i(TAG, "failure in up vote: " + t.toString());
}
});
} else if (complaintList.get(position).getVoteCount() == 1) {
RetrofitInterface retrofitInterface = Utils.getRetrofitInterface();
retrofitInterface.upVote("sessionid=" + sessionID, complaintList.get(pos).getComplaintID(), 0).enqueue(new Callback<Venter.Complaint>() {
@Override
public void onResponse(Call<Venter.Complaint> call, Response<Venter.Complaint> response) {
if (response.isSuccessful()) {
Venter.Complaint complaint = response.body();
if (complaint != null) {
textViewVotes.setText(String.valueOf(complaint.getUsersUpVoted().size()));
}
complaintList.get(position).setVoteCount(0);
}
}
......@@ -153,8 +161,6 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
Log.i(TAG, "failure in up vote: " + t.toString());
}
});
} else {
Toast.makeText(context, "You have already UpVoted this complaint", Toast.LENGTH_SHORT).show();
}
}
});
......@@ -164,10 +170,11 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
}
}
public ComplaintsRecyclerViewAdapter(Activity ctx, String sessionID, String userID) {
public ComplaintsAdapter(Activity ctx, String sessionID, String userID, String userProfileUrl) {
this.context = ctx;
this.sessionID = sessionID;
this.userID = userID;
this.userProfileUrl = userProfileUrl;
inflater = LayoutInflater.from(ctx);
}
......@@ -181,6 +188,13 @@ public class ComplaintsRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
List<User> userList = complaintList.get(position).getUsersUpVoted();
for (User user : userList) {
if (user.getUserID().equals(userID))
complaintList.get(position).setVoteCount(1);
else
complaintList.get(position).setVoteCount(0);
}
if (viewHolder instanceof ComplaintsViewHolder) {
((ComplaintsViewHolder) viewHolder).bindHolder(position);
}
......
package app.insti.adapter;
import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.api.model.User;
import de.hdodenhof.circleimageview.CircleImageView;
public class UpVotesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String TAG = CommentsAdapter.class.getSimpleName();
Context context;
private LayoutInflater inflater;
String sessionId, userId;
Activity activity;
TextView textViewUserUpVoteName;
private Fragment fragment;
LinearLayout layoutUpVote;
private List<User> userList = new ArrayList<>();
public UpVotesAdapter(Activity activity, Context context, String sessionId, String userId, TextView textViewUserUpVoteName, Fragment fragment) {
this.context = context;
this.sessionId = sessionId;
this.userId = userId;
inflater = LayoutInflater.from(context);
this.activity = activity;
this.textViewUserUpVoteName = textViewUserUpVoteName;
this.fragment = fragment;
}
public class UpVotesViewHolder extends RecyclerView.ViewHolder {
private CardView cardView;
private CircleImageView circleImageView;
private TextView textViewName;
public UpVotesViewHolder(View itemView) {
super(itemView);
cardView = itemView.findViewById(R.id.cardViewUpVote);
textViewName = itemView.findViewById(R.id.textViewUserUpVoteName);
circleImageView = itemView.findViewById(R.id.circleImageViewUserUpVoteImage);
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utils.openUserFragment(userList.get(getAdapterPosition()), fragment.getActivity());
}
});
}
public void bindHolder(final int position) {
final User user = userList.get(position);
try {
String profileUrl = user.getUserProfilePictureUrl();
Log.i(TAG, "PROFILE URL: " + profileUrl);
Picasso.get().load(profileUrl).placeholder(R.drawable.user_placeholder).into(circleImageView);
textViewName.setText(user.getUserName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = inflater.inflate(R.layout.vote_up_card, viewGroup, false);
final UpVotesViewHolder upVotesViewHolder = new UpVotesViewHolder(view);
layoutUpVote = view.findViewById(R.id.layoutUpVote);
return upVotesViewHolder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof UpVotesViewHolder) {
((UpVotesViewHolder) viewHolder).bindHolder(i);
}
}
@Override
public int getItemCount() {
return userList.size();
}
public void setUpVoteList(List<User> userList) {
this.userList = userList;
}
}
\ No newline at end of file
......@@ -21,8 +21,8 @@ import com.google.android.gms.maps.model.MarkerOptions;
public class LocationAPIUtils {
private static final String TAG = LocationAPIUtils.class.getSimpleName();
GoogleMap googleMap;
MapView mMapView;
private GoogleMap googleMap;
private MapView mMapView;
public LocationAPIUtils(GoogleMap googleMap, MapView mMapView) {
this.googleMap = googleMap;
......
......@@ -123,8 +123,8 @@ public interface RetrofitInterface {
@GET("venter/complaints/{complaintId}")
Call<Venter.Complaint> getComplaint(@Header("Cookie") String sessionId, @Path("complaintId") String complaintId);
@PUT("venter/complaints/{complaintId}")
Call<Venter.Complaint> upVote(@Header("Cookie") String sessionId, @Path("complaintId") String complaintId);
@GET("venter/complaints/{complaintId}/upvote")
Call<Venter.Complaint> upVote(@Header("Cookie") String sessionId, @Path("complaintId") String complaintId, @Query("action") int count);
@POST("venter/complaints")
Call<ComplaintCreateResponse> postComplaint(@Header("Cookie") String sessionId, @Body ComplaintCreateRequest complaintCreateRequest);
......
......@@ -5,6 +5,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.List;
import app.insti.api.model.User;
import app.insti.interfaces.Browsable;
/**
* Created by Shivam Sharma on 04-09-2018.
......@@ -12,36 +13,33 @@ import app.insti.api.model.User;
public class Venter {
public Venter(){
}
public static class Complaint {
public static class Complaint{
@NonNull
@SerializedName("id")
String complaintID;
private String complaintID;
@SerializedName("created_by")
User complaintCreatedBy;
@SerializedName("description")
String description;
private String description;
@SerializedName("report_date")
String complaintReportDate;
private String complaintReportDate;
@SerializedName("status")
String status;
private String status;
@SerializedName("latitude")
Float latitude;
private Float latitude;
@SerializedName("longitude")
Float longitude;
private Float longitude;
@SerializedName("location_description")
String locationDescription;
private String locationDescription;
@SerializedName("tags")
List<TagUri> tags;
private List<TagUri> tags;
@SerializedName("users_up_voted")
List<User> usersUpVoted;
private List<User> usersUpVoted;
@SerializedName("images")
List<String> images;
private List<String> images;
@SerializedName("comments")
List<Comment> comment;
private List<Comment> comment;
private int voteCount;
public Complaint(@NonNull String complaintID, User complaintCreatedBy, String description, String complaintReportDate, String status, Float latitude, Float longitude, String locationDescription, List<TagUri> tags, List<User> usersUpVoted, List<String> images, List<Comment> comment) {
this.complaintID = complaintID;
......@@ -154,6 +152,14 @@ public class Venter {
public void setComment(List<Comment> comment) {
this.comment = comment;
}
public int getVoteCount() {
return voteCount;
}
public void setVoteCount(int voteCount) {
this.voteCount = voteCount;
}
}
public static class TagUri {
......
package app.insti.fragment;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.TabLayout;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import app.insti.Constants;
import app.insti.R;
import app.insti.adapter.ComplaintFragmentViewPagerAdapter;
public class ComplaintsFragment extends BaseFragment {
String userID, userProfileUrl;
Context context;
Button buttonVentIssues;
ViewPager viewPager;
private TabLayout slidingTabLayout;
CollapsingToolbarLayout collapsingToolbarLayout;
public ComplaintsFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_complaints, container, false);
Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("Complaints/Suggestions");
Bundle bundle = getArguments();
userID = bundle.getString(Constants.USER_ID);
userProfileUrl = bundle.getString(Constants.CURRENT_USER_PROFILE_PICTURE);
collapsingToolbarLayout = view.findViewById(R.id.collapsing_toolbar);
collapsingToolbarLayout.setTitleEnabled(false);
viewPager = (ViewPager) view.findViewById(R.id.tab_viewpager);
slidingTabLayout = (TabLayout) view.findViewById(R.id.sliding_tab_layout);
context = getContext();
buttonVentIssues = view.findViewById(R.id.buttonVentIssues);
buttonVentIssues.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FileComplaintFragment fileComplaintFragment = new FileComplaintFragment();
fileComplaintFragment.setArguments(getArguments());
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.framelayout_for_fragment, fileComplaintFragment, fileComplaintFragment.getTag());
fragmentTransaction.addToBackStack("Complaint Fragment").commit();
}
});
viewPager = view.findViewById(R.id.tab_viewpager);
slidingTabLayout = view.findViewById(R.id.sliding_tab_layout);
if (viewPager != null) {
setupViewPager(viewPager);
}
return view;
}
private void setupViewPager(final ViewPager viewPager) {
viewPager.setAdapter(new ComplaintFragmentViewPagerAdapter(getChildFragmentManager(), getContext(), userID, getArguments().getString(Constants.SESSION_ID), userProfileUrl));
slidingTabLayout.setupWithViewPager(viewPager);
slidingTabLayout.post(new Runnable() {
@Override
public void run() {
int tabLayoutWidth = slidingTabLayout.getWidth();
DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int deviceWidth = metrics.widthPixels;
if (tabLayoutWidth <= (deviceWidth + 1)) {
final TypedArray styledAttributes = getActivity().getTheme().obtainStyledAttributes(
new int[]{android.R.attr.actionBarSize}
);
int mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
AppBarLayout.LayoutParams layoutParams = new AppBarLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
mActionBarSize);
slidingTabLayout.setLayoutParams(layoutParams);
slidingTabLayout.setTabMode(TabLayout.MODE_FIXED);
slidingTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
} else {
slidingTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}
}
});
slidingTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
viewPager.setOffscreenPageLimit(3);
}
}
......@@ -12,35 +12,33 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.activity.MainActivity;
import app.insti.adapter.ComplaintsRecyclerViewAdapter;
import app.insti.adapter.ComplaintsAdapter;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Venter;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class HomeFragment extends Fragment {
public class ComplaintsHomeFragment extends Fragment {
Activity activity;
ComplaintsRecyclerViewAdapter homeListAdapter;
ComplaintsAdapter homeListAdapter;
RecyclerView recyclerViewHome;
private SwipeRefreshLayout swipeContainer;
private static String TAG = HomeFragment.class.getSimpleName();
private static String TAG = ComplaintsHomeFragment.class.getSimpleName();
private boolean isCalled = false;
private TextView error_message_home;
static String sID, uID;
static String sID, uID, uProfileUrl;
public static HomeFragment getInstance(String sessionID, String userID) {
public static ComplaintsHomeFragment getInstance(String sessionID, String userID, String userProfileUrl) {
sID = sessionID;
uID = userID;
return new HomeFragment();
uProfileUrl = userProfileUrl;
return new ComplaintsHomeFragment();
}
@Override
......@@ -58,9 +56,9 @@ public class HomeFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
View view = inflater.inflate(R.layout.fragment_complaints_home, container, false);
recyclerViewHome = (RecyclerView) view.findViewById(R.id.recyclerViewHome);
homeListAdapter = new ComplaintsRecyclerViewAdapter(getActivity(), sID, uID);
homeListAdapter = new ComplaintsAdapter(getActivity(), sID, uID, uProfileUrl);
swipeContainer = (SwipeRefreshLayout) view.findViewById(R.id.swipeContainer);
error_message_home = view.findViewById(R.id.error_message_home);
......@@ -130,3 +128,4 @@ public class HomeFragment extends Fragment {
homeListAdapter.notifyDataSetChanged();
}
}
......@@ -12,34 +12,32 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import app.insti.R;
import app.insti.Utils;
import app.insti.activity.MainActivity;
import app.insti.adapter.ComplaintsRecyclerViewAdapter;
import app.insti.adapter.ComplaintsAdapter;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Venter;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MeFragment extends Fragment {
public class ComplaintsMeFragment extends Fragment {
static String uID, sID;
Activity activity;
private static String uID, sID, uProfileUrl;
private Activity activity;
RecyclerView recyclerViewMe;
ComplaintsRecyclerViewAdapter meListAdapter;
TextView error_message_me;
SwipeRefreshLayout swipeContainer;
private static String TAG = MeFragment.class.getSimpleName();
private ComplaintsAdapter meListAdapter;
private TextView error_message_me;
private SwipeRefreshLayout swipeContainer;
private static String TAG = ComplaintsMeFragment.class.getSimpleName();
private boolean isCalled = false;
public static MeFragment getInstance(String sessionID, String userID) {
public static ComplaintsMeFragment getInstance(String sessionID, String userID, String userProfileUrl) {
sID = sessionID;
uID = userID;
return new MeFragment();
uProfileUrl = userProfileUrl;
return new ComplaintsMeFragment();
}
@Override
......@@ -58,9 +56,9 @@ public class MeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_me, container, false);
View view = inflater.inflate(R.layout.fragment_complaints_me, container, false);
recyclerViewMe = view.findViewById(R.id.recyclerViewMe);
meListAdapter = new ComplaintsRecyclerViewAdapter(getActivity(), sID, uID);
meListAdapter = new ComplaintsAdapter(getActivity(), sID, uID, uProfileUrl);
swipeContainer = view.findViewById(R.id.swipeContainer);
error_message_me = view.findViewById(R.id.error_message_me);
......@@ -128,4 +126,4 @@ public class MeFragment extends Fragment {
meListAdapter.setcomplaintList(list);
meListAdapter.notifyDataSetChanged();
}
}
\ No newline at end of file
}
package app.insti.fragment;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import app.insti.R;
import app.insti.adapter.ComplaintsAdapter;
import app.insti.api.model.Venter;
public class RelevantComplaintsFragment extends Fragment {
Activity activity;
ComplaintsAdapter relevantComplaintsAdapter;
RecyclerView recyclerViewRelevantComplaints;
private SwipeRefreshLayout swipeContainer;
private static String TAG = RelevantComplaintsFragment.class.getSimpleName();
private boolean isCalled = false;
private TextView error_message_relevant_complaints;
static String sID, uID;
public static RelevantComplaintsFragment getInstance(String sessionID, String userID) {
sID = sessionID;
uID = userID;
return new RelevantComplaintsFragment();
}
@Override
public void onStart() {
super.onStart();
swipeContainer.post(new Runnable() {
@Override
public void run() {
swipeContainer.setRefreshing(true);
callServerToGetRelevantComplaints();
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_relevant_complaints, container, false);
recyclerViewRelevantComplaints = (RecyclerView) view.findViewById(R.id.recyclerViewRelevantComplaints);
relevantComplaintsAdapter = new ComplaintsAdapter(getActivity(), sID, uID, ""); //Change userProfileUrl to the current user Profile Pic
swipeContainer = (SwipeRefreshLayout) view.findViewById(R.id.swipeContainer);
error_message_relevant_complaints = view.findViewById(R.id.error_message_relevant_complaints);
LinearLayoutManager llm = new LinearLayoutManager(activity);
recyclerViewRelevantComplaints.setLayoutManager(llm);
recyclerViewRelevantComplaints.setHasFixedSize(true);
recyclerViewRelevantComplaints.setAdapter(relevantComplaintsAdapter);
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
callServerToGetRelevantComplaints();
}
});
swipeContainer.setColorSchemeResources(R.color.colorPrimary);
if (!isCalled) {
swipeContainer.post(new Runnable() {
@Override
public void run() {
swipeContainer.setRefreshing(true);
callServerToGetRelevantComplaints();
}
});
isCalled = true;
}
return view;
}
private void callServerToGetRelevantComplaints(){
}
private void initialiseRecyclerView(List<Venter.Complaint> list) {
relevantComplaintsAdapter.setcomplaintList(list);
relevantComplaintsAdapter.notifyDataSetChanged();
}
}
......@@ -20,11 +20,17 @@ public class DateTimeUtil {
long hours = TimeUnit.MILLISECONDS.toHours(now.getTime() - date.getTime());
if (seconds <= 0) {
return time_ago = "now";
} else if (seconds < 60 && seconds > 0) {
} else if (seconds == 1){
return time_ago = seconds + " second ago";
} else if (seconds < 60 && seconds > 1) {
return time_ago = seconds + " seconds ago";
} else if (minutes < 60 && minutes > 0) {
} else if (minutes == 1) {
return time_ago = minutes + " 1 minute ago";
} else if (minutes < 60 && minutes > 1) {
return time_ago = minutes + " minutes ago";
} else if (hours < 24 && hours > 0) {
} else if (hours == 1) {
return hours + " hour ago";
} else if (hours < 24 && hours > 1) {
return hours + " hours ago";
} else {
long days = Math.round(diff / (24.0 * 60 * 60 * 1000));
......@@ -32,14 +38,25 @@ public class DateTimeUtil {
return "today";
else if (days == 1)
return "yesterday";
else if (days == 1)
return days + " day ago";
else if (days < 14)
return days + " days ago";
else if (days < 30)
return ((int) (days / 7)) + " weeks ago";
if ((int) (days / 7) == 1)
return ((int) (days / 7)) + " week ago";
else
return ((int) (days / 7)) + " weeks ago";
else if (days < 365)
return ((int) (days / 30)) + " months ago";
if ((int) (days / 30) == 1)
return ((int) (days / 30)) + " month ago";
else
return ((int) (days / 30)) + " months ago";
else
return ((int) (days / 365)) + " years ago";
if ((int) (days / 365) == 1)
return ((int) (days / 365)) + " year ago";
else
return ((int) (days / 365)) + " years ago";
}
} catch (ParseException e) {
e.printStackTrace();
......
package app.insti.utils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
* Created by Shivam Sharma on 13-08-2018.
*/
public class GsonProvider {
private static final Gson gsonInput = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").create();
private static final Gson gsonOutput = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").create();
public static Gson getGsonInput() {
return gsonInput;
}
public static Gson getGsonOutput() {
return gsonOutput;
}
}
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/>
</vector>
......@@ -2,6 +2,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="20dp"/>
<!--<padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>-->
<padding android:left="10dp" android:right="10dp"/>
<stroke android:width="1dp" android:color="@color/colorPrimary"/>
</shape>
\ No newline at end of file
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="app.insti.fragment.ComplaintFragment">
android:orientation="vertical">
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:layout_weight="1">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:contentScrim="@android:color/white"
android:background="@color/colorWhite"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:id="@+id/layoutTopCardViewHolder"
android:id="@+id/image_holder_view"
android:layout_width="match_parent"
android:layout_height="175dp"
android:layout_height="2dp"
android:orientation="vertical"
app:layout_collapseMode="parallax">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="30dp">
android:layout_height="match_parent">
<LinearLayout
<android.support.v4.view.ViewPager
android:id="@+id/complaint_image_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="20dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/venter_super_head"
android:textColor="@color/primaryTextColor"
android:textStyle="bold" />
android:layout_height="match_parent"/>
<Button
android:id="@+id/buttonVentIssues"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/colorSecondary"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="@string/vent_your_issues_now"
android:textAllCaps="false"
android:textColor="@color/secondaryTextColor"
android:textSize="18sp" />
</LinearLayout>
<me.relex.circleindicator.CircleIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="48dp"
app:ci_animator="@animator/scale_with_alpha"
app:ci_drawable="@drawable/selected_dot" />
</RelativeLayout>
......@@ -78,18 +57,20 @@
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:tabIndicatorColor="@color/colorAccent"
style="@style/CustomTabLayout"
android:background="?attr/colorPrimary" />
app:tabIndicatorColor="@color/colorPrimary"
android:background="@color/colorWhite"
app:tabTextColor="@color/colorGray"
app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
app:tabSelectedTextColor="#4a4a4a"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/tab_viewpager"
android:id="@+id/tab_viewpager_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
</FrameLayout>
\ No newline at end of file
</LinearLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="app.insti.fragment.ComplaintsFragment">
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:id="@+id/layoutTopCardViewHolder"
android:layout_width="match_parent"
android:layout_height="175dp"
android:orientation="vertical"
app:layout_collapseMode="parallax">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="30dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:layout_marginTop="20dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/venter_super_head"
android:textColor="@color/primaryTextColor"
android:textStyle="bold" />
<Button
android:id="@+id/buttonVentIssues"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/colorSecondary"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="@string/vent_your_issues_now"
android:textAllCaps="false"
android:textColor="@color/secondaryTextColor"
android:textSize="18sp" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</android.support.design.widget.CollapsingToolbarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tab_layout"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:tabIndicatorColor="@color/colorAccent"
style="@style/CustomTabLayout"
android:background="?attr/colorPrimary" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/tab_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
</FrameLayout>
\ No newline at end of file
......@@ -251,25 +251,34 @@
</LinearLayout>
<ScrollView
android:id="@+id/tags_layout"
<LinearLayout
android:id="@+id/linearLayoutScrollTags"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:background="@android:color/white"
android:visibility="invisible">
android:orientation="vertical">
<com.cunoraz.tagview.TagView
android:id="@+id/tag_populate"
<ScrollView
android:id="@+id/tags_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp" />
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:background="@android:color/white"
android:visibility="invisible">
</ScrollView>
<com.cunoraz.tagview.TagView
android:id="@+id/tag_populate"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp" />
<View
android:layout_width="match_parent"
android:layout_height="17dp" />
</ScrollView>
<View
android:id="@+id/viewTagsLayout"
android:layout_width="match_parent"
android:layout_height="17dp" />
</LinearLayout>
</LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".fragment.RelevantComplaintsFragment"
android:orientation="vertical">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ededed">
<TextView
android:id="@+id/error_message_relevant_complaints"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:text="@string/error_message"
android:textColor="@color/secondaryTextColor"
android:visibility="invisible" />
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerViewRelevantComplaints"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.v4.widget.SwipeRefreshLayout>
</android.support.design.widget.CoordinatorLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardViewUpVote"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:padding="10dp">
android:layout_margin="5dp"
android:padding="10dp"
app:cardUseCompatPadding="true"
app:cardBackgroundColor="@color/colorWhite"
app:cardCornerRadius="0dp">>
<LinearLayout
android:layout_width="match_parent"
......@@ -15,6 +22,7 @@
android:paddingTop="4dp">
<LinearLayout
android:id="@+id/layoutUpVote"
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal">
......@@ -49,4 +57,4 @@
</LinearLayout>
</LinearLayout>
\ No newline at end of file
</android.support.v7.widget.CardView>
\ No newline at end of file
......@@ -12,6 +12,7 @@
<color name="colorGray">#757575</color>
<color name="colorWhite">#FFFFFF</color>
<color name="colorTagGreen">#AED581</color>
<color name="colorRed">#FF0000</color>
<color name="colorGreen">#00FF00</color>
<!-- Map -->
......
......@@ -45,7 +45,7 @@
<string name="enter_suggestions_if_any">Enter Suggestions (if any)</string>
<string name="no_complaints">No complaints at the moment</string>
<string name="initial_message_file_complaint">Please provide the complaint description before submitting</string>
<string name="getting_current_location">Getting current location. Please try after some time</string>
<string name="getting_current_location">Getting current location.</string>
<string name="GPS_not_enables">GPS is not enabled!</string>
<string name="no_permission">No permission!</string>
<string name="hello_blank_fragment">Hello blank fragment</string>
......
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