| Code with Finding: |
/*
* Decompiled with CFR 0_128.
*
* Could not load the following classes:
* android.app.Activity
* android.content.ContentValues
* android.content.Context
* android.database.Cursor
* android.database.sqlite.SQLiteDatabase
* android.graphics.Bitmap
* android.graphics.BitmapFactory
* android.util.Base64
* de.cosmosdirekt.InternDb.DatabaseHelper
* de.cosmosdirekt.InternDb.RestUtils
* de.cosmosdirekt.InternDb.objects.DataStructAllgemein
* de.cosmosdirekt.images.Images
* org.json.JSONArray
* org.json.JSONObject
*/
package de.cosmosdirekt.InternDb;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import de.cosmosdirekt.InternDb.DatabaseHelper;
import de.cosmosdirekt.InternDb.RestUtils;
import de.cosmosdirekt.InternDb.objects.DataStructAllgemein;
import de.cosmosdirekt.images.Images;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
public class UploadObjectsLogic {
Context context;
DatabaseHelper databaseHelper;
public UploadObjectsLogic(Context context, DatabaseHelper databaseHelper) {
this.context = context;
this.databaseHelper = databaseHelper;
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
private void deleteFromInternalStorage(String string) {
Context context;
try {
context = this.context;
}
catch (Exception exception) {
exception.printStackTrace();
return;
}
context.deleteFile(string);
do {
return;
break;
} while (true);
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
private JSONObject getDataFromContentId(String string) {
Object object;
try {
object = this.databaseHelper;
}
catch (Exception exception) {
exception.printStackTrace();
return new JSONObject();
}
SQLiteDatabase sQLiteDatabase = object.getReadableDatabase();
JSONObject jSONObject = new JSONObject();
String string2 = "SELECT VSNR,FILENAME from UPLOADOBJECTS where CONTENTID = ?";
int n = 1;
String[] arrstring = new String[n];
n = 0;
object = null;
arrstring[0] = string;
Cursor cursor = sQLiteDatabase.rawQuery(string2, arrstring);
n = cursor.moveToFirst() ? 1 : 0;
if (n == 0) return jSONObject;
object = "VSNR";
String string3 = "VSNR";
int n2 = cursor.getColumnIndex(string3);
string3 = cursor.getString(n2);
jSONObject.put((String)object, (Object)string3);
object = "FILENAME";
string3 = "FILENAME";
n2 = cursor.getColumnIndex(string3);
string3 = cursor.getString(n2);
jSONObject.put((String)object, (Object)string3);
return jSONObject;
}
/*
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
*/
private String getFileFromInternalStorage(String string) {
try {
String string2;
Context context = this.context;
FileInputStream fileInputStream = context.openFileInput(string);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder stringBuilder = new StringBuilder();
while ((string2 = bufferedReader.readLine()) != null) {
stringBuilder.append(string2);
}
return stringBuilder.toString();
}
catch (Exception exception) {
exception.printStackTrace();
return null;
}
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
private JSONArray getObjectFromStorageAndDatabase(String string, String[] arrstring) {
JSONArray jSONArray;
SQLiteDatabase sQLiteDatabase;
block36 : {
Object object = this.databaseHelper;
sQLiteDatabase = object.getReadableDatabase();
jSONArray = new JSONArray();
Cursor cursor = sQLiteDatabase.rawQuery(string, arrstring);
boolean bl = cursor.moveToFirst();
if (!bl) break block36;
do {
JSONObject jSONObject = new JSONObject();
object = "CONTENTID";
object = object.toLowerCase();
String string2 = "CONTENTID";
int n = cursor.getColumnIndex(string2);
string2 = cursor.getString(n);
jSONObject.put((String)object, (Object)string2);
object = "CATCODE";
object = object.toLowerCase();
string2 = "CATCODE";
n = cursor.getColumnIndex(string2);
string2 = cursor.getString(n);
jSONObject.put((String)object, (Object)string2);
object = "SYNC";
object = object.toLowerCase();
string2 = "SYNC";
n = cursor.getColumnIndex(string2);
string2 = cursor.getString(n);
jSONObject.put((String)object, (Object)string2);
object = "FILENAME";
object = object.toLowerCase();
string2 = "FILENAME";
n = cursor.getColumnIndex(string2);
string2 = cursor.getString(n);
jSONObject.put((String)object, (Object)string2);
object = "CONTENTID";
object = object.toLowerCase();
object = jSONObject.getString((String)object);
String string3 = this.getFileFromInternalStorage((String)object);
object = string3.getBytes();
n = 0;
string2 = null;
byte[] arrby = Base64.decode((byte[])object, (int)0);
bl = false;
object = null;
n = arrby.length;
Bitmap bitmap = BitmapFactory.decodeByteArray((byte[])arrby, (int)0, (int)n);
object = "orientation";
string2 = Images.getOrientation((Bitmap)bitmap);
jSONObject.put((String)object, (Object)string2);
object = "pic";
jSONObject.put((String)object, (Object)string3);
jSONArray.put((Object)jSONObject);
if (bl = cursor.moveToNext()) continue;
break;
} while (true);
}
try {
sQLiteDatabase.close();
return jSONArray;
}
catch (Exception exception) {
exception.printStackTrace();
sQLiteDatabase.close();
return null;
}
}
private void prepareDbForNewInstallation(JSONArray jSONArray, String string) {
int n;
for (int i = 0; i < (n = jSONArray.length()); ++i) {
Object object = jSONArray.get(i).toString();
JSONObject jSONObject = new JSONObject((String)object);
String string2 = jSONObject.getString("vsnr");
String string3 = jSONObject.getString("filename");
String string4 = "";
String string5 = "J";
String string6 = "N";
object = this;
this.insertObjects(string4, null, string2, string3, string5, string6, string);
}
}
private void prepareDbForNewInstallationOneObject(JSONObject jSONObject, String string) {
String string2 = jSONObject.getString("vsnr");
String string3 = jSONObject.getString("filename");
this.insertObjects("", null, string2, string3, "J", "N", string);
}
/*
* Enabled aggressive block sorting
*/
private JSONObject requestDownloadBodyFromDb(String string) {
JSONObject jSONObject;
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
JSONArray jSONArray = new JSONArray();
JSONObject jSONObject2 = new JSONObject();
String string2 = "";
String string3 = "";
String string4 = "";
Boolean bl = false;
JSONArray jSONArray2 = new JSONArray();
String string5 = "SELECT VSNR,FILENAME,DOWNLOAD from UPLOADOBJECTS where DOWNLOAD = 'N' AND EMAIL = ? ORDER BY VSNR ASC";
String[] arrstring = new String[1];
String string6 = null;
arrstring[0] = string;
Cursor cursor = sQLiteDatabase.rawQuery(string5, arrstring);
int n = cursor.moveToFirst();
if (n != 0) {
do {
n = cursor.getColumnIndex("VSNR");
string3 = cursor.getString(n);
string6 = "FILENAME";
n = cursor.getColumnIndex(string6);
string4 = cursor.getString(n);
n = bl.booleanValue() ? 1 : 0;
if (n == 0) {
string2 = string3;
}
if ((n = (int)(string3.equals(string2) ? 1 : 0)) == 0) {
jSONObject = new JSONObject();
jSONObject.put("vsnr", (Object)string2);
string6 = "filenames";
jSONObject.put(string6, (Object)jSONArray2);
jSONArray.put((Object)jSONObject);
jSONArray2 = new JSONArray();
} else {
jSONArray2.put((Object)string4);
}
bl = true;
} while ((n = (int)(cursor.moveToNext() ? 1 : 0)) != 0);
}
if ((n = bl.booleanValue()) != 0) {
jSONObject = new JSONObject();
jSONObject.put("vsnr", (Object)string3);
string6 = "filenames";
jSONObject.put(string6, (Object)jSONArray2);
jSONArray.put((Object)jSONObject);
}
jSONObject2.put("objects", (Object)jSONArray);
return jSONObject2;
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
private void writeToInternalStorage(String string, String string2) {
byte[] arrby;
try {
arrby = this.context;
}
catch (Exception exception) {
exception.printStackTrace();
return;
}
FileOutputStream fileOutputStream = arrby.openFileOutput(string, 0);
arrby = string2.getBytes();
fileOutputStream.write(arrby);
fileOutputStream.close();
do {
return;
break;
} while (true);
}
public void checkAllObject(DataStructAllgemein dataStructAllgemein) {
Object object;
int n;
boolean bl;
ArrayList arrayList = this.getAllObject();
String string = "servicesIDM/mcdservices/downloadAllFiles";
ArrayList<String> arrayList2 = new ArrayList<String>();
Object object2 = new Object();
String string2 = dataStructAllgemein.getToken();
Object object3 = dataStructAllgemein.getEmail();
String string3 = dataStructAllgemein.getUrlPrefix();
String string4 = dataStructAllgemein.getServerKey();
String string5 = dataStructAllgemein.getPubKey();
String string6 = RestUtils.getRequestBody((JSONObject)object2, (String)string2, (String)object3, (String)string3, (String)string4, (String)string5);
object2 = dataStructAllgemein.getUrlPrefix();
string2 = "POST";
object3 = false;
String string7 = RestUtils.callHttpProcess((String)object2, (String)string, (String)string6, (String)string2, (Boolean)object3);
JSONObject jSONObject = RestUtils.getResponse((String)string7, (DataStructAllgemein)dataStructAllgemein);
object2 = "o";
JSONArray jSONArray = jSONObject.getJSONArray((String)object2);
for (int i = 0; i < (n = jSONArray.length()); ++i) {
object2 = jSONArray.get(i).toString();
object = new Object((String)object2);
string3 = object.getString("vsnr");
object2 = "filename";
string4 = object.getString((String)object2);
arrayList2.add(string4);
n = arrayList.contains(string4) ? 1 : 0;
if (n != 0) continue;
string2 = "";
object3 = null;
string5 = "J";
String string8 = "N";
String string9 = dataStructAllgemein.getEmail();
object2 = this;
this.insertObjects(string2, null, string3, string4, string5, string8, string9);
}
object2 = arrayList.iterator();
while (bl = object2.hasNext()) {
object = (String)object2.next();
bl = arrayList2.contains(object);
if (bl) continue;
this.deleteImageForFilename((String)object);
}
}
/*
* Enabled aggressive block sorting
*/
public void checkDownloadObjects(DataStructAllgemein dataStructAllgemein, Activity activity) {
String string;
Object object;
Boolean bl = false;
String string2 = "";
JSONObject jSONObject = new JSONObject();
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
Cursor cursor = sQLiteDatabase.rawQuery(string = "SELECT COUNT(*) AS ANZAHL from UPLOADOBJECTS", (String[])(object = new String[0]));
int n = cursor.moveToFirst();
if (n == 0) {
return;
}
object = "ANZAHL";
n = cursor.getColumnIndex((String)object);
Integer n2 = cursor.getInt(n);
n = n2;
if (n == 0) {
n = 1;
bl = (boolean)n;
}
if ((n = (int)(bl.booleanValue() ? 1 : 0)) == 0) {
this.checkAllObject(dataStructAllgemein);
object = dataStructAllgemein.getEmail();
jSONObject = this.requestDownloadBodyFromDb((String)object);
string2 = "servicesIDM/mcdservices/downloadSpecificFiles";
} else {
string2 = "servicesIDM/mcdservices/downloadAllFiles";
}
ArrayList arrayList = this.getAllObject();
n = jSONObject.length();
if (n != 0 && (n = (object = jSONObject.getJSONArray("objects")).length()) == 0) {
jSONObject = new JSONObject();
string2 = "servicesIDM/mcdservices/downloadAllFiles";
}
object = dataStructAllgemein.getToken();
String string3 = dataStructAllgemein.getEmail();
String string4 = dataStructAllgemein.getUrlPrefix();
String string5 = dataStructAllgemein.getServerKey();
String string6 = dataStructAllgemein.getPubKey();
String string7 = RestUtils.getRequestBody((JSONObject)jSONObject, (String)object, (String)string3, (String)string4, (String)string5, (String)string6);
object = dataStructAllgemein.getUrlPrefix();
string6 = "POST";
Object object2 = false;
String string8 = RestUtils.callHttpProcess((String)object, (String)string2, (String)string7, (String)string6, (Boolean)object2);
JSONObject jSONObject2 = RestUtils.getResponse((String)string8, (DataStructAllgemein)dataStructAllgemein);
object = "o";
JSONArray jSONArray = jSONObject2.getJSONArray((String)object);
n = bl.booleanValue() ? 1 : 0;
if (n != 0) {
object = dataStructAllgemein.getEmail();
this.prepareDbForNewInstallation(jSONArray, (String)object);
}
int n3 = 0;
while (n3 < (n = jSONArray.length())) {
object = jSONArray.get(n3).toString();
JSONObject jSONObject3 = new JSONObject((String)object);
n = bl.booleanValue() ? 1 : 0;
if (n == 0 && (n = (int)(arrayList.contains(object = jSONObject3.getString("filename")) ? 1 : 0)) == 0) {
object = dataStructAllgemein.getEmail();
this.prepareDbForNewInstallationOneObject(jSONObject3, (String)object);
}
string4 = jSONObject3.getString("vsnr");
string5 = jSONObject3.getString("filename");
string3 = this.getContentId(string4, string5);
object = jSONObject3.getString("url");
string6 = jSONObject3.getString("key");
object2 = jSONObject3.getString("padding");
RestUtils.startAsyncCallS3Download((String)object, (String)string3, (String)string4, (String)string5, (String)string6, (String)object2, (DataStructAllgemein)dataStructAllgemein, (Activity)activity);
++n3;
}
}
public JSONObject deleteImage(String string) {
JSONObject jSONObject = this.getDataFromContentId(string);
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getWritableDatabase();
String[] arrstring = new String[]{string};
sQLiteDatabase.delete("UPLOADOBJECTS", "CONTENTID= ?", arrstring);
this.deleteFromInternalStorage(string);
return jSONObject;
}
public JSONObject deleteImageForFilename(String string) {
String string2 = this.getContentIdFromFilename(string);
JSONObject jSONObject = this.getDataFromContentId(string2);
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getWritableDatabase();
String[] arrstring = new String[]{string2};
sQLiteDatabase.delete("UPLOADOBJECTS", "CONTENTID= ?", arrstring);
this.deleteFromInternalStorage(string2);
return jSONObject;
}
public ArrayList getAllObject() {
Object object;
String string;
ArrayList<Object> arrayList = new ArrayList<Object>();
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
Cursor cursor = sQLiteDatabase.rawQuery(string = "SELECT FILENAME from UPLOADOBJECTS", (String[])(object = new String[0]));
int n = cursor.moveToFirst();
if (n != 0) {
do {
n = cursor.getColumnIndex("FILENAME");
object = cursor.getString(n);
arrayList.add(object);
} while ((n = (int)(cursor.moveToNext() ? 1 : 0)) != 0);
}
return arrayList;
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
public String getContentId(String string, String string2) {
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
String string3 = "SELECT CONTENTID from UPLOADOBJECTS where VSNR = ? AND FILENAME = ?";
String[] arrstring = new String[2];
String string4 = null;
arrstring[0] = string;
arrstring[1] = string2;
Cursor cursor = sQLiteDatabase.rawQuery(string3, arrstring);
int n = cursor.moveToFirst();
if (n == 0) return null;
n = cursor.getColumnIndex("CONTENTID");
return cursor.getString(n);
}
/*
* Enabled force condition propagation
* Lifted jumps to return sites
*/
public String getContentIdFromFilename(String string) {
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
String string2 = "SELECT CONTENTID from UPLOADOBJECTS where FILENAME = ?";
String[] arrstring = new String[1];
String string3 = null;
arrstring[0] = string;
Cursor cursor = sQLiteDatabase.rawQuery(string2, arrstring);
int n = cursor.moveToFirst();
if (n == 0) return null;
n = cursor.getColumnIndex("CONTENTID");
return cursor.getString(n);
}
public String insertObjects(String string, String string2, String string3, String string4, String string5, String string6, String string7) {
String string8 = UUID.randomUUID().toString();
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("CATCODE", string);
contentValues.put("CONTENTID", string8);
contentValues.put("VSNR", string3);
contentValues.put("FILENAME", string4);
contentValues.put("SYNC", string5);
contentValues.put("DOWNLOAD", string6);
contentValues.put("EMAIL", string7);
Comparable comparable = new Comparable();
long l = comparable.getTime();
comparable = Long.valueOf(l);
contentValues.put("ERSTELLUNGSZEITPUNKT", (Long)comparable);
String string9 = "UPLOADOBJECTS";
comparable = null;
sQLiteDatabase.insert(string9, null, contentValues);
sQLiteDatabase.close();
if (string2 != null) {
this.writeToInternalStorage(string8, string2);
}
return string8;
}
public JSONArray loadAllImagesFromVsnr(String string) {
String[] arrstring = new String[]{string};
return this.getObjectFromStorageAndDatabase("SELECT CONTENTID,CATCODE,SYNC , FILENAME from UPLOADOBJECTS where VSNR = ? AND DOWNLOAD = 'J' ORDER BY ERSTELLUNGSZEITPUNKT DESC", arrstring);
}
public JSONArray loadPicFromContentId(String string) {
String[] arrstring = new String[]{string};
return this.getObjectFromStorageAndDatabase("SELECT CONTENTID,CATCODE,SYNC , FILENAME from UPLOADOBJECTS where CONTENTID = ? AND DOWNLOAD = 'J'", arrstring);
}
public Boolean setSyncAfterUpload(String string, String string2) {
boolean bl = true;
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("SYNC", "J");
contentValues.put("FILENAME", string2);
String[] arrstring = new String[bl];
arrstring[0] = string;
sQLiteDatabase.update("UPLOADOBJECTS", contentValues, "CONTENTID= ?", arrstring);
return bl;
}
public JSONArray syncAllObjectToS3() {
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getReadableDatabase();
String string = "SELECT CONTENTID,CATCODE,VSNR,FILENAME from UPLOADOBJECTS where SYNC = 'N'";
String string2 = null;
String[] arrstring = new String[]{};
JSONArray jSONArray = new JSONArray();
Cursor cursor = sQLiteDatabase.rawQuery(string, arrstring);
boolean bl = cursor.moveToFirst();
if (bl) {
do {
JSONObject jSONObject = new JSONObject();
int n = cursor.getColumnIndex("CONTENTID");
String string3 = cursor.getString(n);
jSONObject.put("CONTENTID", (Object)string3);
n = cursor.getColumnIndex("CATCODE");
string3 = cursor.getString(n);
jSONObject.put("CATCODE", (Object)string3);
n = cursor.getColumnIndex("VSNR");
string3 = cursor.getString(n);
jSONObject.put("VSNR", (Object)string3);
n = cursor.getColumnIndex("FILENAME");
string3 = cursor.getString(n);
jSONObject.put("FILENAME", (Object)string3);
string2 = jSONObject.getString("CONTENTID");
String string4 = this.getFileFromInternalStorage(string2);
string2 = "pic";
jSONObject.put(string2, (Object)string4);
jSONArray.put((Object)jSONObject);
} while (bl = cursor.moveToNext());
}
return jSONArray;
}
public void updateDownloadImage(String string, String string2) {
SQLiteDatabase sQLiteDatabase = this.databaseHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("DOWNLOAD", "J");
String[] arrstring = new String[]{string};
sQLiteDatabase.update("UPLOADOBJECTS", contentValues, "CONTENTID= ?", arrstring);
this.writeToInternalStorage(string, string2);
sQLiteDatabase.close();
}
}
|