depend on smart-exception-java on android test-app

This commit is contained in:
Taner Sener
2020-04-13 19:38:26 +01:00
parent 13fed8c537
commit 080906ea0d
8 changed files with 38 additions and 23 deletions
+1
View File
@@ -53,6 +53,7 @@ android.applicationVariants.all { variant ->
dependencies {
// implementation project(':app')
implementation 'com.arthenica:mobile-ffmpeg-full:4.3.1'
implementation 'com.arthenica:smart-exception-java:0.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
@@ -36,6 +36,7 @@ import com.arthenica.mobileffmpeg.Config;
import com.arthenica.mobileffmpeg.util.AsyncSingleFFmpegExecuteTask;
import com.arthenica.mobileffmpeg.util.ResourcesUtil;
import com.arthenica.mobileffmpeg.util.SingleExecuteCallback;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -56,6 +57,10 @@ public class MainActivity extends AppCompatActivity {
Manifest.permission.CAMERA
};
static {
Exceptions.registerRootPackage("com.arthenica");
}
protected static final Queue<Callable> actionQueue = new ConcurrentLinkedQueue<>();
protected static final Handler handler = new Handler();
@@ -72,7 +77,7 @@ public class MainActivity extends AppCompatActivity {
try {
callable.call();
} catch (final Exception e) {
android.util.Log.e(MainActivity.TAG, "Running UI action received error.", e);
android.util.Log.e(TAG, String.format("Running UI action received error.%s", Exceptions.getStackTraceString(e)));
}
}
} while (callable != null);
@@ -123,7 +128,7 @@ public class MainActivity extends AppCompatActivity {
registerAppFont();
Log.d(TAG, "Application fonts registered.");
} catch (final IOException e) {
Log.e(TAG, "Font registration failed.", e);
Log.e(TAG, String.format("Font registration failed.%s", Exceptions.getStackTraceString(e)));
}
Log.d(TAG, "Listing supported camera ids.");
@@ -43,6 +43,7 @@ import com.arthenica.mobileffmpeg.util.AsyncCatImageTask;
import com.arthenica.mobileffmpeg.util.DialogUtil;
import com.arthenica.mobileffmpeg.util.ResourcesUtil;
import com.arthenica.mobileffmpeg.util.SingleExecuteCallback;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -188,7 +189,7 @@ public class PipeTabFragment extends Fragment {
startAsyncCatImageProcess(image3File.getAbsolutePath(), pipe3);
} catch (IOException e) {
Log.e(TAG, "Create video failed", e);
Log.e(TAG, String.format("Create video failed %s", Exceptions.getStackTraceString(e)));
Popup.show(requireContext(), "Create video failed");
}
}
@@ -42,6 +42,7 @@ import com.arthenica.mobileffmpeg.StatisticsCallback;
import com.arthenica.mobileffmpeg.util.DialogUtil;
import com.arthenica.mobileffmpeg.util.ResourcesUtil;
import com.arthenica.mobileffmpeg.util.SingleExecuteCallback;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -103,7 +104,7 @@ public class SubtitleTabFragment extends Fragment {
@Override
public void apply(LogMessage message) {
android.util.Log.d(MainActivity.TAG, message.getText());
Log.d(MainActivity.TAG, message.getText());
}
});
}
@@ -229,7 +230,7 @@ public class SubtitleTabFragment extends Fragment {
}, ffmpegCommand);
} catch (IOException e) {
Log.e(TAG, "Burn subtitles failed", e);
Log.e(TAG, String.format("Burn subtitles failed %s", Exceptions.getStackTraceString(e)));
Popup.show(requireContext(), "Burn subtitles failed");
}
}
@@ -38,6 +38,7 @@ import com.arthenica.mobileffmpeg.LogMessage;
import com.arthenica.mobileffmpeg.util.DialogUtil;
import com.arthenica.mobileffmpeg.util.ResourcesUtil;
import com.arthenica.mobileffmpeg.util.SingleExecuteCallback;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -92,7 +93,7 @@ public class VidStabTabFragment extends Fragment {
@Override
public void apply(LogMessage message) {
android.util.Log.d(MainActivity.TAG, message.getText());
Log.d(MainActivity.TAG, message.getText());
}
});
}
@@ -121,7 +122,7 @@ public class VidStabTabFragment extends Fragment {
stabilizedVideoFile.delete();
}
android.util.Log.d(TAG, "Testing VID.STAB");
Log.d(TAG, "Testing VID.STAB");
showCreateProgressDialog();
@@ -131,13 +132,13 @@ public class VidStabTabFragment extends Fragment {
final String ffmpegCommand = Video.generateShakingVideoScript(image1File.getAbsolutePath(), image2File.getAbsolutePath(), image3File.getAbsolutePath(), videoFile.getAbsolutePath());
android.util.Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", ffmpegCommand));
Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", ffmpegCommand));
MainActivity.executeAsync(new SingleExecuteCallback() {
@Override
public void apply(final int returnCode, final String commandOutput) {
android.util.Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
hideCreateProgressDialog();
@@ -147,30 +148,30 @@ public class VidStabTabFragment extends Fragment {
public Object call() {
if (returnCode == RETURN_CODE_SUCCESS) {
android.util.Log.d(TAG, "Create completed successfully; stabilizing video.");
Log.d(TAG, "Create completed successfully; stabilizing video.");
final String analyzeVideoCommand = String.format("-y -i %s -vf vidstabdetect=shakiness=10:accuracy=15:result=%s -f null -", videoFile.getAbsolutePath(), shakeResultsFile.getAbsolutePath());
showStabilizeProgressDialog();
android.util.Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", analyzeVideoCommand));
Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", analyzeVideoCommand));
MainActivity.executeAsync(new SingleExecuteCallback() {
@Override
public void apply(final int returnCode, final String commandOutput) {
android.util.Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
if (returnCode == RETURN_CODE_SUCCESS) {
final String stabilizeVideoCommand = String.format("-y -i %s -vf vidstabtransform=smoothing=30:input=%s -c:v mpeg4 %s", videoFile.getAbsolutePath(), shakeResultsFile.getAbsolutePath(), stabilizedVideoFile.getAbsolutePath());
android.util.Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", stabilizeVideoCommand));
Log.d(TAG, String.format("FFmpeg process started with arguments\n'%s'", stabilizeVideoCommand));
MainActivity.executeAsync(new SingleExecuteCallback() {
@Override
public void apply(final int returnCode, final String commandOutput) {
android.util.Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
hideStabilizeProgressDialog();
@@ -179,12 +180,12 @@ public class VidStabTabFragment extends Fragment {
@Override
public Object call() {
if (returnCode == RETURN_CODE_SUCCESS) {
android.util.Log.d(TAG, "Stabilize video completed successfully; playing videos.");
Log.d(TAG, "Stabilize video completed successfully; playing videos.");
playVideo();
playStabilizedVideo();
} else {
Popup.show(requireContext(), "Stabilize video failed. Please check log for the details.");
android.util.Log.d(TAG, String.format("Stabilize video failed with rc=%d", returnCode));
Log.d(TAG, String.format("Stabilize video failed with rc=%d", returnCode));
}
return null;
@@ -196,14 +197,14 @@ public class VidStabTabFragment extends Fragment {
} else {
hideStabilizeProgressDialog();
Popup.show(requireContext(), "Stabilize video failed. Please check log for the details.");
android.util.Log.d(TAG, String.format("Stabilize video failed with rc=%d", returnCode));
Log.d(TAG, String.format("Stabilize video failed with rc=%d", returnCode));
}
}
}, analyzeVideoCommand);
} else {
Popup.show(requireContext(), "Create video failed. Please check log for the details.");
android.util.Log.d(TAG, String.format("Create failed with rc=%d", returnCode));
Log.d(TAG, String.format("Create failed with rc=%d", returnCode));
}
return null;
@@ -213,7 +214,7 @@ public class VidStabTabFragment extends Fragment {
}, ffmpegCommand);
} catch (IOException e) {
android.util.Log.e(TAG, "Stabilize video failed", e);
Log.e(TAG, String.format("Stabilize video failed %s", Exceptions.getStackTraceString(e)));
Popup.show(requireContext(), "Stabilize video failed");
}
}
@@ -46,6 +46,7 @@ import com.arthenica.mobileffmpeg.StatisticsCallback;
import com.arthenica.mobileffmpeg.util.DialogUtil;
import com.arthenica.mobileffmpeg.util.ResourcesUtil;
import com.arthenica.mobileffmpeg.util.SingleExecuteCallback;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -206,7 +207,7 @@ public class VideoTabFragment extends Fragment implements AdapterView.OnItemSele
}, ffmpegCommand);
} catch (IOException e) {
Log.e(TAG, "Encode video failed", e);
Log.e(TAG, String.format("Encode video failed %s", Exceptions.getStackTraceString(e)));
Popup.show(requireContext(), "Encode video failed");
}
}
@@ -228,7 +229,7 @@ public class VideoTabFragment extends Fragment implements AdapterView.OnItemSele
Log.d(TAG, String.format("FFmpeg process exited with rc %d", returnCode));
} catch (IOException e) {
Log.e(TAG, "Encode webp failed", e);
Log.e(TAG, String.format("Encode webp failed %s", Exceptions.getStackTraceString(e)));
Popup.show(requireContext(), "Encode webp failed");
}
}
@@ -22,6 +22,8 @@ package com.arthenica.mobileffmpeg.util;
import android.os.AsyncTask;
import android.util.Log;
import com.arthenica.smartexception.java.Exceptions;
import java.io.IOException;
import static com.arthenica.mobileffmpeg.test.MainActivity.TAG;
@@ -41,7 +43,7 @@ public class AsyncCatImageTask extends AsyncTask<String, Integer, Integer> {
return rc;
} catch (final IOException | InterruptedException e) {
Log.e(TAG, String.format("Async cat image command failed for %s.", inputs[0]), e);
Log.e(TAG, String.format("Async cat image command failed for %s.%s", inputs[0], Exceptions.getStackTraceString(e)));
return -1;
}
}
@@ -25,12 +25,15 @@ import android.graphics.BitmapFactory;
import android.util.Log;
import com.arthenica.mobileffmpeg.test.MainActivity;
import com.arthenica.smartexception.java.Exceptions;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import static com.arthenica.mobileffmpeg.test.MainActivity.TAG;
public class ResourcesUtil {
public static void resourceToFile(Resources resources, final int resourceId, final File file) throws IOException {
Bitmap bitmap = BitmapFactory.decodeResource(resources, resourceId);
@@ -60,7 +63,7 @@ public class ResourcesUtil {
outputStream.write(buffer, 0, readSize);
}
} catch (final IOException e) {
Log.e(MainActivity.TAG, "Saving raw resource failed.", e);
Log.e(TAG, String.format("Saving raw resource failed.%s", Exceptions.getStackTraceString(e)));
} finally {
inputStream.close();
outputStream.flush();