Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.anonymous.cikgood_guru.ui.activities;
- import android.app.DatePickerDialog;
- import android.app.Dialog;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.location.Address;
- import android.location.Geocoder;
- import android.net.Uri;
- import android.os.AsyncTask;
- import android.os.CountDownTimer;
- import android.os.Handler;
- import android.provider.MediaStore;
- import android.support.v4.widget.CircularProgressDrawable;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.AppCompatButton;
- import android.support.v7.widget.Toolbar;
- import android.util.Log;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.ImageView;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.bumptech.glide.Glide;
- import com.bumptech.glide.load.engine.DiskCacheStrategy;
- import com.bumptech.glide.request.RequestOptions;
- import com.example.anonymous.cikgood_guru.R;
- import com.example.anonymous.cikgood_guru.config.ServerConfig;
- import com.example.anonymous.cikgood_guru.models.GuruProfil;
- import com.example.anonymous.cikgood_guru.response.ResponGuruDetail;
- import com.example.anonymous.cikgood_guru.response.ResponseCreateGuru;
- import com.example.anonymous.cikgood_guru.rests.ApiClient;
- import com.example.anonymous.cikgood_guru.rests.ApiInterface;
- import com.example.anonymous.cikgood_guru.utils.SessionManager;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.io.UnsupportedEncodingException;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.net.ssl.HttpsURLConnection;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- public class EditAkunActivity extends AppCompatActivity {
- String GURU_ID = "id_guru";
- String NAMA = "nama_guru";
- String NO_HP = "no_hp";
- String EMAIL = "email";
- String JK = "jk";
- String TGL_LAHIR = "tgl_lahir";
- String PROVINSI_KTP = "provinsi_ktp";
- String KOTA_KTP = "kota_ktp";
- String KEC_KTP = "kecamatan_ktp";
- String ALAMAT_KTP = "alamat_ktp";
- String PROVINSI_DOM = "provinsi_domisili";
- String KOTA_DOM = "kota_domisili";
- String KEC_DOM = "kecamatan_domisili";
- String ALAMAT_DOM = "alamat_domisili";
- String BIO = "biodata";
- String PHOTO = "photo_profile";
- String LAT = "lat";
- String LNG = "lng";
- /* Path PHP */
- private CircularProgressDrawable circularProgressDrawable;
- private ByteArrayOutputStream byteArrayOutputStream;
- private Button btnPickImage, btnUpdateProfile;
- private HttpURLConnection httpURLConnection;
- private String errorMessage, photo_profile;
- private DatePickerDialog datePickerDialog;
- private BufferedWriter bufferedWriter;
- private SessionManager sessionManager;
- private BufferedReader bufferedReader;
- private ProgressDialog progressDialog;
- private ImageView ivProfile, ivUpload;
- private StringBuilder stringBuilder;
- private OutputStream outputStream;
- private ApiInterface apiService;
- private RequestOptions options;
- private RadioButton rbLk, rbPr;
- private boolean check = true;
- private byte[] byteArray;
- private Bitmap FixBitmap;
- private RadioGroup rgJk;
- private int RC, id_jk;
- private URL url;
- String ServerUploadPath = ServerConfig.UPLOAD_FOTO_PROFILE_GURU_ENDPOINT;
- private EditText etNamaLengkap, etNoHP, etEmail, etTglLahir, etProvinsiKtp, etKotaKtp, etKecKtp, etProvinsiDom, etKotaDom, etKecDom, etBio, etAlamatDom, etAlamatKtp;
- private String nama, no_hp, email, tgl_lahir, provinsi_ktp, kota_ktp, kec_ktp, provinsi_dom, kota_dom, kec_dom, photo, guru_id, bio, jk, alamat_ktp, alamat_dom;
- private String lat, lng;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_edit_akun);
- initToolbar();
- initView();
- initAction();
- showDataGuruById();
- }
- private void initToolbar() {
- Toolbar toolbar = findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(R.drawable.ic_chevron);
- toolbar.setNavigationOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intentProfile = new Intent(EditAkunActivity.this, NavigationView.class);
- intentProfile.putExtra("FromEditAkun", "3");
- startActivity(intentProfile);
- finish();
- }
- });
- }
- private void initAction() {
- btnUpdateProfile.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- new Runnable() {
- int interfal = 500;
- @Override
- public void run() {
- new CountDownTimer(1500, 1500) {
- @Override
- public void onTick(long millisUntilFinished) {
- btnUpdateProfile.setText("MERUBAH...");
- }
- @Override
- public void onFinish() {
- btnUpdateProfile.setText("UBAH PROFILE");
- }
- }.start();
- }
- }.run();
- new Handler().postDelayed(new Runnable(){
- @Override
- public void run(){
- updateDataProfile();
- }
- },1500);
- }
- });
- btnPickImage.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- showDialogUpdateProfile();
- }
- });
- etTglLahir.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showDialogTglLahir();
- }
- });
- }
- private void showDialogTglLahir() {
- Calendar calendar = Calendar.getInstance();
- datePickerDialog = new DatePickerDialog(EditAkunActivity.this, new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
- Calendar newDate = Calendar.getInstance();
- newDate.set(Calendar.YEAR, year);
- newDate.set(Calendar.MONTH, monthOfYear);
- newDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
- String formatTanggal = "yyyy-MM-dd";
- SimpleDateFormat sdf = new SimpleDateFormat(formatTanggal);
- etTglLahir.setText(sdf.format(newDate.getTime()));
- }
- },
- calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
- calendar.get(Calendar.DAY_OF_MONTH));
- datePickerDialog.show();;
- }
- private void updateDataProfile() {
- initGetText();
- System.out.println("Hai "+nama+" "+no_hp+" "+tgl_lahir+" "+jk+" "+provinsi_ktp+" "+kota_ktp+" "+kec_ktp+" "+alamat_ktp+" "+provinsi_dom+""+kota_dom+" "+kec_dom+" "+alamat_dom+" "+bio);
- apiService.updateDataGuru(guru_id, nama, no_hp, tgl_lahir, jk, provinsi_ktp, kota_ktp, kec_ktp, alamat_ktp, provinsi_dom, kota_dom, kec_dom, alamat_dom, bio, lat, lng).enqueue(new Callback<ResponseCreateGuru>() {
- @Override
- public void onResponse(Call<ResponseCreateGuru> call, Response<ResponseCreateGuru> response) {
- if (response.isSuccessful()){
- if (response.body().getCode().equals(200)){
- Toast.makeText(EditAkunActivity.this, response.body().getMessage(), Toast.LENGTH_SHORT).show();
- Intent intentProfile = new Intent(EditAkunActivity.this, NavigationView.class);
- intentProfile.putExtra("FromEditAkun", "3");
- startActivity(intentProfile);
- finish();
- }else{
- Toast.makeText(EditAkunActivity.this, response.body().getMessage(), Toast.LENGTH_SHORT).show();
- }
- }else{
- Toast.makeText(EditAkunActivity.this, "ResponseSignUp Gagal", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- public void onFailure(Call<ResponseCreateGuru> call, Throwable t) {
- Toast.makeText(EditAkunActivity.this, "Koneksi Internet Bermasalah", Toast.LENGTH_SHORT).show();
- }
- });
- }
- private void initGetText() {
- id_jk = rgJk.getCheckedRadioButtonId();
- jk = ((RadioButton) findViewById(id_jk)).getText().toString();
- tgl_lahir = etTglLahir.getText().toString();
- no_hp = etNoHP.getText().toString();
- email = etEmail.getText().toString();
- provinsi_ktp = etProvinsiKtp.getText().toString();
- kota_ktp = etKotaKtp.getText().toString();
- kec_ktp = etKecKtp.getText().toString();
- alamat_ktp = etAlamatKtp.getText().toString();
- provinsi_dom = etProvinsiDom.getText().toString();
- kota_dom = etKotaDom.getText().toString();
- kec_dom = etKecDom.getText().toString();
- alamat_dom = etAlamatDom.getText().toString();
- bio = etBio.getText().toString();
- nama = etNamaLengkap.getText().toString();
- Geocoder geocoder = new Geocoder(EditAkunActivity.this);
- List<Address> addresses = null;
- try {
- addresses = geocoder.getFromLocationName(alamat_dom, 1);
- } catch (IOException ioException) {
- // Menangkap apabila ada I/O atau jaringan error
- errorMessage = "Location Service is not available";
- ioException.printStackTrace();
- Log.e("LatLng", errorMessage, ioException);
- }
- // Apabila tidak ada alamat yang bisa ditemukan
- if (addresses == null || addresses.size() == 0) {
- if (errorMessage.isEmpty()) {
- errorMessage = "Koordinat tidak ditemukan";
- Log.e("Error LatLng", errorMessage);
- }
- } else {
- // Mendapatkan hasil dari geocoding alamat, dan ambil lat long nya
- Address address = addresses.get(0);
- ArrayList<String> addressFragments = new ArrayList<>();
- addressFragments.add(String.valueOf(address.getLatitude()));
- addressFragments.add(String.valueOf(address.getLongitude()));
- lat = String.valueOf(address.getLatitude());
- lng = String.valueOf(address.getLongitude());
- } // end if
- }
- private void showDialogUpdateProfile() {
- final Dialog dialog = new Dialog(this);
- dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // before
- dialog.setContentView(R.layout.item_dialog_upload_photo);
- dialog.setCancelable(true);
- WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
- lp.copyFrom(dialog.getWindow().getAttributes());
- lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
- lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
- ivUpload = dialog.findViewById(R.id.image);
- if (photo_profile != null){
- circularProgressDrawable = new CircularProgressDrawable(EditAkunActivity.this);
- circularProgressDrawable.setStrokeWidth(5f);
- circularProgressDrawable.setCenterRadius(30f);
- circularProgressDrawable.start();
- options = new RequestOptions();
- options.placeholder(circularProgressDrawable);
- options.error(R.drawable.ic_image);
- options.skipMemoryCache(true);
- options.diskCacheStrategy(DiskCacheStrategy.NONE);
- options.fitCenter();
- Glide.with(this)
- .load(ServerConfig.GURU_PATH+photo_profile)
- .apply(options)
- .into(ivUpload);
- }
- ( (TextView) dialog.findViewById(R.id.tv_ambil_photo) ).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(Intent.createChooser(intent, "Select Image From Gallery"), 1);
- }
- });
- ((ImageButton) dialog.findViewById(R.id.bt_close)).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dialog.dismiss();
- }
- });
- ((AppCompatButton) dialog.findViewById(R.id.bt_upload)).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- updatePhotoProfile(dialog);
- }
- });
- dialog.show();
- dialog.getWindow().setAttributes(lp);
- }
- private void updatePhotoProfile(Dialog dialog) {
- UploadImageToServer(dialog);
- }
- @Override
- protected void onActivityResult(int RC, int RQC, Intent I) {
- super.onActivityResult(RC, RQC, I);
- if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) {
- Uri uri = I.getData();
- try {
- FixBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
- ivUpload.setImageBitmap(FixBitmap);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- public void UploadImageToServer(Dialog dialog){
- FixBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
- byteArray = byteArrayOutputStream.toByteArray();
- photo = android.util.Base64.encodeToString(byteArray, android.util.Base64.DEFAULT);
- class AsyncTaskUploadClass extends AsyncTask<Void,Void,String> {
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- progressDialog = ProgressDialog.show(EditAkunActivity.this,"Data Profil","Loading..!",false,false);
- }
- @Override
- protected void onPostExecute(String string1) {
- super.onPostExecute(string1);
- progressDialog.dismiss();
- dialog.dismiss();
- showDataGuruById();
- Toast.makeText(EditAkunActivity.this, string1,Toast.LENGTH_LONG).show();
- }
- @Override
- protected String doInBackground(Void... params) {
- ImageProcessClass imageProcessClass = new ImageProcessClass();
- HashMap<String,String> HashMapParams = new HashMap<String,String>();
- HashMapParams.put(PHOTO, photo);
- HashMapParams.put(GURU_ID, guru_id);
- String FinalData = imageProcessClass.ImageHttpRequest(ServerUploadPath, HashMapParams);
- return FinalData;
- }
- }
- AsyncTaskUploadClass AsyncTaskUploadClassOBJ = new AsyncTaskUploadClass();
- AsyncTaskUploadClassOBJ.execute();
- }
- public class ImageProcessClass{
- public String ImageHttpRequest(String requestURL,HashMap<String, String> PData) {
- StringBuilder stringBuilder = new StringBuilder();
- try {
- url = new URL(requestURL);
- httpURLConnection = (HttpURLConnection) url.openConnection();
- httpURLConnection.setReadTimeout(20000);
- httpURLConnection.setConnectTimeout(20000);
- httpURLConnection.setRequestMethod("POST");
- httpURLConnection.setDoInput(true);
- httpURLConnection.setDoOutput(true);
- outputStream = httpURLConnection.getOutputStream();
- bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
- bufferedWriter.write(bufferedWriterDataFN(PData));
- bufferedWriter.flush();
- bufferedWriter.close();
- outputStream.close();
- RC = httpURLConnection.getResponseCode();
- if (RC == HttpsURLConnection.HTTP_OK) {
- bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
- stringBuilder = new StringBuilder();
- String RC2;
- while ((RC2 = bufferedReader.readLine()) != null){
- stringBuilder.append(RC2);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return stringBuilder.toString();
- }
- private String bufferedWriterDataFN(HashMap<String, String> HashMapParams) throws UnsupportedEncodingException {
- stringBuilder = new StringBuilder();
- for (Map.Entry<String, String> KEY : HashMapParams.entrySet()) {
- if (check)
- check = false;
- else
- stringBuilder.append("&");
- stringBuilder.append(URLEncoder.encode(KEY.getKey(), "UTF-8"));
- stringBuilder.append("=");
- stringBuilder.append(URLEncoder.encode(KEY.getValue(), "UTF-8"));
- }
- return stringBuilder.toString();
- }
- }
- private void initView() {
- apiService = ApiClient.getClient(ServerConfig.API_ENDPOINT).create(ApiInterface.class);
- byteArrayOutputStream = new ByteArrayOutputStream();
- sessionManager = new SessionManager(this);
- etNamaLengkap = (EditText) findViewById(R.id.et_nama_lengkap);
- etNoHP = (EditText) findViewById(R.id.et_no_hp);
- etEmail = (EditText) findViewById(R.id.et_email);
- etTglLahir = (EditText) findViewById(R.id.et_tgl_lahir);
- etProvinsiKtp = (EditText) findViewById(R.id.et_provinsi_ktp);
- etKotaKtp = (EditText) findViewById(R.id.et_kota_ktp);
- etKecKtp = (EditText) findViewById(R.id.et_kec_ktp);
- etAlamatKtp = (EditText) findViewById(R.id.et_alamat_ktp);
- etProvinsiDom = (EditText) findViewById(R.id.et_provinsi_domisili);
- etKotaDom = (EditText) findViewById(R.id.et_kota_domisili);
- etKecDom = (EditText) findViewById(R.id.et_kec_domisili);
- etAlamatDom = (EditText) findViewById(R.id.et_alamat_dom);
- etBio = (EditText) findViewById(R.id.et_biodata);
- ivProfile = (ImageView) findViewById(R.id.imageProfile);
- btnPickImage = (Button) findViewById(R.id.buttonChangePhoto);
- btnUpdateProfile= (Button) findViewById(R.id.btn_update_profile);
- rbLk = findViewById(R.id.radioMale);
- rbPr = findViewById(R.id.radioFemale);
- rgJk = findViewById(R.id.radioGroupSex);
- guru_id = sessionManager.getGuruProfile().get(SessionManager.ID_GURU);
- }
- private void showDataGuruById() {
- apiService.guruFindById(Integer.parseInt(sessionManager.getGuruProfile().get(SessionManager.ID_GURU))).enqueue(new Callback<ResponGuruDetail>() {
- @Override
- public void onResponse(Call<ResponGuruDetail> call, Response<ResponGuruDetail> response) {
- if (response.isSuccessful()){
- System.out.println(response.body().toString());
- ArrayList<GuruProfil> guruses = new ArrayList<>();
- guruses.add(response.body().getMaster());
- GuruProfil guruProfil = guruses.get(0);
- etNamaLengkap.setText(guruProfil.getNama());
- etEmail.setText(guruProfil.getEmail());
- etNoHP.setText(guruProfil.getNoHp());
- etTglLahir.setText(guruProfil.getTglLahir());
- etProvinsiKtp.setText(guruProfil.getProvinsiKtp());
- etKotaKtp.setText(guruProfil.getKotaKtp());
- etKecKtp.setText(guruProfil.getKecamatanKtp());
- etAlamatKtp.setText(guruProfil.getAlamatKtp());
- etProvinsiDom.setText(guruProfil.getProvinsiDomisili());
- etKotaDom.setText(guruProfil.getProvinsiDomisili());
- etKecDom.setText(guruProfil.getKecamatanDomisili());
- etAlamatDom.setText(guruProfil.getAlamatDomisili());
- etBio.setText(guruProfil.getBiodata());
- circularProgressDrawable = new CircularProgressDrawable(EditAkunActivity.this);
- circularProgressDrawable.setStrokeWidth(5f);
- circularProgressDrawable.setCenterRadius(30f);
- circularProgressDrawable.start();
- options = new RequestOptions();
- options.placeholder(circularProgressDrawable);
- options.error(R.drawable.ic_image);
- options.skipMemoryCache(true);
- options.diskCacheStrategy(DiskCacheStrategy.NONE);
- options.fitCenter();
- Glide.with(EditAkunActivity.this)
- .load(ServerConfig.GURU_PATH+guruProfil.getPhotoProfile())
- .apply(new RequestOptions().override(200, 300))
- .apply(options)
- .into(ivProfile);
- photo_profile = guruProfil.getPhotoProfile();
- String selected_jk = guruProfil.getJk();
- if (selected_jk == null) {
- rbPr.setChecked(false);
- rbLk.setChecked(true);
- }else if(selected_jk.equals("Perempuan")){
- rbPr.setChecked(true);
- }else if(selected_jk.equals("Laki-Laki")){
- rbLk.setChecked(true);
- }else{
- rbPr.setChecked(false);
- rbLk.setChecked(false);
- }
- }
- }
- @Override
- public void onFailure(Call<ResponGuruDetail> call, Throwable t) {
- t.printStackTrace();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement