Browse Source

notice list and detail mock added, event handling

new_design
Santosh Bhandary 4 years ago
parent
commit
667bc07d41
  1. 1
      app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java
  2. 123
      app/src/main/java/com/swifttech/remit/android/features/notice/gateway/NoticeGateway.java
  3. 16
      app/src/main/java/com/swifttech/remit/android/features/notice/model/NoticeDTO.java
  4. 42
      app/src/main/java/com/swifttech/remit/android/features/notice/presenter/NoticeGatewayInterface.java
  5. 8
      app/src/main/java/com/swifttech/remit/android/features/notice/presenter/NoticeViewModel.java
  6. 155
      app/src/main/java/com/swifttech/remit/android/features/notice/view/NoticeListingFragment.java
  7. 2
      app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java

1
app/src/main/java/com/swifttech/remit/android/features/kyc/newCustomer/view/KYCV3Activity.java

@ -211,7 +211,6 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
return customerDetailFragment;
}
@Override
public void onKYCFormSubmittedSuccessfully() {
Intent returnIntent = new Intent();

123
app/src/main/java/com/swifttech/remit/android/features/notice/gateway/NoticeGateway.java

@ -1,27 +1,96 @@
package com.swifttech.remit.android.features.notice.gateway;
import com.google.gson.JsonObject;
import com.swifttech.remit.android.base.PrivilegedGateway;
import com.swifttech.remit.android.features.notice.presenter.NoticeGatewayInterface;
import com.swifttech.remit.android.utils.https.HttpClientV2;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public class NoticeGateway extends PrivilegedGateway implements NoticeGatewayInterface {
@Override
public Observable<ResponseBody> getNoticeList(String auth, String customerID) {
JsonObject jsonObject=new JsonObject() ;
jsonObject.addProperty("customerId",customerID);
return HttpClientV2.getInstance().getNoticeList(auth,jsonObject);
}
@Override
public Observable<ResponseBody> getNoticeDetail(String auth, String noticeId) {
JsonObject jsonObject=new JsonObject() ;
jsonObject.addProperty("rowId",noticeId);
return HttpClientV2.getInstance().getNoticeDetail(auth,jsonObject);
}
}
package com.swifttech.remit.android.features.notice.gateway;
import com.google.gson.JsonObject;
import com.swifttech.remit.android.base.PrivilegedGateway;
import com.swifttech.remit.android.features.notice.model.NoticeDTO;
import com.swifttech.remit.android.features.notice.model.NoticeDetailDTO;
import com.swifttech.remit.android.features.notice.presenter.NoticeGatewayInterface;
import com.swifttech.remit.android.features.notice.view.NoticeActivity;
import com.swifttech.remit.android.utils.https.HttpClientV2;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public class NoticeGateway extends PrivilegedGateway implements NoticeGatewayInterface {
@Override
public Observable<ResponseBody> getNoticeList(String auth, String customerID) {
JsonObject jsonObject=new JsonObject() ;
jsonObject.addProperty("customerId",customerID);
return HttpClientV2.getInstance().getNoticeList(auth,jsonObject);
}
@Override
public Observable<ResponseBody> getNoticeDetail(String auth, String noticeId) {
JsonObject jsonObject=new JsonObject() ;
jsonObject.addProperty("rowId",noticeId);
return HttpClientV2.getInstance().getNoticeDetail(auth,jsonObject);
}
@Override
public List<NoticeDTO> mockNoticeList() {
List<NoticeDTO> noticeList=new ArrayList<>();
NoticeDTO noticeDTO0=new NoticeDTO();
noticeDTO0.setRowId("0");
noticeDTO0.setTitle("Title 1");
noticeDTO0.setCreateDate("2077/01/01");
noticeDTO0.setIsRead("0");
noticeDTO0.setType("1");
noticeDTO0.setExtra("12");
noticeList.add(noticeDTO0);
NoticeDTO noticeDTO1=new NoticeDTO();
noticeDTO1.setRowId("1");
noticeDTO1.setTitle("Title 2");
noticeDTO1.setCreateDate("2077/01/02");
noticeDTO1.setIsRead("1");
noticeDTO1.setType("0");
noticeList.add(noticeDTO1);
NoticeDTO noticeDTO2=new NoticeDTO();
noticeDTO2.setRowId("2");
noticeDTO2.setTitle("Title 3");
noticeDTO2.setCreateDate("2077/01/02");
noticeDTO2.setIsRead("0");
noticeDTO2.setType("1");
noticeDTO2.setExtra("13");
noticeList.add(noticeDTO2);
NoticeDTO noticeDTO3=new NoticeDTO();
noticeDTO3.setRowId("3");
noticeDTO3.setTitle("Title 4");
noticeDTO3.setCreateDate("2077/01/03");
noticeDTO3.setIsRead("1");
noticeDTO3.setType("1");
noticeDTO3.setExtra("14");
noticeList.add(noticeDTO3);
NoticeDTO noticeDTO4=new NoticeDTO();
noticeDTO4.setRowId("4");
noticeDTO4.setTitle("Title 5");
noticeDTO4.setCreateDate("2077/01/04");
noticeDTO4.setIsRead("1");
noticeDTO4.setType("0");
noticeList.add(noticeDTO4);
return noticeList;
}
@Override
public NoticeDetailDTO mockNoticeDetail() {
NoticeDetailDTO noticeDetailDTO=new NoticeDetailDTO();
noticeDetailDTO.setTitle("Title 1");
noticeDetailDTO.setBody("This is Detail body of Title 1");
noticeDetailDTO.setCreateDate("2077/01/01");
noticeDetailDTO.setImageURL("https://p18cdn4static.sharpschool.com/UserFiles/Servers/Server_414551/Image/News/District%20News/Title%201.jpg");
return noticeDetailDTO;
}
}

16
app/src/main/java/com/swifttech/remit/android/features/notice/model/NoticeDTO.java

@ -61,4 +61,20 @@ public class NoticeDTO {
public void setIsRead(String isRead) {
this.isRead = isRead;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getExtra() {
return extra;
}
public void setExtra(String extra) {
this.extra = extra;
}
}

42
app/src/main/java/com/swifttech/remit/android/features/notice/presenter/NoticeGatewayInterface.java

@ -1,17 +1,25 @@
package com.swifttech.remit.android.features.notice.presenter;
import com.swifttech.remit.android.base.PrivilegedGatewayInterface;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface NoticeGatewayInterface extends PrivilegedGatewayInterface {
Observable<ResponseBody> getNoticeList(String auth, String customerID);
Observable<ResponseBody> getNoticeDetail(String auth, String noticeId);
}
package com.swifttech.remit.android.features.notice.presenter;
import com.swifttech.remit.android.base.PrivilegedGatewayInterface;
import com.swifttech.remit.android.features.notice.model.NoticeDTO;
import com.swifttech.remit.android.features.notice.model.NoticeDetailDTO;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface NoticeGatewayInterface extends PrivilegedGatewayInterface {
Observable<ResponseBody> getNoticeList(String auth, String customerID);
Observable<ResponseBody> getNoticeDetail(String auth, String noticeId);
List<NoticeDTO> mockNoticeList();
NoticeDetailDTO mockNoticeDetail();
}

8
app/src/main/java/com/swifttech/remit/android/features/notice/presenter/NoticeViewModel.java

@ -105,7 +105,9 @@ public class NoticeViewModel extends BaseViewModel implements NoticePresenterInt
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView());
view.lazyInitViews();
sortNoticeList(gateway.mockNoticeList());
// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView());
}
@Override
@ -155,7 +157,9 @@ public class NoticeViewModel extends BaseViewModel implements NoticePresenterInt
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
noticeDetailLiveData.setValue(gateway.mockNoticeDetail());
view.showDetailScreen();
// view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override

155
app/src/main/java/com/swifttech/remit/android/features/notice/view/NoticeListingFragment.java

@ -1,72 +1,83 @@
package com.swifttech.remit.android.features.notice.view;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.RecyclerView;
import com.swifttech.remit.android.R;
import com.swifttech.remit.android.base.BaseFragment;
import com.swifttech.remit.android.common.customwidgets.LineDividerItemDecoration;
import com.swifttech.remit.android.features.notice.adapter.NoticeListingRVAdapter;
import com.swifttech.remit.android.features.notice.model.NoticeDTO;
import com.swifttech.remit.android.features.notice.presenter.NoticeViewModel;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class NoticeListingFragment extends BaseFragment implements NoticeListingRVAdapter.NoticeClickListener {
@BindView(R.id.noticeRv)
RecyclerView noticeRv;
NoticeListingRVAdapter noticeListingRVAdapter;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_notice_listing, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
init();
performDefaultAction(savedInstanceState);
}
private void init() {
noticeListingRVAdapter=new NoticeListingRVAdapter(this);
noticeRv.setAdapter(noticeListingRVAdapter);
noticeRv.addItemDecoration(new LineDividerItemDecoration(noticeRv.getContext(),LineDividerItemDecoration.VERTICAL_LIST));
}
private void performDefaultAction(Bundle savedInstance) {
NoticeViewModel noticeViewModel = ViewModelProviders.of(getActivity()).get(NoticeViewModel.class);
noticeViewModel.getNoticeListLiveData().observe(getViewLifecycleOwner(),this::updateNoticeList);
}
private void updateNoticeList(List<NoticeDTO> noticeList)
{
noticeListingRVAdapter.setData(noticeList);
}
@Override
public void onNoticeClicked(NoticeDTO itemModel) {
ViewModelProviders.of(getActivity()).get(NoticeViewModel.class).fetchNoticeDetail(itemModel);
}
}
package com.swifttech.remit.android.features.notice.view;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.RecyclerView;
import com.swifttech.remit.android.R;
import com.swifttech.remit.android.base.BaseFragment;
import com.swifttech.remit.android.common.customwidgets.LineDividerItemDecoration;
import com.swifttech.remit.android.features.notice.adapter.NoticeListingRVAdapter;
import com.swifttech.remit.android.features.notice.model.NoticeDTO;
import com.swifttech.remit.android.features.notice.presenter.NoticeViewModel;
import com.swifttech.remit.android.features.sendmoney.view.SendMoneyV2TransactionCompleteActivity;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class NoticeListingFragment extends BaseFragment implements NoticeListingRVAdapter.NoticeClickListener {
@BindView(R.id.noticeRv)
RecyclerView noticeRv;
NoticeListingRVAdapter noticeListingRVAdapter;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_notice_listing, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
init();
performDefaultAction(savedInstanceState);
}
private void init() {
noticeListingRVAdapter=new NoticeListingRVAdapter(this);
noticeRv.setAdapter(noticeListingRVAdapter);
noticeRv.addItemDecoration(new LineDividerItemDecoration(noticeRv.getContext(),LineDividerItemDecoration.VERTICAL_LIST));
}
private void performDefaultAction(Bundle savedInstance) {
NoticeViewModel noticeViewModel = ViewModelProviders.of(getActivity()).get(NoticeViewModel.class);
noticeViewModel.getNoticeListLiveData().observe(getViewLifecycleOwner(),this::updateNoticeList);
}
private void updateNoticeList(List<NoticeDTO> noticeList)
{
noticeListingRVAdapter.setData(noticeList);
}
@Override
public void onNoticeClicked(NoticeDTO itemModel) {
if(itemModel.getType().equals("0")){
ViewModelProviders.of(getActivity()).get(NoticeViewModel.class).fetchNoticeDetail(itemModel);
}else if(itemModel.getType().equals("1")){
Intent startReceiptActivity = new Intent(getActivity(), SendMoneyV2TransactionCompleteActivity.class);
startReceiptActivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startReceiptActivity.putExtra(SendMoneyV2TransactionCompleteActivity.SEND_MONEY_TID_BUNDLE_KEY, itemModel.getExtra());
startReceiptActivity.putExtra(SendMoneyV2TransactionCompleteActivity.IS_TRANSACTION_DETAIL_REQUEST_FROM_SEND_MONEY_BUNDLE_KEY, true);
startReceiptActivity.putExtra(SendMoneyV2TransactionCompleteActivity.SHOULD_UPDATE_BALANCE_UPON_RETURN, true);
startActivity(startReceiptActivity);
}
}
}

2
app/src/main/java/com/swifttech/remit/android/utils/https/ApiEndpoints.java

@ -283,7 +283,7 @@ public interface ApiEndpoints {
Observable<ResponseBody> getNoticeList(@Header("Authorization") String token,@Body() JsonObject jsonObject);
@GET(API_URL.GET_NOTICE_DETAIL)
@POST(API_URL.GET_NOTICE_DETAIL)
@Headers("Content-Type: application/json")
Observable<ResponseBody> getNoticeDetail(@Header("Authorization") String token,@Body() JsonObject jsonObject);

Loading…
Cancel
Save