Commit f29295e9 authored by Simran Madhok's avatar Simran Madhok Committed by Varun Patil

feat(venter): Load tags from network (#273)

* Retrofit API code added to auto-load tags

* Retrofit API code added to auto-load tags
parent 1ffc407e
......@@ -148,4 +148,6 @@ public interface RetrofitInterface {
@DELETE("venter/comments/{commentId}")
Call<String> deleteComment(@Header("Cookie") String sessionId, @Path("commentId") String commentId);
@GET("venter/tags")
Call<List<Venter.TagUri>> getTags(@Header("Cookie") String sessionID);
}
......@@ -24,6 +24,7 @@ import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.NestedScrollView;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.text.Editable;
......@@ -39,6 +40,7 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.cunoraz.tagview.Tag;
......@@ -78,11 +80,11 @@ import app.insti.activity.MainActivity;
import app.insti.adapter.ImageViewPagerAdapter;
import app.insti.api.LocationAPIUtils;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Venter;
import app.insti.api.request.ComplaintCreateRequest;
import app.insti.api.request.ImageUploadRequest;
import app.insti.api.response.ComplaintCreateResponse;
import app.insti.api.response.ImageUploadResponse;
import app.insti.utils.TagCategories;
import me.relex.circleindicator.CircleIndicator;
import retrofit2.Call;
import retrofit2.Callback;
......@@ -130,6 +132,10 @@ public class FileComplaintFragment extends Fragment {
private ImageButton imageButtonAddTags;
private Button buttonAnalysis;
private ImageButton imageActionButton;
private TextView error_message_me;
private SwipeRefreshLayout swipeContainer;
private boolean isCalled = false;
private LinearLayout linearLayoutNestedScrollView;
@Override
public void onDestroyView() {
......@@ -146,6 +152,18 @@ public class FileComplaintFragment extends Fragment {
super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
swipeContainer.post(new Runnable() {
@Override
public void run() {
swipeContainer.setRefreshing(true);
prepareTags();
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
......@@ -156,12 +174,33 @@ public class FileComplaintFragment extends Fragment {
}
view = inflater.inflate(R.layout.fragment_file_complaint, container, false);
bundleCollection();
prepareTags();
progressDialog = new ProgressDialog(getContext());
swipeContainer = view.findViewById(R.id.swipeContainer);
error_message_me = view.findViewById(R.id.error_message_me);
linearLayoutNestedScrollView = view.findViewById(R.id.linearLayoutNestedScrollView);
final Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
toolbar.setTitle("Add Complaint");
initviews(view);
swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
prepareTags();
}
});
swipeContainer.setColorSchemeColors(getResources().getColor(R.color.colorPrimary));
if (!isCalled) {
swipeContainer.post(new Runnable() {
@Override
public void run() {
swipeContainer.setRefreshing(true);
prepareTags();
}
});
isCalled = true;
}
editTextTags.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
......@@ -219,8 +258,6 @@ public class FileComplaintFragment extends Fragment {
mMapView.onCreate(savedInstanceState);
mMapView.onResume();
getMapReady();
//Autocomplete location bar
autoLocation();
//ends here
......@@ -602,13 +639,43 @@ public class FileComplaintFragment extends Fragment {
}
private void prepareTags() {
tagList = new ArrayList<>();
try {
for (int i = 0; i < TagCategories.CATEGORIES.length; i++) {
tagList.add(new ComplaintTag(TagCategories.CATEGORIES[i]));
}
RetrofitInterface retrofitInterface = Utils.getRetrofitInterface();
retrofitInterface.getTags("sessionid=" + getArguments().getString(Constants.SESSION_ID)).enqueue(new Callback<List<Venter.TagUri>>() {
@Override
public void onResponse(Call<List<Venter.TagUri>> call, Response<List<Venter.TagUri>> response) {
if (response != null && response.isSuccessful()) {
List<Venter.TagUri> tagsApiList = response.body();
tagList = new ArrayList<>();
for (int i = 0; i < tagsApiList.size(); i++) {
Venter.TagUri tagUri = tagsApiList.get(i);
ComplaintTag complaintTag = new ComplaintTag(tagUri.getTagUri());
tagList.add(complaintTag);
}
swipeContainer.setRefreshing(false);
linearLayoutNestedScrollView.setVisibility(View.VISIBLE);
error_message_me.setVisibility(View.GONE);
getMapReady();
} else {
error_message_me.setVisibility(View.VISIBLE);
error_message_me.setText(getString(R.string.no_complaints));
swipeContainer.setRefreshing(false);
linearLayoutNestedScrollView.setVisibility(View.GONE);
}
}
@Override
public void onFailure(Call<List<Venter.TagUri>> call, Throwable t) {
Log.i(TAG, "failure in getting Tags: " + t.toString());
swipeContainer.setRefreshing(false);
error_message_me.setVisibility(View.VISIBLE);
linearLayoutNestedScrollView.setVisibility(View.GONE);
}
});
} catch (Exception e) {
e.printStackTrace();
swipeContainer.setRefreshing(false);
linearLayoutNestedScrollView.setVisibility(View.GONE);
}
}
......
package app.insti.utils;
/**
* Created by Shivam Sharma on 13-08-2018.
*/
public class TagCategories {
public static final String[] CATEGORIES = new String[]{
"Used Flexes",
"Plastic Bottles (in Hostel messes)",
"Placards on Trees",
"Request for donation of clothes",
"Other donations",
"Cattle Issues",
"Autorickshaws",
"Potholes in Roads",
"Broken stormwater drains",
"Desilting - lakes",
"Flooding of roads and footpaths",
"Damaged footbaths",
"Garbage issues",
"Illegal posters and boardings",
"Manholes",
"Streetlights issues",
"Sewage drains issues",
"Toilets infrastructural issues",
"Fencing issues",
"Security issues",
"Infrastructural defaults in the academic area",
"Cycle pooling issues",
"Water coolers & Aqua Guards",
"Mess menu complaints",
"PHO cleaning complaints",
"PHO cleaning complaints",
"Hostel common room complaints",
"Hostel Stationary shop complaints"
};
}
......@@ -13,6 +13,7 @@
android:layout_height="match_parent"
android:layout_weight="1">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
......@@ -28,8 +29,8 @@
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:layout_width="match_parent"
android:id="@+id/image_holder_view"
android:layout_width="match_parent"
android:layout_height="2dp"
android:orientation="vertical"
app:layout_collapseMode="parallax">
......@@ -59,232 +60,253 @@
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scrollview"
<TextView
android:id="@+id/error_message_me"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:text="@string/error_message"
android:textColor="?attr/themeColorInverse"
android:visibility="gone" />
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:layout_height="wrap_content">
<LinearLayout
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:orientation="vertical">
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:id="@+id/linearLayoutNestedScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="5dp"
android:weightSum="10">
android:orientation="vertical">
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/editTextIncCreditScoreLayout"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="8"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
android:paddingHorizontal="5dp"
android:weightSum="10">
<app.insti.ComplaintDescriptionAutoCompleteTextView
android:id="@+id/dynamicAutoCompleteTextView"
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/editTextIncCreditScoreLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="Enter Description"
android:imeOptions="flagNoExtractUi|actionSearch"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<ProgressBar
android:id="@+id/pb_loading_indicator"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:visibility="gone" />
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/add_image"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:layout_weight="1"
style="@style/Widget.AppCompat.Button.Borderless"
android:src="@drawable/ic_add_a_photo_black_24dp" />
android:layout_weight="8"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
<app.insti.ComplaintDescriptionAutoCompleteTextView
android:id="@+id/dynamicAutoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="Enter Description"
android:imeOptions="flagNoExtractUi|actionSearch"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<ProgressBar
android:id="@+id/pb_loading_indicator"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:visibility="gone" />
</LinearLayout>
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/add_image"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:layout_weight="1"
android:src="@drawable/ic_add_a_photo_black_24dp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="5dp">
</LinearLayout>
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
android:paddingHorizontal="5dp">
<EditText
android:id="@+id/editTextSuggestions"
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/enter_suggestions_if_any"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
app:hintTextAppearance="@style/edit_text_hint_apperarance">
</android.support.design.widget.TextInputLayout>
<EditText
android:id="@+id/editTextSuggestions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/enter_suggestions_if_any"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
</FrameLayout>
</android.support.design.widget.TextInputLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="5dp">
</FrameLayout>
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
android:paddingHorizontal="5dp">
<EditText
android:id="@+id/editTextLocationDetails"
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/enter_location_details"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
app:hintTextAppearance="@style/edit_text_hint_apperarance">
</android.support.design.widget.TextInputLayout>
<EditText
android:id="@+id/editTextLocationDetails"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/enter_location_details"
android:inputType="textMultiLine"
android:minLines="3"
android:textColor="@android:color/black"
android:textColorHint="#4a4a4a"
android:textSize="14sp" />
</FrameLayout>
</android.support.design.widget.TextInputLayout>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:paddingHorizontal="5dp">
</FrameLayout>
<fragment
android:id="@+id/place_autocomplete_fragment"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.CardView>
android:layout_height="wrap_content"
android:layout_margin="5sp"
android:paddingHorizontal="5dp">
</LinearLayout>
<fragment
android:id="@+id/place_autocomplete_fragment"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/layoutAnalyse"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</android.support.v7.widget.CardView>
<com.google.android.gms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/google_map"
android:layout_width="match_parent"
android:layout_height="300dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/layoutAnalyse"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<com.cunoraz.tagview.TagView
android:id="@+id/tag_view"
<com.google.android.gms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/google_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp" />
android:layout_height="300dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="5dp"
android:weightSum="100">
<com.cunoraz.tagview.TagView
android:id="@+id/tag_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp" />
</LinearLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/textLayoutTags"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="90"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
android:orientation="horizontal"
android:paddingHorizontal="5dp"
android:weightSum="100">
<EditText
android:id="@+id/editTextTags"
<android.support.design.widget.TextInputLayout
android:id="@+id/textLayoutTags"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Add Tags"
android:inputType="text"
android:textColor="@android:color/black"
android:textColorHint="#66000000"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<ImageButton
android:id="@+id/imageButtonAddTags"
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_weight="10"
style="@style/Widget.AppCompat.Button.Borderless"
app:srcCompat="@drawable/ic_add_black_24dp" />
</LinearLayout>
android:layout_weight="90"
app:hintTextAppearance="@style/edit_text_hint_apperarance">
<EditText
android:id="@+id/editTextTags"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Add Tags"
android:inputType="text"
android:textColor="@android:color/black"
android:textColorHint="#66000000"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<ImageButton
android:id="@+id/imageButtonAddTags"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_weight="10"
app:srcCompat="@drawable/ic_add_black_24dp" />
<LinearLayout
android:id="@+id/linearLayoutScrollTags"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</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:id="@+id/viewTagsLayout"
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>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
<RelativeLayout
android:id="@+id/layout_buttons"
......
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