Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.94 KB | None | 0 0
  1. package com.example.brunetsylvain.androgit;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Context;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.support.design.widget.FloatingActionButton;
  8. import android.support.design.widget.Snackbar;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.support.design.widget.NavigationView;
  12. import android.support.v4.view.GravityCompat;
  13. import android.support.v4.widget.DrawerLayout;
  14. import android.support.v7.app.ActionBarDrawerToggle;
  15. import android.support.v7.app.AppCompatActivity;
  16. import android.support.v7.widget.Toolbar;
  17. import android.view.Menu;
  18. import android.view.MenuItem;
  19. import android.widget.ImageView;
  20. import android.widget.ListAdapter;
  21. import android.widget.ListView;
  22. import android.widget.SimpleAdapter;
  23. import android.widget.Toast;
  24.  
  25.  
  26. import com.squareup.picasso.Picasso;
  27.  
  28. import org.json.JSONException;
  29. import org.json.JSONObject;
  30.  
  31. import java.util.ArrayList;
  32. import java.util.HashMap;
  33.  
  34.  
  35.  
  36. public class Main2 extends AppCompatActivity
  37. implements NavigationView.OnNavigationItemSelectedListener {
  38.  
  39.  
  40. private String TAG = MainActivity.class.getSimpleName();
  41. private ProgressDialog pDialog;
  42. private ListView lv;
  43.  
  44. private static String url = "https://api.github.com";
  45. ArrayList<HashMap<String, String>> contactList;
  46.  
  47.  
  48. @Override
  49. protected void onCreate(Bundle savedInstanceState) {
  50. super.onCreate(savedInstanceState);
  51. setContentView(R.layout.activity_main2);
  52. ImageView imageView = (ImageView) findViewById(R.id.imageView);
  53.  
  54. Picasso.with(getApplicationContext()).load("http://i.imgur.com/DvpvklR.png").into(imageView);
  55.  
  56.  
  57. contactList = new ArrayList<>();
  58. lv = (ListView) findViewById(R.id.list);
  59. new Main2.GetAPI().execute();
  60.  
  61. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  62. setSupportActionBar(toolbar);
  63.  
  64.  
  65.  
  66. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  67. ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
  68. this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  69. drawer.setDrawerListener(toggle);
  70. toggle.syncState();
  71.  
  72. NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
  73. navigationView.setNavigationItemSelectedListener(this);
  74. }
  75.  
  76. @Override
  77. public void onBackPressed() {
  78. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  79. if (drawer.isDrawerOpen(GravityCompat.START)) {
  80. drawer.closeDrawer(GravityCompat.START);
  81. } else {
  82. super.onBackPressed();
  83. }
  84. }
  85.  
  86. @Override
  87. public boolean onCreateOptionsMenu(Menu menu) {
  88. // Inflate the menu; this adds items to the action bar if it is present.
  89. getMenuInflater().inflate(R.menu.main2, menu);
  90. return true;
  91. }
  92.  
  93. @Override
  94. public boolean onOptionsItemSelected(MenuItem item) {
  95. // Handle action bar item clicks here. The action bar will
  96. // automatically handle clicks on the Home/Up button, so long
  97. // as you specify a parent activity in AndroidManifest.xml.
  98. int id = item.getItemId();
  99.  
  100. //noinspection SimplifiableIfStatement
  101. if (id == R.id.action_settings) {
  102. return true;
  103. }
  104.  
  105. return super.onOptionsItemSelected(item);
  106. }
  107.  
  108. @SuppressWarnings("StatementWithEmptyBody")
  109. @Override
  110. public boolean onNavigationItemSelected(MenuItem item) {
  111. // Handle navigation view item clicks here.
  112. int id = item.getItemId();
  113.  
  114. if (id == R.id.nav_camera) {
  115. // Handle the camera action
  116. } else if (id == R.id.nav_gallery) {
  117.  
  118. } else if (id == R.id.nav_slideshow) {
  119.  
  120. } else if (id == R.id.nav_manage) {
  121.  
  122. } else if (id == R.id.nav_share) {
  123.  
  124. } else if (id == R.id.nav_send) {
  125.  
  126. }
  127.  
  128. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  129. drawer.closeDrawer(GravityCompat.START);
  130. return true;
  131. }
  132. private class GetAPI extends AsyncTask<Void, Void, Void> {
  133.  
  134. @Override
  135. protected void onPreExecute() {
  136. super.onPreExecute();
  137. // Showing progress dialog
  138. pDialog = new ProgressDialog(Main2.this);
  139. pDialog.setMessage("Please wait...");
  140. pDialog.setCancelable(false);
  141. pDialog.show();
  142.  
  143. }
  144.  
  145. @Override
  146. protected Void doInBackground(Void... arg0) {
  147. HttpHandler sh = new HttpHandler();
  148.  
  149. // Making a request to url and getting response
  150. String jsonStr = sh.makeServiceCall(url);
  151.  
  152. Log.e(TAG, "Response from url: " + jsonStr);
  153.  
  154. if (jsonStr != null) {
  155. try {
  156. JSONObject jsonObj = new JSONObject(jsonStr);
  157.  
  158. // Getting JSON Array node
  159.  
  160.  
  161. // looping through All Contacts
  162.  
  163.  
  164.  
  165. String current_user_url = jsonObj.getString("current_user_url");
  166. String current_user_authorizations_html_url = jsonObj.getString("current_user_authorizations_html_url");
  167. String authorizations_url = jsonObj.getString("authorizations_url");
  168. String code_search_url = jsonObj.getString("code_search_url");
  169. Log.e(TAG, "Response from jsonObj: " + jsonObj);
  170.  
  171. // tmp hash map for single contact
  172. HashMap<String, String> contact = new HashMap<>();
  173.  
  174. // adding each child node to HashMap key => value
  175. contact.put("current_user_url", current_user_url);
  176. contact.put("current_user_authorizations_html_url", current_user_authorizations_html_url);
  177. contact.put("authorizations_url", authorizations_url);
  178. contact.put("code_search_url", code_search_url);
  179.  
  180. // adding contact to contact list
  181. contactList.add(contact);
  182.  
  183. } catch (final JSONException e) {
  184. Log.e(TAG, "Json parsing error: " + e.getMessage());
  185. runOnUiThread(new Runnable() {
  186. @Override
  187. public void run() {
  188. Toast.makeText(getApplicationContext(),
  189. "Json parsing error: " + e.getMessage(),
  190. Toast.LENGTH_LONG)
  191. .show();
  192. }
  193. });
  194.  
  195. }
  196. } else {
  197. Log.e(TAG, "Couldn't get json from server.");
  198. runOnUiThread(new Runnable() {
  199. @Override
  200. public void run() {
  201. Toast.makeText(getApplicationContext(),
  202. "Couldn't get json from server. Check LogCat for possible errors!",
  203. Toast.LENGTH_LONG)
  204. .show();
  205. }
  206. });
  207.  
  208. }
  209.  
  210. return null;
  211. }
  212.  
  213. @Override
  214. protected void onPostExecute(Void result) {
  215. super.onPostExecute(result);
  216. // Dismiss the progress dialog
  217. if (pDialog.isShowing())
  218. pDialog.dismiss();
  219. /**
  220. * Updating parsed JSON data into ListView
  221. * */
  222.  
  223.  
  224.  
  225. ListAdapter adapter = new SimpleAdapter(
  226. Main2.this, contactList,
  227. R.layout.list_item, new String[]{"current_user_url", "current_user_authorizations_html_url",
  228. "authorizations_url"}, new int[]{R.id.name,
  229. R.id.email, R.id.mobile});
  230.  
  231. lv.setAdapter(adapter);
  232. }
  233.  
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement