Selasa, 30 Oktober 2018

Upload to Server

package com.example.komunitas;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;


public class UploadToServer extends Activity {
    String myip="";
    JSONParser jsonParser = new JSONParser();
    EditText txtjudul;

    private static final int PICK_IMAGE = 1;
    private static final int PICK_Camera_IMAGE = 2;
    private ImageView imgView;
    private Button upload,cancel;
    private Bitmap bitmap;
    Uri imageUri;
    MediaPlayer mp=new MediaPlayer();

    String kode_anggota,nama_anggota,email;

    String URL="";
    TextView messageText;
    Button uploadButton,btnpilih,btncamera;
    int serverResponseCode = 0;
    ProgressDialog dialog = null;

    String upLoadServerUri = null;

    /**********  File Path *************/    final String uploadFilePath = "/mnt/sdcard/";
    final String uploadFileName = "service_lifecycle.png";

    @Override    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.uploadserver);

        SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(UploadToServer.this);
        Boolean Registered = sharedPref.getBoolean("Registered", false);
        if (!Registered) {
            finish();
        } else {
            kode_anggota = sharedPref.getString("kode_anggota", "");
            nama_anggota = sharedPref.getString("nama_anggota", "");
            email = sharedPref.getString("email", "");
        }


        txtjudul= (EditText) findViewById(R.id.txtjudul);
        imgView = (ImageView) findViewById(R.id.imageView);
        uploadButton = (Button)findViewById(R.id.uploadButton);
        messageText  = (TextView)findViewById(R.id.messageText);

        btnpilih = (Button)findViewById(R.id.btnpilih);btnpilih.setVisibility(View.GONE);
        btncamera = (Button)findViewById(R.id.btncamera);

        messageText.setText(uploadFilePath+"/"+uploadFileName+"'");

        URL=jsonParser.getIP()+"uploadserver.php";
        upLoadServerUri =   URL;
        uploadButton.setOnClickListener(new OnClickListener() {
            @Override            public void onClick(View v) {

                String judul=txtjudul.getText().toString();
                if(judul.length()>0) {
                    dialog = ProgressDialog.show(UploadToServer.this, "", "Uploading file...", true);
                    new Thread(new Runnable() {
                        public void run() {
                            runOnUiThread(new Runnable() {
                                public void run() {
                                    messageText.setText("Uploading Started.....");
                                }
                            });
                            String AL = messageText.getText().toString();
                            uploadFiles(AL);

                        }
                    }).start();
                }
                else{
                    lengkapi();
                }
            }
        });

        btnpilih.setVisibility(View.GONE);
        btnpilih.setOnClickListener(new OnClickListener() {
            @Override            public void onClick(View v) {
                try {
                    Intent gintent = new Intent();
                    gintent.setType("image/*");
                    gintent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(Intent.createChooser(gintent, "Select Picture"),PICK_IMAGE);
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(),
                            e.getMessage(),
                            Toast.LENGTH_LONG).show();
                    Log.e(e.getClass().getName(), e.getMessage(), e);
                }
            }
        });


        btncamera.setOnClickListener(new OnClickListener() {
            @Override            public void onClick(View v) {
                //define the file-name to save photo taken by Camera activity                String fileName = "uploadFile.jpg";
                //create parameters for Intent with filename                ContentValues values = new ContentValues();
                values.put(MediaStore.Images.Media.TITLE, fileName);
                values.put(MediaStore.Images.Media.DESCRIPTION,"Image captured by camera");
                //imageUri is the current activity attribute, define and save it for later usage (also in onSaveInstanceState)                imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
                //create new Intent                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
                intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
                startActivityForResult(intent, PICK_Camera_IMAGE);
            }
        });
    }
    public void lengkapi() {
        new AlertDialog.Builder(this)
                .setTitle("Lengkapi Judul")
                .setMessage("Yth "+nama_anggota+", Silakan lengkapi Judul Galeri Anda")
                .setNeutralButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dlg, int sumthin) {
                    }
                })
                .show();
    }
    public int uploadFiles(String sourceFileUri) {
        String fileName = sourceFileUri;

        HttpURLConnection conn = null;
        DataOutputStream dos = null;
        String lineEnd = "\r\n";
        String twoHyphens = "--";
        String boundary = "*****";
        int bytesRead, bytesAvailable, bufferSize;
        byte[] buffer;
        int maxBufferSize = 1 * 1024 * 1024;
        File sourceFile = new File(sourceFileUri);

        if (!sourceFile.isFile()) {

            dialog.dismiss();

            Log.e("uploadFile", "Source File not exist :"  +uploadFilePath + "" + uploadFileName);

            runOnUiThread(new Runnable() {
                public void run() {
                    messageText.setText("File not exist :"+uploadFilePath + "" + uploadFileName);
                }
            });

            return 0;

        }
        else        {
            try {
                String judul=txtjudul.getText().toString();
                FileInputStream fileInputStream = new FileInputStream(sourceFile);
                URL url = new URL(upLoadServerUri);

                conn = (HttpURLConnection) url.openConnection();
                conn.setDoInput(true); // Allow Inputs                conn.setDoOutput(true); // Allow Outputs                conn.setUseCaches(false); // Don't use a Cached Copy                conn.setRequestMethod("POST");
//==============
//                List<NameValuePair> params = new ArrayList<NameValuePair>();//                params.add(new BasicNameValuePair("kode_anggota", kode_anggota));//                params.add(new BasicNameValuePair("judul", judul));////                OutputStream os = conn.getOutputStream();//                BufferedWriter writer = new BufferedWriter(  new OutputStreamWriter(os, "UTF-8"));//                writer.write(getQuery(params));//                writer.write(getQuery(params));//                writer.flush();//                writer.close();//                os.close();//                conn.connect();//=============                conn.setRequestProperty("Connection", "Keep-Alive");
                conn.setRequestProperty("ENCTYPE", "multipart/form-data");
                conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
                conn.setRequestProperty("uploaded_file", fileName);
                conn.setRequestProperty("kode_anggota", kode_anggota);
                conn.setRequestProperty("judul", judul);

//                Log.v("HAHAHA",fileName);//                Log.v("HEHE",kode_anggota);

                dos = new DataOutputStream(conn.getOutputStream());

                dos.writeBytes(twoHyphens + boundary + lineEnd);
                dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""                        + fileName + "\"" + lineEnd);

                dos.writeBytes(lineEnd);

                // create a buffer of  maximum size                bytesAvailable = fileInputStream.available();

                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                buffer = new byte[bufferSize];

                // read file and write it into form...                bytesRead = fileInputStream.read(buffer, 0, bufferSize);

                while (bytesRead > 0) {

                    dos.write(buffer, 0, bufferSize);
                    bytesAvailable = fileInputStream.available();
                    bufferSize = Math.min(bytesAvailable, maxBufferSize);
                    bytesRead = fileInputStream.read(buffer, 0, bufferSize);

                }

                // send multipart form data necesssary after file data...                dos.writeBytes(lineEnd);
                dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

                // Responses from the server (code and message)                serverResponseCode = conn.getResponseCode();
                String serverResponseMessage = conn.getResponseMessage();

                Log.i("uploadFile", "HTTP Response is : "                        + serverResponseMessage + ": " + serverResponseCode);

                if(serverResponseCode == 200){

                    runOnUiThread(new Runnable() {
                        public void run() {

                            String msg = "File Upload Completed :"+uploadFileName;

                            messageText.setText(msg);
                            Toast.makeText(UploadToServer.this, "File Upload Complete.", Toast.LENGTH_SHORT).show();
                        }
                    });
                }

                //close the streams //                fileInputStream.close();
                dos.flush();
                dos.close();

            } catch (MalformedURLException ex) {

                dialog.dismiss();
                ex.printStackTrace();

                runOnUiThread(new Runnable() {
                    public void run() {
                        messageText.setText("Fail Upload");
                        Toast.makeText(UploadToServer.this, "MalformedURLException", Toast.LENGTH_SHORT).show();
                    }
                });

            } catch (Exception e) {

                dialog.dismiss();
                e.printStackTrace();

                runOnUiThread(new Runnable() {
                    public void run() {
                        messageText.setText("Fail Uploaded.. ");
                        Toast.makeText(UploadToServer.this, "Got Exception : see logcat ", Toast.LENGTH_SHORT).show();
                    }
                });

            }
            dialog.dismiss();
            return serverResponseCode;

        } // End else block    }


    private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
    {
        StringBuilder result = new StringBuilder();
        boolean first = true;

        for (NameValuePair pair : params)
        {
            if (first)
                first = false;
            else                result.append("&");

            result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
        }

        return result.toString();
    }


    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Uri selectedImageUri = null;
        String filePath = null;
        switch (requestCode) {
            case PICK_IMAGE:
                if (resultCode == Activity.RESULT_OK) {
                    selectedImageUri = data.getData();
                }
                break;
            case PICK_Camera_IMAGE:
                if (resultCode == RESULT_OK) {
                    //use imageUri here to access the image                    selectedImageUri = imageUri;
          /*Bitmap mPic = (Bitmap) data.getExtras().get("data");      selectedImageUri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), mPic, getResources().getString(R.string.app_name), Long.toString(System.currentTimeMillis())));*/                } else if (resultCode == RESULT_CANCELED) {
                    Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();
                }
                break;
        }

        if(selectedImageUri != null){
            btnpilih.setVisibility(View.VISIBLE);

            try {
                // OI FILE Manager                String filemanagerstring = selectedImageUri.getPath();

                // MEDIA GALLERY                String selectedImagePath = getPath(selectedImageUri);


                messageText.setText(selectedImagePath);


                if (selectedImagePath != null) {
                    filePath = selectedImagePath;
                } else if (filemanagerstring != null) {
                    filePath = filemanagerstring;
                } else {
                    Toast.makeText(getApplicationContext(), "Unknown path",  Toast.LENGTH_LONG).show();
                    Log.e("Bitmap", "Unknown path");
                }

                if (filePath != null) {
                    decodeFile(filePath);
                } else {
                    bitmap = null;
                }
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(), "Internal error",  Toast.LENGTH_LONG).show();
                Log.e(e.getClass().getName(), e.getMessage(), e);
            }
        }

    }



    class ImageGalleryTask extends AsyncTask<Void, Void, String> {
        @SuppressWarnings("unused")
        @Override        protected String doInBackground(Void... unsued) {
            InputStream is;
            BitmapFactory.Options bfo;
            Bitmap bitmapOrg;
            ByteArrayOutputStream bao ;

            bfo = new BitmapFactory.Options();
            bfo.inSampleSize = 2;
            //bitmapOrg = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/" + customImage, bfo);
            bao = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bao);
            byte [] ba = bao.toByteArray();
//            String ba1 = Base64.encodeBytes(ba);
            String ba1 = Base64.encodeToString(ba,1);
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("image",ba1));
            nameValuePairs.add(new BasicNameValuePair("cmd","image_android"));
            Log.v("log_tag", System.currentTimeMillis()+".jpg");
            try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new                        //  Here you need to put your server file address

                        HttpPost(URL);//"http://www.picsily.com/upload_photo.php");                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
                Log.v("log_tag", "In the try Loop" );
            }catch(Exception e){
                Log.v("log_tag", "Error in http connection "+e.toString());
            }
            return "Success";
            // (null);        }

        @Override        protected void onProgressUpdate(Void... unsued) {

        }

        @Override        protected void onPostExecute(String sResponse) {
            try {
                if (dialog.isShowing())
                    dialog.dismiss();
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                        e.getMessage(),
                        Toast.LENGTH_LONG).show();
                Log.e(e.getClass().getName(), e.getMessage(), e);
            }
        }

    }

    public String getPath(Uri uri) {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        if (cursor != null) {
            // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL            // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA            int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        } else            return null;
    }

    public void decodeFile(String filePath) {
        // Decode image size        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(filePath, o);

        // The new size we want to scale to        final int REQUIRED_SIZE = 1024;

        // Find the correct scale value. It should be the power of 2.        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE)
                break;
            width_tmp /= 2;
            height_tmp /= 2;
            scale *= 2;
        }

        // Decode with inSampleSize        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;
        bitmap = BitmapFactory.decodeFile(filePath, o2);

        imgView.setImageBitmap(bitmap);

    }

}

//+++++++++++++++++++++++

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >

    <ImageView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1"        android:id="@+id/imageView" />

    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Judul Foto"        android:textColor="#000000"        android:textSize="20sp"        android:textStyle="bold"/>

    <!--  telepon TextField -->    <EditText        android:id="@+id/txtjudul"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:textColor="#000000" />

    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Click To Upload File"        android:id="@+id/uploadButton"        />

    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Choose File"        android:id="@+id/btnpilih"        />


    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Camera"        android:id="@+id/btncamera"        />



    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text=""        android:id="@+id/messageText"        android:textColor="#000000"        android:textStyle="bold"        />
</LinearLayout>

//++++++++++++++++++++++++++


<?php


  require_once"konmysqli.php";
    $file_path = "ypathfile/";
    
 $IMG=$_FILES['uploaded_file']['name'];
 $file_path = $file_path . basename( $IMG);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
    echo "success";
  
  $actualpath = "http://192.168.1.14/Web_Komunitas/ypathfile/$IMG";
  $tgl=date("Y-m-d");
  $jam=date("H:i:s");
  
  $sql = "INSERT INTO tb_temp (path,nama) VALUES ('$actualpath','$IMG')";
  mysqli_query($conn,$sql);
      

    } else{
        echo "fail";
    }
 
 function resize_image($file, $w, $h, $crop=FALSE) {
    list($width, $height) = getimagesize($file);
    $r = $width / $height;
    if ($crop) {
        if ($width > $height) {
            $width = ceil($width-($width*abs($r-$w/$h)));
        } else {
            $height = ceil($height-($height*abs($r-$w/$h)));
        }
        $newwidth = $w;
        $newheight = $h;
    } else {
        if ($w/$h > $r) {
            $newwidth = $h*$r;
            $newheight = $h;
        } else {
            $newheight = $w/$r;
            $newwidth = $w;
        }
    }
    $src = imagecreatefromjpeg($file);
    $dst = imagecreatetruecolor($newwidth, $newheight);
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    return $dst;
}

 
 ?>
 
<?php
if(isset($_POST["submit"])) {
if(is_array($_FILES)) {
/*$file = $_FILES['myImage']['tmp_name']; 
$source_properties = getimagesize($file);
$image_type = $source_properties[2]; 
*/
@copy($_FILES["myImage"]["tmp_name"],"ypathfile/".$_FILES["myImage"]["name"]);
 $file="ypathfile/".$_FILES["myImage"]["name"];
 $source_properties = getimagesize($file);
 $image_type = $source_properties[2]; 
 

if( $image_type == IMAGETYPE_JPEG ) {   
 $image_resource_id = imagecreatefromjpeg($file);  
 $target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
 imagejpeg($target_layer,"ypathfile/".$_FILES['myImage']['name']);
}
elseif( $image_type == IMAGETYPE_GIF )  {  
 $image_resource_id = imagecreatefromgif($file);
 $target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
 imagegif($target_layer,$_FILES['myImage']['name']);
}
elseif( $image_type == IMAGETYPE_PNG ) {
 $image_resource_id = imagecreatefrompng($file); 
 $target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
 imagepng($target_layer,"ypathfile/".$_FILES['myImage']['name'] );
}
}
}


function fn_resize($image_resource_id,$width,$height) {
$target_width =200;
$target_height =200;
$target_layer=imagecreatetruecolor($target_width,$target_height);
imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $width,$height);
return $target_layer;
}
?>

Senin, 29 Oktober 2018

Marker Maps Fr Json Database On Click

package com.example.komunitas;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;

public class Maps extends FragmentActivity{
   private Marker previousMarker = null;
   int jd=0;
   private SupportMapFragment mapFragment;
   String tkode="",tnama="",tmail="",thp="",tlati="",tlongi="",talamat="",tangkatan="",tstatus="",tgambar="";
   String skodelogin="",snamalogin="",smaillogin="";
   String myLati="-6.352953";
   String myLongi="106.831389";
   String myPosisi="UI";
private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
JSONArray myJSON = null;
String ip="";
ArrayList<HashMap<String, String>> arrayList;
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";

String[]arkode_anggota;
String[]artgl;
String[]aralamat;
String[]arlatitude;
String[]arlongitude;
String[]arjam;



   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.maps);
       Intent i= this.getIntent();
      myLati= i.getStringExtra("myLati");
      myLongi= i.getStringExtra("myLongi");
      myPosisi= i.getStringExtra("myPosisi");

      skodelogin= i.getStringExtra("skodelogin");
      snamalogin= i.getStringExtra("snamalogin");
      smaillogin= i.getStringExtra("smaillogin");
        
        arrayList = new ArrayList<HashMap<String, String>>();
      ip=jParser.getIP();
         
      new load().execute();
      
      
   }
   class load extends AsyncTask<String, String, String> {
      @Override      protected void onPreExecute() {
         super.onPreExecute();
         pDialog = new ProgressDialog(Maps.this);
         pDialog.setMessage("Load data. Silahkan Tunggu...");
         pDialog.setIndeterminate(false);
         pDialog.setCancelable(false);
         pDialog.show();
      }
      protected String doInBackground(String... args) {
         List<NameValuePair> params = new ArrayList<NameValuePair>();
         JSONObject json = jParser.makeHttpRequest(ip+"lokasi/lokasi_show.php", "GET", params);
         Log.d("show: ", json.toString());
         try {
            int sukses = json.getInt(TAG_SUKSES);
            if (sukses == 1) {
               myJSON = json.getJSONArray(TAG_record);
               jd=myJSON.length();

arkode_anggota=new String[jd];
artgl=new String[jd];
aralamat=new String[jd];
arlatitude=new String[jd];
arlongitude=new String[jd];
arjam=new String[jd];


               for (int i = 0; i < jd; i++) {
                  JSONObject c = myJSON.getJSONObject(i);
                  
                  arkode_anggota[i]= c.getString("nama_anggota");
                  artgl[i]= c.getString("tgl");
                  aralamat[i]= c.getString("alamat");
                  arlatitude[i]= c.getString("latitude");
                  arlongitude[i]= c.getString("longitude");
                  arjam[i]= c.getString("jam");
                  
                  
               }
            } 
         } 
         catch (JSONException e) {e.printStackTrace();}
         return null;
      }

      protected void onPostExecute(String file_url) {
         pDialog.dismiss();
         runOnUiThread(new Runnable() {
            public void run() {
                setupMap();
            }
         });}
   }
   private void setupMap(){
         mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.maps));

            mapFragment.getMapAsync(new OnMapReadyCallback() {
               @Override               public void onMapReady(GoogleMap map) {
                  double lat=-6.352953;
                  double lon=106.831389;
                  try{
                     lat=Double.parseDouble(myLati);
                     lon=Double.parseDouble(myLongi);
                  }
                  catch(Exception e){
                     lat=-6.352953;
                     lon=106.831389;
                  }
                  map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)).title("Posisi Anda").snippet(myPosisi));
                  map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat,lon),10));

                  for(int i=0;i<jd;i++){
                      lat=-6.352953;
                      lon=106.831389;
                     try{
                        lat=Double.parseDouble(arlatitude[i]);
                        lon=Double.parseDouble(arlongitude[i]);
                     }
                     catch(Exception e){
                        lat=-6.352953;
                        lon=106.831389;
                     }
                     map.addMarker(new MarkerOptions().position(new LatLng(lat, lon)).title(arkode_anggota[i]).snippet(artgl[i]+" "+arjam[i]+" wib "+aralamat[i]));

                  }
//==============
                  map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
                     @Override                     public boolean onMarkerClick(Marker marker) {
                        String locAddress = marker.getTitle();
                        //fillTextViews(locAddress);                        if (previousMarker != null) {
                           previousMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
                        }
                        marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
                        previousMarker = marker;


                        if(locAddress.equalsIgnoreCase("Posisi Anda")){}
                        else{
                           Intent i = new Intent(getApplicationContext(), Detail_anggota.class);
                           i.putExtra("pk", locAddress);
                           i.putExtra("myLati", myLati);
                           i.putExtra("myLongi", myLongi);
                           i.putExtra("myPosisi", myPosisi);
                           i.putExtra("skodelogin", skodelogin);
                           i.putExtra("snamalogin", snamalogin);
                           i.putExtra("smaillogin", smaillogin);
                           startActivityForResult(i, 100);


                        }
                        return true;
                     }
                  });
//==============               }
            });

         }

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    >

    <fragment        android:id="@+id/maps"        android:layout_width="match_parent"        android:layout_height="match_parent"        class="com.google.android.gms.maps.SupportMapFragment"/>

</RelativeLayout>

Gradle.APP
apply plugin: 'com.android.application'
android {
    compileSdkVersion 28    defaultConfig {
        multiDexEnabled true        applicationId "com.example.komunitas"        minSdkVersion 19        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }
    }
    useLibrary 'org.apache.http.legacy'}

dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
//        implementation 'com.android.support:support-v4:28.0.0'        implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'        implementation 'com.android.support:recyclerview-v7:28.0.0-alpha1'        implementation 'com.android.support:cardview-v7:28.0.0-alpha1'        implementation 'com.android.support.constraint:constraint-layout:1.1.3'        testImplementation 'junit:junit:4.12'        androidTestImplementation 'com.android.support.test:runner:1.0.2'        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation 'com.android.support:design:28.0.0-alpha1'        implementation 'com.android.support:multidex:1.0.1'        implementation 'com.jjoe64:graphview:4.2.2'

    //IMAGE LOAD    implementation 'com.github.bumptech.glide:glide:3.7.0'
    //CHAT UI    implementation 'hani.momanii.supernova_emoji_library:supernova-emoji-library:0.0.2'
    // AUTH    implementation 'com.google.android.gms:play-services-auth:9.2.0'    implementation 'com.google.firebase:firebase-auth:9.2.0'
    //DATABASE FIREBASE,UI    implementation 'com.google.firebase:firebase-database:9.2.0'    implementation 'com.firebaseui:firebase-ui-database:0.4.1'
    //STORAGE FIREBASE    implementation 'com.google.firebase:firebase-storage:9.2.0'
    //Places SERVICES    implementation 'com.google.android.gms:play-services-places:9.2.0'    implementation 'com.google.android.gms:play-services:9.2.0'

}
apply plugin: 'com.google.gms.google-services'


Jumat, 26 Oktober 2018

Gradle 28

Settingan Gradle terbaru:

APP

apply plugin: 'com.android.application'
android {
    compileSdkVersion 28    defaultConfig {
        multiDexEnabled true        applicationId "com.example.komunitas"        minSdkVersion 15        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }
    }
    useLibrary 'org.apache.http.legacy'}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:support-v4:28.0.0'    implementation 'com.android.support:appcompat-v7:28.0.0'    implementation 'com.android.support:recyclerview-v7:28.0.0'    implementation 'com.android.support:cardview-v7:28.0.0'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'    implementation 'com.google.android.gms:play-services:4.0.30'    implementation 'com.android.support:design:28.0.0'    implementation 'com.android.support:multidex:1.0.1'    implementation 'com.jjoe64:graphview:4.2.2'

}


Project

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'        
        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}



+++++++++++++++++++++++++++
YAITU:
Add multiDexEnabled true to your build.gradle
android {
    compileSdkVersion 26
    defaultConfig {
      ...
        minSdkVersion 15
        targetSdkVersion 26
        multiDexEnabled true
     ...
    }
}
and add the dependency
dependencies {
    compile 'com.android.support:multidex:1.0.1'}
It may the first one works for u and so on but it really depends on the nature of your problem for me for example
I got the error once I have added this library
implementation 'com.jjoe64:graphview:4.2.2'
and later I discovered that I have to check that and I have to add the same version of the support libraries. So I have to try another version
compile 'com.jjoe64:graphview:4.2.1'
and it fixes the problem
it's better to use implementation or api rather compile
just replace compile with implementation, debugCompile with debugImplementation, testCompile with testImplementation and androidtestcompile with androidTestImplementation
For example: Instead of this
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
use like this
implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'
SO:
  • Delete all the build folders and the gradle cache.
  • From the Build menu, press the Clean Project button.
  • After task completed, press the Rebuild Project button from the Build menu.




Rabu, 03 Oktober 2018

Android to NOX




1.Download NOX 
2.Install dan lacak pathnya ....(klo saya di D:\Program Files\Nox)

3.Setting adb nya
nox_adb.exe connect 127.0.0.1:62001


Ref: Konfigurasi Nox Lanjut