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;