Shvet

Untitled

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