Commit Graph

55 Commits

Author SHA1 Message Date
Aaron Culliney
310825e2cc Route Android logging to native side and timestamp logs 2019-11-29 08:53:16 -08:00
Aaron Culliney
cff22f6b34 Correctly show chosen file name in disks menu 2019-11-10 08:30:00 -08:00
Aaron Culliney
1e986d73ef Improve button positioning
- Keeps similar consistent locations as prior menus
    - Remove cancel no-op buttons
2019-10-31 17:36:25 -07:00
Aaron Culliney
e70051d6a4 Migrate to AndroidX 2019-10-27 17:40:01 -07:00
Aaron Culliney
7ac274261a Migrate to AppCompat 2019-10-27 17:36:36 -07:00
Aaron Culliney
5230afa788 Useability tweak for Millenials and kids ... disk images should be "inserted" read/write by default ;) 2018-11-25 14:45:39 -08:00
Aaron Culliney
55cba116e4 Revert adding A2V3 format as it is unnecessary
- Re-gzipping ejected images is based solely on the file extension and not the actual file stream contents
    - Read/write disk images with extension ".gz" are re-gzipped in-place upon ejection
    - Read/write disk images without extension ".gz" are not changed upon ejection
    - Read-only disk images maintain current behavior (no modifications performed at all)
2017-07-06 19:36:37 -10:00
Aaron Culliney
25a0f69a5f Clean up disk selection 2017-07-01 11:40:38 -07:00
Aaron Culliney
7411a987fa Disk chooser can now also choose .a2state files
- Internal save/restore API now uses file descriptors (supports restrictive app environments)
2017-07-01 11:03:15 -07:00
Aaron Culliney
d98c4afa84 Rename emulator.state to emulator.a2state and handle migration 2017-06-28 22:05:11 -07:00
Aaron Culliney
dd0de51d64 Disentangle new-school and old-school disk selection and misc cleanup 2017-06-13 09:51:52 -07:00
Aaron Culliney
91fdf7b8e5 Add ability to choose disk images via the Android system chooser 2017-06-05 16:05:44 -07:00
Aaron Culliney
b300e60e2a Persist disk image 'was_gzipped' state
- 'was_gzipped' state is persisted in .apple2.json preferences
    - This removes all file-renaming codepaths at the cost of temporarily nonconformance to naming convesion (e.g., disk
      images inserted read/write are still called 'foo.dsk.gz' although they are not compressed)
    - Unclean shutdown of emulator leaves any disk images that were inserted read/write in their non-gzipped state
      (regardless of file name extension) on disk until emulator restarted and disk images explictly ejected or clean
      shudown.  App removal after unclean shutdown will potentially leave mis-named disk images lingering.
    - Emulator will handle edge cases of non-gzipped disk images with '.gz' extension and gzipped disk images without
      '.gz' extension
2017-05-29 08:05:38 -10:00
Aaron Culliney
9bd59661ed Refactor disk image UI to use file descriptors and not paths
- Push path opening responsibility out of disk6 API in favor of using file descriptors
    - Improves handling of readonly gzipped disk images (now data is read without gunzipping or mmap()ing the file)
    - Currently represents an API-breaking change for macOS, iOS, GNU/Linux desktop ports (but should be easy to fix)
2017-05-28 08:48:11 -10:00
Aaron Culliney
bc6719d712 Allow access to toplevel of external storage 2016-06-12 09:19:02 -07:00
Aaron Culliney
db816ad502 Refactor Android variant to use common shared JSON preferences
- Eliminates a whole bunch of boilerplate setter/getter code in various places
    - Accesses preferences directly from JSON data through custom json_parse.h API
    - Improves code locality for Java menus/settings
2016-04-11 22:01:30 -07:00
Aaron Culliney
20278ca91e Migration to 1.1.3+ should remove disks that were excised 2015-12-24 22:17:29 -08:00
Aaron Culliney
bf3ef3ae18 GZIP the supplied disk images to help cut down on app space 2015-12-20 15:18:09 -08:00
Aaron Culliney
145b6a6cef Refactor JNI plumbing for consistency 2015-12-20 12:54:27 -08:00
Aaron Culliney
2a51a62127 Avoid NPE when external storage is unavailable 2015-12-13 12:09:49 -08:00
Aaron Culliney
6cef33b501 Request and handle external storage permissions on Marshmallow
- Also disentangles exposing APK assets internally and on external storage
2015-12-12 13:38:22 -08:00
Aaron Culliney
ac78e00afa Alter UI only on UI thread 2015-12-12 13:29:50 -08:00
Aaron Culliney
d819220a07 Pass Apple2Activity to out getExternalStorageDirectory() function 2015-12-12 12:03:41 -08:00
Aaron Culliney
fb4d6f466b Splash screen is not dismissable during first time initialization or crash reporting 2015-11-03 22:47:35 -08:00
Aaron Culliney
d4adabda93 SNEAKY BUGFIX race condition between UI thread and CPU thread on disk insertion
- Previously we would start the CPU thread and then insert, which has been a long standing race condition, but
      possibly better exposed since the recent disk.c rephactor to use mmap I/O
    - This directly manifested on a Kindle Fire 1st Gen as a crash, and, anecdotally on other devices as a "stalled"
      disk read requiring a reboot of the virtual machine.  Yay for crappy devices helping to expose crappy code! (git
      blame me). =P
2015-10-30 23:19:33 -07:00
Aaron Culliney
dcd77a4650 Allow and gracefully handle case when external files directory is null 2015-10-28 23:52:54 -07:00
Aaron Culliney
38dce3e212 Check if parent view exists as proxy for isShowing 2015-10-25 22:03:44 -07:00
Aaron Culliney
c054be6612 Expose download directory 2015-10-24 13:59:57 -07:00
Aaron Culliney
42a2fac420 Only expose symbols bundled in APK on demand
- Cuts down on launch time
    - Cuts down on wasted app space
2015-10-22 23:30:36 -07:00
Aaron Culliney
f7c8978c79 Ensure that path stack has an absolute path 2015-10-22 23:06:20 -07:00
Aaron Culliney
2cc23cf35d Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -07:00
Aaron Culliney
4abe8a8c08 Always copy potentially new symbols when booting in debug mode 2015-10-20 20:42:02 -07:00
Aaron Culliney
fd0df1274a Expose file extensions that we can handle 2015-10-04 13:30:38 -07:00
Aaron Culliney
b67cec7b9f Preferences save calls into native already 2015-10-04 13:30:34 -07:00
Aaron Culliney
b4f871613d Correctly copy keyboard JSON to SD Card 2015-09-30 22:00:08 -07:00
Aaron Culliney
6d63a6bb71 Improved codepaths to recursively copy assets out of APK 2015-09-26 14:56:00 -07:00
Aaron Culliney
0f9f4a70eb For devices without /sdcard mounted, fall back to alt keyboards supplied in APK 2015-09-17 22:22:40 -07:00
Aaron Culliney
33fe40ae71 Errors on copying alt-keyboard.json to /sdcard should not be fatal 2015-09-13 15:16:59 -07:00
Aaron Culliney
104c0bbe6e Keep track of all AlertDialog objects to properly dispose of them upon backgrounding 2015-09-13 10:43:53 -07:00
Aaron Culliney
55f04d4f68 Gracefully handle case where /sdcard is removed or otherwise unavailable 2015-09-13 10:01:44 -07:00
Aaron Culliney
8666ca3603 Common baseline for CLI and Android Studio builds
- CLI is still super useful for GDB debugging and running emulator testcases
    - Possibly this maintenance of two build systems can all go away when Android Studio has better NDK support
2015-09-05 14:40:44 -07:00
Aaron Culliney
d7ae39b2a8 Fixes for olde CLI builds 2015-09-05 13:48:42 -07:00
Aaron Culliney
e4a849e6ae Allow choosing alternate keyboard.kbd.json file from /sdcard (or internal dataDir) 2015-08-28 22:23:43 -07:00
Aaron Culliney
ebe7f82f22 Persist settings for currently inserted disks, and provide a way to eject disks 2015-08-22 14:44:31 -07:00
Aaron Culliney
e39f61d44c Bugfix : case-insensitive disk suffix checks 2015-08-22 13:17:44 -07:00
Aaron Culliney
e4435a1e18 Bugfix disk path persistence : defer applying path to avoid re-entrancy into Apple2DisksMenu constructor 2015-08-22 12:10:52 -07:00
Aaron Culliney
36cb44e1e8 Clean up first-time initialization and insure touch keypad has reasonable defaults 2015-08-22 11:36:12 -07:00
Aaron Culliney
85407cfabb Refactor GL Touch Joystick (PART II Java-is-not-native changes)
- Adds general key-tap-calibration callback to menus
    - Adds Touch Joystick Keypad settings menu including chooser and calibration
2015-08-18 22:17:12 -07:00
Aaron Culliney
2673777be7 Various improvements to disk management
- Moves disk management form Apple2Activity to Apple2DisksMenu
    - Handle reading/writing disk images in /sdcard/...
    - Manage hirerarchical navigation
2015-08-08 10:59:14 -07:00
Aaron Culliney
7344cadfbd More joystick settings including calibration mode 2015-08-02 14:29:34 -07:00