package nucleus.example.ui.item;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import butterknife.Bind;
import nucleus.example.R;
import nucleus.example.ui.base.BaseFragment;
import nucleus.example.network.ServerAPI;
import nucleus.example.util.Delayed;
import nucleus.factory.RequiresPresenter;
@RequiresPresenter(ItemPresenter.class)
public class ItemFragment extends BaseFragment<ItemPresenter> {
@Bind(android.R.id.text1) TextView textView;
private Delayed<Integer> id = new Delayed<>(() -> getArguments().getInt("id"));
private Delayed<String> name = new Delayed<>(() -> getArguments().getString("name"));
public static ItemFragment create(int id, String name) {
Bundle bundle = new Bundle();
bundle.putInt("id", id);
bundle.putString("name", name);
ItemFragment fragment = new ItemFragment();
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null)
getPresenter().requestItem(id.get(), name.get());
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_item, container, false);
}
void onItem(ServerAPI.Item item) {
textView.setText(item.toString());
}
void onNetworkError(Throwable throwable) {
Toast.makeText(getActivity(), throwable.getMessage(), Toast.LENGTH_LONG).show();
}
}