package com.devil.app;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import java.io.*;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Environment;
import android.provider.MediaStore;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.ref.WeakReference;
import java.lang.reflect.Method;
import java.util.ArrayList;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.util.Log;
import android.widget.Toast;
import android.net.Uri;
import android.app.Activity;
import java.net.*;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.BA.Permissions;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.*;
import anywheresoftware.b4a.*;
@Version(1.1f)
@ShortName("PictureDownloadUrl")
@Author("DevilApp")
//@DependsOn(values={"XXX"})
@Permissions(values={"android.permission.INTERNET"})
public class PictureDownloadUrl {
private BA ba;
private final static boolean DEBUG = false;
String fullUrl=null;
String formato=null;
String dir=null;
String tutto=null;
/*
* Normally do not hardcode "/sdcard/";
* use Environment.getExternalStorageDirectory().getPath() instead
*/
/**
* Resize and Copy Image from URL to Destiny ;) - Joke NJDude
* pathSourceUrl = URL where is original Image
* imgSource = Name Image original
* pathDestiny = Path where you want put new Image
* imgDestiny = Name Image new
* format = "png" or "jpeg"
*Example:<code>
*Dim FileUrl As PictureDownloadUrl
*FileUrl.Copy("http://devil-app.eu/immagini_mie/","test.jpg", File.DirRootExternal,"vedi","jpeg")</code>
*/
public void Copy(BA ba, String pathSourceUrl, String imgSource, String pathDestiny, String imgDestiny, String format){
try {
tutto = pathSourceUrl
+ imgSource;
BA.Log("lib:Path " + tutto);
URL url = new URL(tutto);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
try {
connection.setDoInput(true);
}catch(Exception e){
if(DEBUG) Log.e("Exception", e.toString());
BA.Log("lib:Connection 0: " + e.toString());
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(ba.context, "Lib:Connection 0: " + e.toString(), duration);
toast.show();
}
try {
// *** Aggiungo per evitare eccezione al di sopra targeSDKVersion 9
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
// *** Fine
connection.connect();
}catch(Exception e){
if(DEBUG) Log.e("Exception", e.toString());
BA.Log("lib:Connection: " + e.toString());
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(ba.context, "Lib:Connection: " + e.toString(), duration);
toast.show();
}
InputStream input = connection.getInputStream();
dir = pathDestiny;
Bitmap bitmap_Source = BitmapFactory.decodeStream(input);
int originalWidth = bitmap_Source.getWidth();
int originalHeight = bitmap_Source.getHeight();
Bitmap bm = Bitmap.createScaledBitmap(bitmap_Source, originalWidth, originalHeight, false);
BA.Log("lib:OK.. " + tutto);
File file = new File(dir, imgDestiny +"."+ format);
FileOutputStream fOut;
try {
fOut = new FileOutputStream(file);
if (format == "png")
{ bm.compress(Bitmap.CompressFormat.PNG, 100, fOut); }
else
{ bm.compress(Bitmap.CompressFormat.JPEG, 100, fOut); }
fOut.flush();
fOut.close();
} catch (Exception e) { // TODO
if(DEBUG) Log.e("Exception", e.toString());
BA.Log("lib:Error 1.. " + tutto);
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(ba.context, "Error 1: " + e.toString(), duration);
toast.show();
}
}catch(Exception e){
if(DEBUG) Log.e("Exception", e.toString());
BA.Log("lib:Error 2.. " + e.toString());
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(ba.context, "Error 2: " + e.toString(), duration);
toast.show();
}
//Salvo File
}
}