package com.prateekj.snooper.networksnooper.fragment; import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.prateekj.snooper.R; import com.prateekj.snooper.formatter.ResponseFormatterFactory; import com.prateekj.snooper.infra.BackgroundTaskExecutor; import com.prateekj.snooper.networksnooper.presenter.HttpCallFragmentPresenter; import com.prateekj.snooper.networksnooper.repo.SnooperRepo; import com.prateekj.snooper.networksnooper.viewmodel.HttpBodyViewModel; import com.prateekj.snooper.networksnooper.views.HttpCallBodyView; import com.prateekj.snooper.networksnooper.views.HttpCallView; import com.prateekj.snooper.realm.RealmFactory; import io.realm.Realm; import static com.prateekj.snooper.networksnooper.activity.HttpCallActivity.HTTP_CALL_ID; import static com.prateekj.snooper.networksnooper.activity.HttpCallActivity.HTTP_CALL_MODE; public class HttpCallFragment extends Fragment implements HttpCallBodyView{ private HttpCallView httpCallView; private int mode; private HttpBodyViewModel viewModel; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(R.layout.fragment_response_body, container, false); Realm realm = RealmFactory.create(getActivity()); viewModel = new HttpBodyViewModel(); SnooperRepo repo = new SnooperRepo(realm); int httpCallId = getArguments().getInt(HTTP_CALL_ID); mode = getArguments().getInt(HTTP_CALL_MODE); BackgroundTaskExecutor taskExecutor = new BackgroundTaskExecutor(this.getActivity()); HttpCallFragmentPresenter presenter = new HttpCallFragmentPresenter(repo, httpCallId, this, new ResponseFormatterFactory(), taskExecutor); presenter.init(viewModel, mode); return view; } @Override public void onAttach(Context context) { super.onAttach(context); httpCallView = (HttpCallView) this.getActivity(); } @Override public void onFormattingDone() { httpCallView.onHttpCallBodyFormatted(this.mode); ((TextView)getView().findViewById(R.id.payload_text)).setText(viewModel.getFormattedBody()); } }