Shvet

Untitled

Jan 19th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. import android.content.Context;
  2. import android.content.Intent;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.support.annotation.Nullable;
  6. import android.support.design.widget.Snackbar;
  7. import android.support.v4.app.Fragment;
  8. import android.support.v4.content.ContextCompat;
  9. import android.support.v7.widget.LinearLayoutManager;
  10. import android.support.v7.widget.RecyclerView;
  11. import android.util.Log;
  12. import android.view.LayoutInflater;
  13. import android.view.View;
  14. import android.view.ViewGroup;
  15. import android.widget.FrameLayout;
  16. import android.widget.TextView;
  17.  
  18. import com.dev.pingr.R;
  19. import com.dev.pingr.customview.RecyclerItemClickListener;
  20. import com.dev.pingr.networking.ConnectionDetector;
  21. import com.dev.pingr.twitterData.adapter.TwMessageAdapter;
  22. import com.dev.pingr.twitterData.model.MyTwitterApiClient;
  23. import com.dev.pingr.twitterData.model.TwMessageModel;
  24. import com.dev.pingr.twitterData.model.TwModel;
  25. import com.twitter.sdk.android.core.Callback;
  26. import com.twitter.sdk.android.core.Result;
  27. import com.twitter.sdk.android.core.TwitterCore;
  28. import com.twitter.sdk.android.core.TwitterException;
  29. import com.twitter.sdk.android.core.TwitterSession;
  30.  
  31. import java.util.ArrayList;
  32. import java.util.List;
  33.  
  34. /**
  35. * A simple {@link Fragment} subclass.
  36. */
  37. public class TwMessageFragment extends Fragment {
  38.  
  39. Context context;
  40. RecyclerView recyclerView;
  41. ConnectionDetector detector;
  42. FrameLayout frameLayout;
  43. TwMessageAdapter adapter;
  44. ArrayList<TwMessageModel> arrayList = new ArrayList<>();
  45.  
  46. @Override
  47. public void onAttach(Context context) {
  48. super.onAttach(context);
  49. this.context = context;
  50. detector = new ConnectionDetector(context);
  51. }
  52.  
  53. @Override
  54. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  55. Bundle savedInstanceState) {
  56. // Inflate the layout for this fragment
  57. return inflater.inflate(R.layout.fragment_tw_message, container, false);
  58. }
  59.  
  60. @Override
  61. public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  62. super.onViewCreated(view, savedInstanceState);
  63. recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
  64. recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  65. frameLayout = (FrameLayout) view.findViewById(R.id.frame_layout);
  66. }
  67.  
  68. @Override
  69. public void onActivityCreated(@Nullable Bundle savedInstanceState) {
  70. super.onActivityCreated(savedInstanceState);
  71. if (detector.isConnectingToInternet()) {
  72. TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
  73. MyTwitterApiClient apiClient = new MyTwitterApiClient(session);
  74.  
  75. apiClient.getCustomService().DirectMessages(0L, 999999999999999999L, 200, true, true,
  76. new Callback<List<TwModel>>() {
  77. @Override
  78. public void success(Result<List<TwModel>> result) {
  79. Log.e("Result", result.data.size() + "");
  80. for (int i = 0; i < result.data.size(); i++) {
  81. String sender_id = result.data.get(i).sender_id;
  82. String recipient_id = result.data.get(i).recipient_id;
  83. String text = result.data.get(i).text;
  84. String recipient_name = result.data.get(i).recipient.recipient_name;
  85. String sender_name = result.data.get(i).sender.sender_name;
  86. String created_at = result.data.get(i).created_at;
  87. String sender_profile_url = result.data.get(i).sender.profile_image_url;
  88.  
  89. if (i + 1 < result.data.size()) {
  90. if (!result.data.get(i).sender_id.equals(result.data.get(i + 1).sender_id)) {
  91. Log.e("Sender Id", result.data.get(i).sender_id + " " + result.data.get(i + 1).sender_id);
  92. TwMessageModel model = new TwMessageModel();
  93. model.setCreated_at(created_at);
  94. model.setRecipient_id(recipient_id);
  95. model.setSender_id(sender_id);
  96. model.setText(text);
  97. model.setRecipient_name(recipient_name);
  98. model.setSender_name(sender_name);
  99. model.setSender_profile_url(sender_profile_url);
  100. arrayList.add(model);
  101. }
  102. }
  103. if (i == result.data.size() - 1) {
  104. if (!result.data.get(i - 1).sender_id.equals(result.data.get(i).sender_id)) {
  105. TwMessageModel model = new TwMessageModel();
  106. model.setCreated_at(result.data.get(i).created_at);
  107. model.setRecipient_id(result.data.get(i).recipient_id);
  108. model.setSender_id(result.data.get(i).sender_id);
  109. model.setText(result.data.get(i).text);
  110. model.setRecipient_name(result.data.get(i).recipient.recipient_name);
  111. model.setSender_name(result.data.get(i).sender.sender_name);
  112. model.setSender_profile_url(result.data.get(i).sender.profile_image_url);
  113. arrayList.add(model);
  114. }
  115. }
  116. }
  117. adapter = new TwMessageAdapter(getContext(), arrayList);
  118. recyclerView.setAdapter(adapter);
  119. adapter.notifyDataSetChanged();
  120. recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(context,
  121. new RecyclerItemClickListener.OnItemClickListener() {
  122. @Override
  123. public void onItemClick(View view, int position) {
  124. Intent intent = new Intent(getActivity(), TwMessageActivity.class);
  125. intent.putExtra("userid", arrayList.get(position).getSender_id());
  126. context.startActivity(intent);
  127. }
  128. }));
  129. }
  130.  
  131. @Override
  132. public void failure(TwitterException e) {
  133.  
  134. }
  135. }
  136. );
  137.  
  138. } else {
  139. showError(R.string.internet_error);
  140. }
  141. }
  142.  
  143. private void showError(int error) {
  144. Snackbar snackbar = Snackbar.make(frameLayout, error, Snackbar.LENGTH_SHORT);
  145. ViewGroup group = (ViewGroup) snackbar.getView();
  146. group.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimaryDark));
  147. TextView textView = (TextView) group.findViewById(android.support.design.R.id.snackbar_text);
  148. textView.setTextColor(Color.WHITE);
  149. snackbar.show();
  150. }
  151. }
Add Comment
Please, Sign In to add comment