package com.xda.one.ui.thread; import com.xda.one.R; import com.xda.one.api.inteface.PostClient; import com.xda.one.api.model.response.container.ResponsePostContainer; import com.xda.one.api.retrofit.RetrofitPostClient; import com.xda.one.model.augmented.AugmentedUnifiedThread; import com.xda.one.ui.helper.CancellableCallbackHelper; import com.xda.one.util.FragmentUtils; import android.app.AlertDialog; import android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.widget.Toast; import java.util.ArrayList; public class ThreadUnreadPostHelper extends CancellableCallbackHelper<ResponsePostContainer> { private final Context mContext; private final FragmentManager mFragmentManager; private final AugmentedUnifiedThread mUnifiedThread; private AlertDialog mDialog; public ThreadUnreadPostHelper(final Context context, final FragmentManager fragmentManager, final AugmentedUnifiedThread unifiedThread, final AlertDialog dialog) { super(dialog); mContext = context; mFragmentManager = fragmentManager; mUnifiedThread = unifiedThread; mDialog = dialog; } public void start() { final PostClient client = RetrofitPostClient.getClient(mContext); client.getUnreadPostFeed(mUnifiedThread, this, this); } @Override public void run() { Toast.makeText(mDialog.getContext(), R.string.something_went_wrong_request, Toast.LENGTH_LONG).show(); mDialog.dismiss(); } @Override public void safeCallback(final ResponsePostContainer data) { mDialog.dismiss(); final Fragment fragment = FragmentUtils .switchToPostList(mUnifiedThread, new ArrayList<String>(), data); final FragmentTransaction transaction = FragmentUtils .getDefaultTransaction(mFragmentManager); transaction.addToBackStack(mUnifiedThread.getTitle()); transaction.replace(R.id.content_frame, fragment).commit(); } }