From 5b71be79c90cfd6c0778a8b29642e10977617d76 Mon Sep 17 00:00:00 2001 From: naman14 Date: Sat, 14 May 2016 18:45:48 +0530 Subject: [PATCH] inttermediate images callback from lua --- .../com/naman14/arcade/ArcadeService.java | 12 ++++++----- .../java/com/naman14/arcade/MainActivity.java | 20 +++++++++++++++---- .../com/naman14/arcade/SettingsActivity.java | 5 +++-- app/src/main/res/layout/layout_styling.xml | 6 +++--- app/src/main/res/xml/preferences.xml | 2 +- arcade/src/main/assets/neural_style.lua | 2 +- .../com/naman14/arcade/library/Arcade.java | 4 ++-- .../library/listeners/ImageSavedListener.java | 2 +- arcade/src/main/jni/arcade.cpp | 5 ++--- 9 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/naman14/arcade/ArcadeService.java b/app/src/main/java/com/naman14/arcade/ArcadeService.java index 5ba7b7c..8f97044 100644 --- a/app/src/main/java/com/naman14/arcade/ArcadeService.java +++ b/app/src/main/java/com/naman14/arcade/ArcadeService.java @@ -5,13 +5,12 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.support.v4.content.LocalBroadcastManager; -import android.util.Log; import com.naman14.arcade.library.Arcade; import com.naman14.arcade.library.ArcadeBuilder; import com.naman14.arcade.library.ArcadeUtils; import com.naman14.arcade.library.listeners.CompletionListener; -import com.naman14.arcade.library.listeners.IterationListener; +import com.naman14.arcade.library.listeners.ImageSavedListener; import com.naman14.arcade.library.listeners.ProgressListener; /** @@ -21,6 +20,7 @@ public class ArcadeService extends IntentService { public static final String ACTION_START = "com.naman14.arcade.START"; public static final String ACTION_COMPLETED = "com.naman14.arcade.COMPLETE"; + public static final String ACTION_IMAGE_SAVED = "com.naman14.arcade.IMAGE_SAVED"; public static final String ACTION_UPDATE_PROGRESS = "com.naman14.arcade.UPDATE_PROGRESS"; public static boolean isRunning; @@ -63,10 +63,12 @@ public void onUpdateProgress(final String log, boolean important) { currentLog = log; } }); - arcade.setIterationListener(new IterationListener() { + arcade.setImageSavedListener(new ImageSavedListener() { @Override - public void onIteration(int currentIteration, int totalIteration) { - Log.d("iterations", String.valueOf(currentIteration) + " of " + String.valueOf(totalIteration)); + public void onImageSaved(String path) { + Intent localIntent = new Intent(ACTION_IMAGE_SAVED); + localIntent.putExtra("path", path); + LocalBroadcastManager.getInstance(ArcadeService.this).sendBroadcast(localIntent); } }); arcade.setCompletionListsner(new CompletionListener() { diff --git a/app/src/main/java/com/naman14/arcade/MainActivity.java b/app/src/main/java/com/naman14/arcade/MainActivity.java index a0d9b3b..dddba49 100644 --- a/app/src/main/java/com/naman14/arcade/MainActivity.java +++ b/app/src/main/java/com/naman14/arcade/MainActivity.java @@ -20,6 +20,7 @@ import android.os.Handler; import android.preference.PreferenceManager; import android.provider.MediaStore; +import android.support.v4.app.FragmentManager; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; @@ -242,9 +243,13 @@ public void onClick(DialogInterface dialog, int which) { break; case STATE_STYLING_COMPLETED: currentState = STATE_STYLE_CHOOSE; - animateViewVisiblity(styleImagePreview, false); + animateViewVisiblity(stylingResult, false); animateViewVisiblity(start, false); animateForegroundView(Color.parseColor("#88000000"), Color.parseColor("#44000000")); + if (logFragment != null) { + FragmentManager manager = getSupportFragmentManager(); + manager.beginTransaction().remove(manager.findFragmentById(R.id.log_container)).commit(); + } showStyleImages(); moveStyleButton(true); break; @@ -588,6 +593,8 @@ private void setupServiceReceiver() { LocalBroadcastManager.getInstance(this).registerReceiver(responseReceiver, intentFilter); IntentFilter intentFilter2 = new IntentFilter(ArcadeService.ACTION_COMPLETED); LocalBroadcastManager.getInstance(this).registerReceiver(responseReceiver, intentFilter2); + IntentFilter intentFilter3 = new IntentFilter(ArcadeService.ACTION_IMAGE_SAVED); + LocalBroadcastManager.getInstance(this).registerReceiver(responseReceiver, intentFilter3); } private class ResponseReceiver extends BroadcastReceiver { @@ -607,14 +614,19 @@ public void onReceive(Context context, Intent intent) { stylingLog.setText(log); } break; + case ArcadeService.ACTION_IMAGE_SAVED: + String path = intent.getStringExtra("path"); + DisplayImageOptions options1 = new DisplayImageOptions.Builder().displayer(new FadeInBitmapDisplayer(500)).build(); + ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), stylingResult, options1); + break; case ArcadeService.ACTION_COMPLETED: currentState = STATE_STYLING_COMPLETED; serviceRunning = false; hideLogoView(stylingView); animateViewVisiblity(stylingResult, true); - String outputPath = Environment.getExternalStorageDirectory() + "/Arcade/outputs.output.png"; - DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new FadeInBitmapDisplayer(500)).build(); - ImageLoader.getInstance().displayImage(Uri.fromFile(new File(outputPath)).toString(), stylingResult, options); + String outputPath = Environment.getExternalStorageDirectory() + "/Arcade/outputs/output.png"; + DisplayImageOptions options2 = new DisplayImageOptions.Builder().displayer(new FadeInBitmapDisplayer(500)).build(); + ImageLoader.getInstance().displayImage(Uri.fromFile(new File(outputPath)).toString(), stylingResult, options2); break; } } diff --git a/app/src/main/java/com/naman14/arcade/SettingsActivity.java b/app/src/main/java/com/naman14/arcade/SettingsActivity.java index f6b020a..a23bb6a 100644 --- a/app/src/main/java/com/naman14/arcade/SettingsActivity.java +++ b/app/src/main/java/com/naman14/arcade/SettingsActivity.java @@ -56,15 +56,16 @@ public void onCreate(Bundle savedInstanceState) { @Override public boolean onPreferenceClick(Preference preference) { preferences.edit().putString("preference_iterations", "15").apply(); + preferences.edit().putString("preference_save_iter", "5").apply(); preferences.edit().putString("preference_style_weight", "200").apply(); preferences.edit().putString("preference_content_weight", "20").apply(); - preferences.edit().putString("preference_image_size", "128").apply(); + preferences.edit().putString("preference_image_size", "256").apply(); preferences.edit().putBoolean("preference_logs", false).apply(); findPreference("preference_iterations").setSummary(preferences.getString("preference_iterations", "15")); findPreference("preference_save_iter").setSummary(preferences.getString("preference_save_iter", "5")); findPreference("preference_style_weight").setSummary(preferences.getString("preference_style_weight", "200")); findPreference("preference_content_weight").setSummary(preferences.getString("preference_content_weight", "20")); - findPreference("preference_image_size").setSummary(preferences.getString("preference_image_size", "128")); + findPreference("preference_image_size").setSummary(preferences.getString("preference_image_size", "256")); ((SwitchPreference) findPreference("preference_logs")).setChecked(preferences.getBoolean("preference_logs", true)); return true; diff --git a/app/src/main/res/layout/layout_styling.xml b/app/src/main/res/layout/layout_styling.xml index 8495831..78cf426 100644 --- a/app/src/main/res/layout/layout_styling.xml +++ b/app/src/main/res/layout/layout_styling.xml @@ -6,8 +6,8 @@ diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 51f45e1..3116a9c 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -3,7 +3,7 @@ FindClass("com/naman14/arcade/library/Arcade"); jmethodID onImageSaved = globalEnv->GetStaticMethodID(clazz, "onImageSaved", - "(Ljava/lang/String;Z)V"); + "(Ljava/lang/String;)V"); jstring pathString = globalEnv->NewStringUTF(path); - globalEnv->CallStaticVoidMethod(clazz, onImageSaved, pathString, isFinal); + globalEnv->CallStaticVoidMethod(clazz, onImageSaved, pathString); globalEnv->DeleteLocalRef(pathString); globalEnv->DeleteLocalRef(clazz);