Advertisement
Guest User

fetchImage.

a guest
Jan 18th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.69 KB | None | 0 0
  1. package com.pkl.aplikasilogin;
  2.  
  3.  
  4. import android.Manifest;
  5. import android.app.Activity;
  6. import android.content.ContentResolver;
  7. import android.content.Context;
  8. import android.content.Intent;
  9. import android.content.SharedPreferences;
  10. import android.content.pm.PackageManager;
  11. import android.graphics.Bitmap;
  12. import android.graphics.BitmapFactory;
  13. import android.graphics.BitmapShader;
  14. import android.graphics.ImageDecoder;
  15. import android.net.Uri;
  16. import android.os.AsyncTask;
  17. import android.os.Build;
  18. import android.os.Bundle;
  19.  
  20. import androidx.annotation.NonNull;
  21. import androidx.annotation.Nullable;
  22. import androidx.annotation.RequiresApi;
  23. import androidx.appcompat.app.AppCompatActivity;
  24. import androidx.fragment.app.Fragment;
  25. import androidx.fragment.app.FragmentManager;
  26. import androidx.fragment.app.FragmentTransaction;
  27.  
  28. import android.provider.MediaStore;
  29. import android.util.Base64;
  30. import android.util.Log;
  31. import android.view.LayoutInflater;
  32. import android.view.Menu;
  33. import android.view.MenuInflater;
  34. import android.view.View;
  35. import android.view.ViewGroup;
  36. import android.view.WindowManager;
  37. import android.widget.Button;
  38. import android.widget.ImageButton;
  39. import android.widget.ImageView;
  40. import android.widget.ListView;
  41. import android.widget.ProgressBar;
  42. import android.widget.TextView;
  43. import android.widget.Toast;
  44.  
  45. import com.android.volley.AuthFailureError;
  46. import com.android.volley.Request;
  47. import com.android.volley.RequestQueue;
  48. import com.android.volley.Response;
  49. import com.android.volley.VolleyError;
  50. import com.android.volley.toolbox.ImageLoader;
  51. import com.android.volley.toolbox.NetworkImageView;
  52. import com.android.volley.toolbox.StringRequest;
  53. import com.android.volley.toolbox.Volley;
  54. import com.bumptech.glide.Glide;
  55. import com.pkl.aplikasilogin._api.ApiServices;
  56. import com.pkl.aplikasilogin._api.ApiUrl;
  57. import com.pkl.aplikasilogin._modul.ItemUser;
  58. import com.pkl.aplikasilogin._util.SessionManager;
  59. import com.theartofdev.edmodo.cropper.CropImage;
  60. import com.theartofdev.edmodo.cropper.CropImageView;
  61.  
  62. import org.json.JSONArray;
  63. import org.json.JSONException;
  64. import org.json.JSONObject;
  65.  
  66. import java.io.ByteArrayOutputStream;
  67. import java.io.IOException;
  68. import java.net.MalformedURLException;
  69. import java.net.URI;
  70. import java.net.URL;
  71. import java.util.ArrayList;
  72. import java.util.HashMap;
  73. import java.util.List;
  74. import java.util.Map;
  75.  
  76. import butterknife.BindView;
  77. import butterknife.ButterKnife;
  78. import de.hdodenhof.circleimageview.CircleImageView;
  79. import okhttp3.ResponseBody;
  80. import retrofit2.Call;
  81. import retrofit2.Callback;
  82. import retrofit2.Retrofit;
  83. import retrofit2.converter.gson.GsonConverterFactory;
  84.  
  85. import static android.app.Activity.RESULT_OK;
  86. import static android.content.Intent.getIntent;
  87. import static com.pkl.aplikasilogin._api.ApiUrl.URL_HEAD;
  88.  
  89.  
  90. public class AccountFragment extends Fragment {
  91.  
  92.  
  93.  
  94. private TextView idUser, name, username, email, phone, gender, date;
  95. Button btnLogout;
  96. ImageButton btnEdit, btnPickImage;
  97. SessionManager sessionManager;
  98. String getId;
  99. String ID_USER;
  100. private Bitmap bitmap;
  101. public Context context;
  102. NetworkImageView photoProfile;
  103. String url = null;
  104. ImageLoader imageLoader;
  105. Activity mActivity;
  106. private static final String TAG = MainActivity.class.getSimpleName();
  107. private static String URL_READ = "http://192.168.1.9/login/read_detail.php";
  108. private static String URL_UPLOAD = "http://192.168.1.9/login/upload_photo.php";
  109.  
  110. public AccountFragment() {
  111. }
  112.  
  113. @Override
  114. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  115. Bundle savedInstanceState) {
  116. View view = inflater.inflate(R.layout.fragment_account, container, false);
  117. getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
  118.  
  119. imageLoader = CustomVolleyRequest.getInstance(getActivity().getApplicationContext())
  120. .getImageLoader();
  121.  
  122. photoProfile = view.findViewById(R.id.userPhoto);
  123. idUser = (TextView) view.findViewById(R.id.listID1);
  124. btnEdit = (ImageButton) view.findViewById(R.id.btn_edit);
  125. btnLogout = view.findViewById(R.id.btn_logout);
  126. btnPickImage = view.findViewById(R.id.btn_editPhoto);
  127.  
  128. sessionManager = new SessionManager(getActivity());
  129. ID_USER = getActivity().getIntent().getStringExtra(ItemUser.id_user);
  130.  
  131. HashMap<String, String> user = sessionManager.getUserDetail();
  132. getId = user.get(sessionManager.ID);
  133.  
  134. name = (TextView) view.findViewById(R.id.txtName);
  135. username = (TextView) view.findViewById(R.id.txtUsername);
  136. email = (TextView) view.findViewById(R.id.txtEmail);
  137. phone = (TextView) view.findViewById(R.id.txtPhone);
  138. gender = (TextView) view.findViewById(R.id.txtGender);
  139. date = (TextView) view.findViewById(R.id.txtDate);
  140.  
  141. btnLogout.setOnClickListener(new View.OnClickListener() {
  142. @Override
  143. public void onClick(View v) {
  144. sessionManager.logout();
  145. }
  146. });
  147.  
  148. btnEdit.setOnClickListener(new View.OnClickListener() {
  149. @Override
  150. public void onClick(View v) {
  151. Intent intent = new Intent(getActivity(), EditActivity.class);
  152. startActivity(intent);
  153. }
  154. });
  155.  
  156. btnPickImage.setOnClickListener(new View.OnClickListener() {
  157. @Override
  158. public void onClick(View v) {
  159. chooseFile();
  160. }
  161. });
  162. return view;
  163. }
  164.  
  165. @Override
  166. public void onAttach(@NonNull Activity activity) {
  167. super.onAttach(activity);
  168. mActivity = activity;
  169. }
  170.  
  171. private void chooseFile(){
  172. Intent intent = new Intent();
  173. intent.setType("image/*");
  174. intent.setAction(Intent.ACTION_GET_CONTENT);
  175. startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);
  176. }
  177.  
  178. @Override
  179. public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  180. super.onActivityResult(requestCode, resultCode, data);
  181. if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() !=null){
  182. Uri filePath = data.getData();
  183. try {
  184. ImageDecoder.Source source = ImageDecoder.createSource(getActivity().getContentResolver(), filePath);
  185. bitmap= ImageDecoder.decodeBitmap(source);
  186. photoProfile.setImageBitmap(bitmap);
  187. } catch (IOException e){
  188. e.printStackTrace();
  189. }
  190.  
  191. UploadPicture(getId,getStringImage(bitmap));
  192. }
  193. }
  194.  
  195. private void UploadPicture(final String id, final String photo){
  196. StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_UPLOAD,
  197. new Response.Listener<String>() {
  198. @Override
  199. public void onResponse(String response) {
  200. Log.i(TAG, response.toString());
  201.  
  202. try {
  203.  
  204. JSONObject jsonObject = new JSONObject(response);
  205. String status = jsonObject.getString("status");
  206.  
  207. if (status.equals("1")) {
  208. Toast.makeText(getActivity(), "Berhasil Update!", Toast.LENGTH_SHORT).show();
  209. }
  210.  
  211. } catch (Exception e) {
  212. e.printStackTrace();
  213. Toast.makeText(getActivity(), "Coba Lagi!" + e.toString(), Toast.LENGTH_SHORT).show();
  214. }
  215. }
  216. },
  217. new Response.ErrorListener() {
  218. @Override
  219. public void onErrorResponse(VolleyError error) {
  220. Toast.makeText(getActivity(), "Coba Lagi!"+error.toString(), Toast.LENGTH_SHORT).show();
  221. }
  222. })
  223. {
  224. @Override
  225. protected Map<String, String> getParams() throws AuthFailureError {
  226. Map<String, String> params = new HashMap<>();
  227. params.put("id", id);
  228. params.put("photo", photo);
  229. return params;
  230. }
  231. };
  232.  
  233. RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
  234. requestQueue.add(stringRequest);
  235. }
  236.  
  237. public String getStringImage(Bitmap bitmap){
  238. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  239. bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
  240.  
  241. byte[] imageByteArray = byteArrayOutputStream.toByteArray();
  242. String encodedImage = Base64.encodeToString(imageByteArray, Base64.DEFAULT);
  243.  
  244. return encodedImage;
  245. }
  246.  
  247. private void getUserDetail() {
  248. StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_READ,
  249. response -> {
  250. Log.i(TAG, response.toString());
  251. try {
  252. JSONObject jsonObject = new JSONObject(response);
  253. String status = jsonObject.getString("status");
  254. JSONArray jsonArray = jsonObject.getJSONArray("read");
  255. if (status.equals("1")) {
  256.  
  257. for (int i = 0; i < jsonArray.length(); i++) {
  258.  
  259. JSONObject object = jsonArray.getJSONObject(i);
  260.  
  261. String strId = object.getString("id").trim();
  262. String strName = object.getString("name").trim();
  263. String strUsername = object.getString("username").trim();
  264. String strEmail = object.getString("email").trim();
  265. String strPhone = object.getString("phone").trim();
  266. String strGender = object.getString("gender").trim();
  267. String strDate = object.getString("date").trim();
  268.  
  269. idUser.setText(strId);
  270. name.setText(strName);
  271. username.setText(strUsername);
  272. email.setText(strEmail);
  273. phone.setText(strPhone);
  274. gender.setText(strGender);
  275. date.setText(strDate);
  276. }
  277. }
  278.  
  279. } catch (JSONException e) {
  280. e.printStackTrace();
  281. Log.e(TAG, "getUserDetail: " + response);
  282. Toast.makeText(getActivity(), "Error Reading Detail " + e.toString(), Toast.LENGTH_SHORT).show();
  283. }
  284. },
  285. new Response.ErrorListener() {
  286. @Override
  287. public void onErrorResponse(VolleyError error) {
  288. Toast.makeText(getActivity(), "Error Reading Detail..." + error.toString(), Toast.LENGTH_SHORT).show();
  289.  
  290. }
  291. }) {
  292. @Override
  293. protected Map<String, String> getParams() throws AuthFailureError {
  294. Map<String, String> params = new HashMap<>();
  295. params.put("id", getId);
  296. return params;
  297. }
  298. };
  299.  
  300. RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
  301. requestQueue.add(stringRequest);
  302. }
  303.  
  304. public void FetchImage() {
  305. {
  306. StringRequest stringRequest = new StringRequest(Request.Method.POST,"http://192.168.1.9/get_image.php",
  307. new Response.Listener<String>() {
  308. @Override
  309. public void onResponse(String response) {
  310.  
  311.  
  312. try {
  313. JSONObject res = new JSONObject(response);
  314. JSONArray thread = res.getJSONArray("image");
  315. for (int i = 0; i < thread.length(); i++) {
  316. JSONObject obj = thread.getJSONObject(i);
  317. url = obj.getString("photo");
  318.  
  319.  
  320. }
  321.  
  322. imageLoader.get(url, ImageLoader.getImageListener(photoProfile
  323. ,0,android.R.drawable
  324. .ic_dialog_alert));
  325. photoProfile.setImageUrl(url, imageLoader);
  326.  
  327.  
  328.  
  329. } catch (JSONException e) {
  330. e.printStackTrace();
  331. }
  332.  
  333. }
  334.  
  335. },
  336. new Response.ErrorListener() {
  337. @Override
  338. public void onErrorResponse(VolleyError error) {
  339.  
  340. }
  341. }) {
  342. @Override
  343. protected Map<String, String> getParams() throws AuthFailureError {
  344. Map<String, String> params = new HashMap<>();
  345. params.put("id",getId);
  346. return params;
  347. }
  348. };
  349. RequestQueue requestQueue = Volley.newRequestQueue(mActivity);
  350.  
  351. //Adding request to the queue
  352. requestQueue.add(stringRequest);
  353. }
  354.  
  355. }
  356.  
  357. @Override
  358. public void onResume() {
  359. super.onResume();
  360. getUserDetail();
  361. FetchImage();
  362. }
  363. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement