diff --git a/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2Preferences.java b/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2Preferences.java index 7e9cc157..4ad6e673 100644 --- a/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2Preferences.java +++ b/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2Preferences.java @@ -289,6 +289,18 @@ public enum Apple2Preferences { return activity.getPreferences(Context.MODE_PRIVATE).getInt(toString(), 5); } }, + SHOW_DISK_OPERATIONS { + @Override + public void load(Apple2Activity activity) { + boolean enabled = booleanValue(activity); + nativeSetShowDiskOperationAnimation(enabled); + } + + @Override + public boolean booleanValue(Apple2Activity activity) { + return activity.getPreferences(Context.MODE_PRIVATE).getBoolean(toString(), true); + } + }, JOYSTICK_AXIS_SENSITIVIY { @Override public void load(Apple2Activity activity) { @@ -1057,6 +1069,8 @@ public enum Apple2Preferences { private static native void nativeSetTouchMenuVisibility(float alpha); + public static native void nativeSetShowDiskOperationAnimation(boolean enabled); + private static native void nativeSetTouchKeyboardVisibility(float inactiveAlpha, float activeAlpha); private static native void nativeSetTouchKeyboardLowercaseEnabled(boolean enabled); diff --git a/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2SettingsMenu.java b/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2SettingsMenu.java index f2dc14be..81c6014b 100644 --- a/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2SettingsMenu.java +++ b/Android/app/src/main/java/org/deadc0de/apple2ix/Apple2SettingsMenu.java @@ -249,6 +249,30 @@ public class Apple2SettingsMenu extends Apple2AbstractMenu { }); } }, + SHOW_DISK_OPERATIONS { + @Override + public final String getTitle(Apple2Activity activity) { + return activity.getResources().getString(R.string.disk_show_operation); + } + + @Override + public final String getSummary(Apple2Activity activity) { + return activity.getResources().getString(R.string.disk_show_operation_summary); + } + + @Override + public View getView(final Apple2Activity activity, View convertView) { + convertView = _basicView(activity, this, convertView); + CheckBox cb = _addCheckbox(activity, this, convertView, Apple2Preferences.SHOW_DISK_OPERATIONS.booleanValue(activity)); + cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + Apple2Preferences.SHOW_DISK_OPERATIONS.saveBoolean(activity, isChecked); + } + }); + return convertView; + } + }, ABOUT { @Override public final String getTitle(Apple2Activity activity) { diff --git a/Android/app/src/main/res/values-fr/strings.xml b/Android/app/src/main/res/values-fr/strings.xml index 6fce2b07..5d79524f 100644 --- a/Android/app/src/main/res/values-fr/strings.xml +++ b/Android/app/src/main/res/values-fr/strings.xml @@ -36,6 +36,8 @@ Désolé, impossible de lire l\'image disque! Lecture seulement Lecture/Ecriture + Afficher les opérations (disque) ][ + Indique lorsque le disque de lecture ou d\'écriture Continuer… Configurations… Chargement de l\'image disque… diff --git a/Android/app/src/main/res/values/strings.xml b/Android/app/src/main/res/values/strings.xml index 7f45b475..4c10f2ab 100644 --- a/Android/app/src/main/res/values/strings.xml +++ b/Android/app/src/main/res/values/strings.xml @@ -32,10 +32,12 @@ Drive 1 Drive 2 Eject - Inserted disk in drive 1 read-only + Inserted disk in drive read-only Sorry, could not read the disk image! Read only Read/write + Show Disk ][ operations + Shows when disk drives are reading or writing Continue… Settings… Load disk image… diff --git a/Android/jni/jniprefs.c b/Android/jni/jniprefs.c index 428f10ab..85381582 100644 --- a/Android/jni/jniprefs.c +++ b/Android/jni/jniprefs.c @@ -130,6 +130,13 @@ void Java_org_deadc0de_apple2ix_Apple2Preferences_nativeSetTouchMenuEnabled(JNIE interface_setTouchMenuEnabled(enabled); } +void Java_org_deadc0de_apple2ix_Apple2Preferences_nativeSetShowDiskOperationAnimation(JNIEnv *env, jclass cls, jboolean enabled) { + LOG("enabled : %d", enabled); + if (video_backend && video_backend->animation_setEnableShowTrackSector) { + video_backend->animation_setEnableShowTrackSector(enabled); + } +} + void Java_org_deadc0de_apple2ix_Apple2Preferences_nativeSetTouchKeyboardLowercaseEnabled(JNIEnv *env, jclass cls, jboolean enabled) { LOG("enabled : %d", enabled); keydriver_setLowercaseEnabled(enabled); diff --git a/src/video/glalert.c b/src/video/glalert.c index fda63b42..035efc32 100644 --- a/src/video/glalert.c +++ b/src/video/glalert.c @@ -348,6 +348,14 @@ static void _animation_showTrackSector(int drive, int track, int sect) { _animation_showMessage(template, DISK_TRACK_SECTOR_COLS, DISK_TRACK_SECTOR_ROWS); } +static void _animation_setEnableShowTrackSector(bool enabled) { + if (enabled) { + video_backend->animation_showTrackSector = &_animation_showTrackSector; + } else { + video_backend->animation_showTrackSector = NULL; + } +} + __attribute__((constructor(CTOR_PRIORITY_LATE))) static void _init_glalert(void) { LOG("Initializing message animation subsystem"); @@ -357,6 +365,7 @@ static void _init_glalert(void) { video_backend->animation_showCPUSpeed = &_animation_showCPUSpeed; video_backend->animation_showDiskChosen = &_animation_showDiskChosen; video_backend->animation_showTrackSector = &_animation_showTrackSector; + video_backend->animation_setEnableShowTrackSector = &_animation_setEnableShowTrackSector; glnode_registerNode(RENDER_MIDDLE, (GLNode){ .setup = &alert_init, diff --git a/src/video/video.h b/src/video/video.h index 982b4735..e873980d 100644 --- a/src/video/video.h +++ b/src/video/video.h @@ -39,6 +39,7 @@ typedef struct video_backend_s { void (*animation_showCPUSpeed)(void); void (*animation_showDiskChosen)(int drive); void (*animation_showTrackSector)(int drive, int track, int sect); + void (*animation_setEnableShowTrackSector)(bool enabled); } video_backend_s;