Giter Club home page Giter Club logo

emu48android's People

Contributors

carlreinke avatar dgis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

emu48android's Issues

Is it possible to use the phone's IR blaster?

Hi!

I have a Xiaomi POCO X3 NFC, and this phone has a built-in IR blaster. I also happen to have the physical HP 82240B.

So I was wondering, is it possible to have the app use the phone's IR blaster, so I can use it with my printer, instead of only using the virtual printer?

I tried searching for it, and also searched around in the settings, but I couldn't find it.

Save config with state file

Today I noticed that the configured port 2 bin file is shared between all state files. I have different state files for different calculator models (who would have guessed!) and for different purposes (private, work, testing). It would be great if you could select a different RAM card file for each state file.

In addition most other settings like layout, zoom etc. are also related to a specific state file.

Landscape use

Rotation will currenrly strech/distort the interface by not maintaining the aspect ratio. Is it possible to switch between a portrait and landscape definition?

File access permissions when restarting a particular device (Moto G7)

From RM, on a Moto G7 running Android 9 version PPOS29.114-134-10 with security patch level 1 Feb 20, when the device is restarted, the file access permissions which should have been persistent with takePersistableUriPermission(), is not.

It can be reproduce by taping 'CLEAR ACCESS' in the Android settings/App/Emu48/Storage.

When it happens, at the start, Emu48 try to load the last saved document (state.e48 file), and we get that exception:

2020-04-08 18:19:50.896 18771-18771/org.emulator.forty.eight W/System.err: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{529794b 18771:org.emulator.forty.eight/u0a100} (pid=18771, uid=10100) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
2020-04-08 18:19:50.897 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Parcel.createException(Parcel.java:1942)
2020-04-08 18:19:50.897 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Parcel.readException(Parcel.java:1910)
2020-04-08 18:19:50.897 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Parcel.readException(Parcel.java:1860)
2020-04-08 18:19:50.898 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:4181)
2020-04-08 18:19:50.898 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ActivityThread.acquireProvider(ActivityThread.java:5970)
2020-04-08 18:19:50.898 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2592)
2020-04-08 18:19:50.898 18771-18771/org.emulator.forty.eight W/System.err:     at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1828)
2020-04-08 18:19:50.899 18771-18771/org.emulator.forty.eight W/System.err:     at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1297)
2020-04-08 18:19:50.899 18771-18771/org.emulator.forty.eight W/System.err:     at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1148)
2020-04-08 18:19:50.899 18771-18771/org.emulator.forty.eight W/System.err:     at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1102)
2020-04-08 18:19:50.900 18771-18771/org.emulator.forty.eight W/System.err:     at org.emulator.forty.eight.MainActivity.openFileFromContentResolver(MainActivity.java:1274)
2020-04-08 18:19:50.900 18771-18771/org.emulator.forty.eight W/System.err:     at org.emulator.calculator.NativeLib.onFileOpen(Native Method)
2020-04-08 18:19:50.900 18771-18771/org.emulator.forty.eight W/System.err:     at org.emulator.forty.eight.MainActivity.onFileOpen(MainActivity.java:1175)
2020-04-08 18:19:50.900 18771-18771/org.emulator.forty.eight W/System.err:     at org.emulator.forty.eight.MainActivity.onCreate(MainActivity.java:232)
2020-04-08 18:19:50.901 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.Activity.performCreate(Activity.java:7136)
2020-04-08 18:19:50.901 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.Activity.performCreate(Activity.java:7127)
2020-04-08 18:19:50.901 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
2020-04-08 18:19:50.902 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
2020-04-08 18:19:50.902 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
2020-04-08 18:19:50.902 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
2020-04-08 18:19:50.902 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
2020-04-08 18:19:50.903 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
2020-04-08 18:19:50.903 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
2020-04-08 18:19:50.903 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
2020-04-08 18:19:50.904 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Looper.loop(Looper.java:193)
2020-04-08 18:19:50.904 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6669)
2020-04-08 18:19:50.904 18771-18771/org.emulator.forty.eight W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2020-04-08 18:19:50.904 18771-18771/org.emulator.forty.eight W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2020-04-08 18:19:50.905 18771-18771/org.emulator.forty.eight W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2020-04-08 18:19:50.905 18771-18771/org.emulator.forty.eight W/System.err: Caused by: android.os.RemoteException: Remote stack trace:
2020-04-08 18:19:50.905 18771-18771/org.emulator.forty.eight W/System.err:     at com.android.server.am.ActivityManagerService.getContentProviderImpl(ActivityManagerService.java:12188)
2020-04-08 18:19:50.905 18771-18771/org.emulator.forty.eight W/System.err:     at com.android.server.am.ActivityManagerService.getContentProvider(ActivityManagerService.java:12585)
2020-04-08 18:19:50.906 18771-18771/org.emulator.forty.eight W/System.err:     at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:357)
2020-04-08 18:19:50.906 18771-18771/org.emulator.forty.eight W/System.err:     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3291)
2020-04-08 18:19:50.906 18771-18771/org.emulator.forty.eight W/System.err:     at android.os.Binder.execTransact(Binder.java:731)

I don't know if it is a bug in the vendor ROM or in Emu48.

Auto-shutoff and the BEEP.48 patch file

First of all -- THANK YOU -- for your work to make this available for Android. (and thanks to Sebastian Carlier.) I use it all the time and it is appreciated.

One issue -- the calculator "shuts off" after about 10 minutes, and I need to "turn it back on". This was a battery saving feature for the original physical calculator. It is now somewhat annoying, and there is no need for this "feature" anymore since it is running in an emulator, and android will simply put it to sleep to save battery.

There is a ROM patch that is normally found in the BEEP.48 "patch" file that disables automatic shut-off:

BEEP.48
01477:6300; disable 10 min auto off (internal, undocumented)

However, the BEEP.48 file is not included in the assets/calculators directory of the .apk.
I notice that many of the KML files still include the line, Patch BEEP.48, even though the file does not exist.
Others, such as my favorite "real48gx-lc.kml", do not even include the line, Patch BEEP.48.

Would it be possible for you to do either one of the following to disable auto-shutoff?

  1. Add the BEEP.48 file (with the above patch uncommented) to the assets/calculators directory, and also add the Patch BEEP.48 line to all of the KML files. (You could even rename the BEEP.48 file to NO-AUTO-OFF.48.)
  2. Add an app setting called "disable auto-shutoff" that applies the patch.

Back button doesn't work

Since 1.5 the back button doesn't close the sidebar or quit the app anymore. Only if it is pressed several times it quits the app (and the "state saved" toast appears).

Button Type 3 with Background offset

When a Background offset is set in a KML file, the inverse colour area created by Button Type 3 appears to be out by the Background Offset.

I have also checked Button types 0, 1 & 5 with a background offset and they are correctly located. I haven't checked Type 4.

Capitalization issue prevents successful build on platforms with case-sensitive filenames.

In ./app/src/main/cpp/core, the capitalization of the filename and the reference to the filename don't match for 'Ops.h' and 'Opcodes.h'. e.g. Files reference 'opcodes.h', but the file is named 'Opcodes.h' (note the capital 'O'). This is probably not an issue on platforms where filenames are case-insensitive, but prevents a successful build on platforms where filenames are case-sensitive.

49/50 port 2 unusable

When emulating a 50g with 1.3 I'm not able to store something in port 2. Once I store something in port 2 and restart emu48 (even with explicit save state), the emulated calculator will perform a warmstart and everything in port 2 is lost (except for the default equation library and periodic table).

MTH->BASE not working properly

It seems the BASE menu is not working properly. Any real number that I invoke R->B ends up as #1h or #0h. Any addition or conversion does not produce the correct binary number.

A separate implementation of the emu48 emulator works great in this area.

USB serial issue with Android 13

In the past (with Android 12) I was able to transfer files between EMU48 and my real device via USB serial adapter, but since Android 13 the same adapter is not used by EMU48 anymore, while I still see the driver (Ftdi) in the settings. With other terminal apps I can transfer data. Maybe there is some rights management issue?

Jürgen

Improvement / large screen

Would be nice to have the screen of the hp48 span to whole screen width ( and so soft menu button will be aligned like in go48gx).

Personal note:
Merci Régis pour cette superbe aplication, j étais contraint depuis plusieur année entre droid48 (pas de répétition de touche direction) et go48 (buguée depuis android 7). Cette emulation est superbe !

Invert appearance of [Default KML script folder]

Emu48 for Android 1.4:

After using the New... menu to create a new calculator instance, the "Pick a calculator" dialog lists 1. the default KML scripts, 2. [Select a Custom KML script folder...] and 3. [Default KML script folder]. The third should not be here.

After selecting a custom folder, the "Pick a calculator" only has 1. the KML files from this folder and 2. [Select a Custom KML script folder...]. The third ([Default KML script folder]) is missing here, so the only way to get back to the default KML script folder is to clear the data of the app.

P.S.: Thank you very much for the Android port of Emu48, and even more (mainly for the 28S) for Emu42!

White area at bottom

Since 1.5 there is a white area at the bottom of the screen. Layout in preferences makes no difference, background is set to black and "do not use KML background color". Hiding the statusbar increases the area height.

Screenshot_20190713-141506

Unsupported calculator buttons from a keyboard

Using a Bluetooth keyboard with Emu48 works with the majority of calculator buttons. For example, pressing the A key on a Bluetooth keyboard will activate the A calculator button (left-most menu key) and T will activate the COS button.

However the following calculator buttons don't have a keyboard key assigned to them:

  • "DEL" button
  • "÷" button
  • "×" button (i.e. the multiply button, not the letter x)
  • "-" button
  • "+" button

Also, the ON button half works. It is currently mapped to the ESC keyboard key. However, the Android operating system treats this as a the "back" Android button which puts Emu48 into the background and takes the user to OS's default screen. The may be a way to disable the OS's behavior or perhaps the ON button should be remapped to a different keyboard key.

These could be remapped in a custom KML file but it likely would be good to have these calculator buttons mapped by default to commonly available keys on mobile Bluetooth keyboards (less work for the end-user). Here's a link to an example Bluetooth keyboard designed for mobile phones: https://www.amazon.com/Microsoft-U6R-00001-Wedge-Mobile-Keyboard/dp/B008OEHPKM

Delete missing files from recent state files

I've deleted some state files via a file manager, but they are still included in the recent state files list. As expected selecting a deleted item causes an error.

I suggest that on app start (on resume?) every item in the list is checked and removed from the list if the file could not be found/accessed.

F-Droid

Please add it to F-Droid.

49/50g got slower

With one of the last releases (currently 2.2) the 49/50g emulation got much slower. For example if I press numbers quickly, they will be inserted in constant intervals, but much slower (maybe 3-4 Hz) than the 48G emulation. Also display updates are lagging and you can see how it gets refreshed in some blocks.

Real calculator speed is disabled.

Add vibrate on key press

It's a bit hard to know when you've hit a key without feedback. A short (10 ms) vibration when a key is pressed would help.

I can't build the project

I would like to contribute to the project, but I can't build the project
How to compile??? as some files are not present, such as Ops.h, ops.h ...

I ran ./gradlew build, and logically set my sdk in local.properties

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.