Created
December 19, 2016 17:13
-
-
Save NoNews/07b2d146fe3a30877c9a20fbfd41c64c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.techmas.touchdriver.fragments; | |
import android.os.Bundle; | |
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.ImageView; | |
import butterknife.BindView; | |
import butterknife.ButterKnife; | |
import butterknife.OnClick; | |
import ru.techmas.touchdriver.Const; | |
import ru.techmas.touchdriver.R; | |
import ru.techmas.touchdriver.adapter.OrderListAdapter; | |
import ru.techmas.touchdriver.api.models.OrderDTO; | |
import ru.techmas.touchdriver.presenter.MainActivityPresenter; | |
import ru.techmas.touchdriver.view.OrdersView; | |
import ru.techmas.touchdriver.presenter.OrdersPresenter; | |
import com.arellomobile.mvp.MvpFragment; | |
import com.arellomobile.mvp.presenter.InjectPresenter; | |
import com.arellomobile.mvp.presenter.ProvidePresenter; | |
import java.util.ArrayList; | |
public class OrdersFragment extends BaseFragment implements OrdersView { | |
private static final int LAYOUT = R.layout.fragment_orders; | |
//@formatter:off | |
@InjectPresenter OrdersPresenter ordersPresenter; | |
@BindView(R.id.rvOrders) RecyclerView rvOrders; | |
//@formatter:on | |
private OrderListAdapter adapter; | |
private View view; | |
public static OrdersFragment newInstance() { | |
OrdersFragment fragment = new OrdersFragment(); | |
Bundle args = new Bundle(); | |
fragment.setArguments(args); | |
fragment.setRetainInstance(true); | |
return fragment; | |
} | |
@Override | |
public void onStop() { | |
super.onStop(); | |
} | |
@Override | |
public void onStart() { | |
super.onStart(); | |
} | |
@Override | |
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, | |
final Bundle savedInstanceState) { | |
view = inflater.inflate(LAYOUT, container, false); | |
ButterKnife.bind(this, view); | |
return view; | |
} | |
@Override | |
public void setupRecyclerView() { | |
adapter = new OrderListAdapter(getContext()); | |
rvOrders.setLayoutManager(new LinearLayoutManager(getContext())); | |
rvOrders.setAdapter(adapter); | |
} | |
@Override | |
public void setNewOrders(ArrayList<OrderDTO> orders) { | |
adapter.updateOrders(orders); | |
} | |
@OnClick(R.id.ivRefresh) | |
@Override | |
public void updateOrders() { | |
ordersPresenter.orderRequest(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.techmas.touchdriver.presenter; | |
import ru.techmas.touchdriver.App; | |
import ru.techmas.touchdriver.api.RestApi; | |
import ru.techmas.touchdriver.api.StatusResponse; | |
import ru.techmas.touchdriver.api.models.DriverDTO; | |
import ru.techmas.touchdriver.api.models.OrderDTO; | |
import ru.techmas.touchdriver.models.EventMessage; | |
import ru.techmas.touchdriver.view.OrdersView; | |
import rx.android.schedulers.AndroidSchedulers; | |
import rx.schedulers.Schedulers; | |
import com.arellomobile.mvp.InjectViewState; | |
import com.arellomobile.mvp.MvpPresenter; | |
import java.util.ArrayList; | |
import javax.inject.Inject; | |
@InjectViewState | |
public class OrdersPresenter extends MvpPresenter<OrdersView> { | |
//@formatter:off | |
@Inject RestApi restApi; | |
@Inject DriverDTO driver; | |
//@formatter:on | |
public OrdersPresenter() { | |
App.getAppComponent().inject(this); | |
getViewState().setupRecyclerView(); | |
orderRequest(); | |
} | |
public void orderRequest() { | |
restApi.orderEndPoint | |
.getOrders(driver.getToken()) | |
.observeOn(AndroidSchedulers.mainThread()) | |
.subscribeOn(Schedulers.io()) | |
.subscribe(this::successGetOrder, this::handleError); | |
} | |
private void successGetOrder(StatusResponse<ArrayList<OrderDTO>> response) { | |
getViewState().setNewOrders(response.getData()); | |
} | |
private void handleError(Throwable throwable) { | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public interface OrdersView extends MvpView { | |
@StateStrategyType(OneExecutionStateStrategy.class) | |
void setNewOrders(ArrayList<OrderDTO> orders); | |
@StateStrategyType(OneExecutionStateStrategy.class) | |
void updateOrders(); | |
@StateStrategyType(OneExecutionStateStrategy.class) | |
void setupRecyclerView(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment