Skip to content
This repository has been archived by the owner on Mar 29, 2023. It is now read-only.

Your app for fdroid #61

Open
theScrabi opened this issue Oct 12, 2018 · 58 comments
Open

Your app for fdroid #61

theScrabi opened this issue Oct 12, 2018 · 58 comments

Comments

@theScrabi
Copy link

Hei have you thought about pudding your app on fdroid. If you are interested, you can seek for help. However here are some requirements that should be ment before adding:

  • gsm lib has to be removed
  • precompiled libs have to re replaced with marven ones
@projectextremum
Copy link

@theScrabi the project seems to be unmaintained. But a scientific calculator which is easy to use (unlike addi) and has graphing capabilities is really lacking in f-droid. Did the build fail without gsm libs?

@basile-laderchi
Copy link

I gave it a shot.

Results:

  • gsm lib removal: done
  • sdk version update from 27 to 28: done
  • com.android.support libraries update from 27.1.1 to 28.0.0: done
  • build tool version update from 27.0.3 to 28.0.3: done
  • gradle plugin update from 3.1.3 to 3.3.0: done
  • gradle update from 4.4 to 4.10.1: done
  • io.github.kexanie.library:MathView update from 0.0.4 to 0.0.6
  • com.getkeepsafe.taptargetview:taptargetview update from 1.6.0 to 1.12.0
  • override onSequenceStep add where necessary: done
  • com.github.mukeshsolanki:MarkdownView-Android update from 1.0.4 to 1.0.8
  • com.simplecityapps:recyclerview-fastscroll update from 1.0.18 to 1.0.20
  • symja_android_library change to maven one: not done

About the last one I need some help. Steps I have done:

  • maven repository "https://oss.sonatype.org/content/repositories/snapshots" added to repositories
  • Source and Target Compatibility changed to 1.8
  • removed from app dependencies the line: "api project(':symja_android_library-release')"
  • added to app dependencies the line: "annotationProcessor 'org.apache.logging.log4j:log4j-core:2.5'"
  • added to app dependencies the line: "api 'org.matheclipse:matheclipse-core:1.0.0-SNAPSHOT'"

upon building I get the following error: "Error: Program type already present: com.google.common.util.concurrent.internal.InternalFutures"

if I build the project before adding and removing the lines of symja and log4j and matheclipse the projects builds just fine.
Any ideas?

@projectextremum: addi?

@axkr
Copy link
Collaborator

axkr commented Jan 29, 2019

@tranleduy2000 can you help

@basile-laderchi
Copy link

I have rebuilt it today (Studio must have downloaded the latest matheclipse-core library).
It does compile just fine, but upon executing it I get the following errors (I think that the first error is not a real problem, but the second one...):

01-31 10:21:20.573 9727-9727/com.duy.calculator.free.v2 W/System.err: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/script/ScriptEngineManager;
01-31 10:21:20.576 9727-9727/com.duy.calculator.free.v2 W/System.err:     at org.apache.logging.log4j.core.script.ScriptManager.<init>(ScriptManager.java:49)
...
01-31 10:21:20.751 9727-9727/com.duy.calculator.free.v2 E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: org.matheclipse.core.eval.-$$Lambda$EvalEngine$QebSt4dX6ZeiPlIF3uDV4uxXsd8
        at org.matheclipse.core.eval.EvalEngine.flattenSequences(EvalEngine.java:1740)

The error gets thrown on this line


and the function passed to it is:

Comb(n_, k_):=(factorial(Ceiling(n))/(factorial(Ceiling(k))*factorial(Ceiling(n-k))))

I even tried commenting those line out, but when it gets to

return mExprEvaluator.evaluate(exprInput);

crashes again with exprInput passed being:

N(1)

Should I paste the full logcat?

@axkr any ideas?

BTW I tried contacting @tranleduy2000 with no luck.

@axkr
Copy link
Collaborator

axkr commented Jan 31, 2019

At this Line the system uses the Java 8 Lambda feature.Are you Sure your Environment is set up for Java 8?

@basile-laderchi
Copy link

I guess that the problem now is that my android is only v6.0 (API level 23) and Lambdas are supported from level 24.
I'll give it a shot compiling it with RetroLambda (maybe?).

@axkr
Copy link
Collaborator

axkr commented Jan 31, 2019

Or try using @tranleduy2000 Java 7 fork

@basile-laderchi
Copy link

Unfortunately that fork is not on any maven repo and is a little behind too, but I'll give it a try anyway

@basile-laderchi
Copy link

More finding:

  • Retrolambda is not supported any more since Android Studio natively supports Java v1.8
  • Using "com.github.tranleduy2000:symja_android_library:d58c33c" from "https://jitpack.io" maven repo the build process failed with the following error:
    "Error: Program type already present: org.checkerframework.checker.nullness.compatqual.NullableDecl"
  • Using "org.matheclipse:matheclipse-core:1.0.0-SNAPSHOT" it builds successfully, but when it runs on my mobile (Android 6.0) or on an emulator (Android 8.0) it crashes with the 2nd error as described here:
    Your app for fdroid #61 (comment)

P.S.: always doing a "Clean Project" and then a "Rebuild Project" before running.

@axkr
Copy link
Collaborator

axkr commented Feb 5, 2019

Can you open a pull request with your Maven settings / pom.xml ?

@basile-laderchi
Copy link

@axkr I have created a gist with my two build files (unfortunately not Maven settings or pom.xml):
https://gist.github.com/basile-laderchi/d52cf28fe9971a84b2ba5e3b950d1f12

@MarionMoseby
Copy link

Ping @tranleduy2000 , are u interested? Maybe getting on f droid is a bit tricky, but @IzzySoft has stated he will add it to his popular foss f droid repo provided that you:

  • Provide a libre build without all gsm and trackers
  • Fix version numbers, as they went from 3.9 to 3.4

@IzzySoft
Copy link

IzzySoft commented Dec 6, 2019

The tracking free part would be essential here. If needed, I could work around the versioning part by downloading the "initial one" manually (the app is already in my repo but stopped being updated because of this).

@basile-laderchi
Copy link

I just installed it again on my new laptop and gave it another try.
gms lib removed and the build looks ok.

What other trackers are there that should be removed?
How can I find them?

@MarionMoseby
Copy link

MarionMoseby commented Dec 10, 2019 via email

@IzzySoft
Copy link

If there is a new APK available here that (at least in theory) should have those trackers removed, just let me know and I test it again (the library scanner of my repo will tell).

@basile-laderchi
Copy link

I have tried contacting @tranleduy2000 in January on all emails I could find and got no response.

I have removed the gms library.
I haven't found any other tracker libraries (maybe I'm missing something).
I have also upgraded almost all the libraries referenced to the newest versions.

I do have changed the applicationId, versionCode and versionName, compiled and have built the apk (unsigned for now).
@IzzySoft can I upload it somewhere for you to test it with your library scanner? Can I test it myself somehow? I have found this libinfo and checked all the libraries reported by the "Analyze APK" and none of them has any anti features.

@IzzySoft
Copy link

@basile-laderchi if you can give me a link to your fork, and have the APK available there (ideally attached to a release), I can give it a try.

@basile-laderchi
Copy link

@IzzySoft fork ready: https://github.com/basile-laderchi/ncalc (with latest changes pushed)
Do I have to sign the apk for releasing it?

@IzzySoft
Copy link

Do I have to sign the apk for releasing it?

Yes please. Else fdroidserver won't accept it. Let me know when the APK is available and I give it a try.

@basile-laderchi
Copy link

Signed and created a release:
https://github.com/basile-laderchi/ncalc/releases/tag/IzzyOnDroid.Test.1

I marked it as pre-release. Is that a problem?

@IzzySoft
Copy link

No, if you want me to pick pre-releases, that can easily be done. But the tag name potentially poses a problem: it should either reflect the versionName or the versionCode – currently it's unclear what it reflects. If it's the versionCode (1), and you'll keep it that way, it should be OK – but if it was meant as versionName it doesn't correctly match (1-beta according to the build.gradle – but that doesn't match what the APK itself has set). So I assume the former (versionCode). Should I be wrong, please let me know. If I was right, please let the only digits in the tag name be those of the versionCode for future tags – and don't forget to increase versionCode with each new release 😉

Second look: seems funny that after v3.4.8 follows v1, don't you think? Further, you might wish to rename the app to distinguish it from the original (e.g. NCalcLibre?).

Apart from that, it looks good – and should show up here with tomorrow's sync. Thanks!

@basile-laderchi
Copy link

@IzzySoft

Created new release with the following changes:

  • Changed application name to NCalcLibre
  • Changed version number to 3.4.8
  • Application now can be installed in external location

@IzzySoft
Copy link

IzzySoft commented Dec 16, 2019

@basile-laderchi thanks! I just updated its metadata to have the updater check for tags going by versionName, and then it was able to see and fetch the update (should show up with tomorrow's sync – todays was just missed by half an hour). Please keep the tag names like this (feel free to drop the .free suffix if you wish, as the app is already named "libre" – my updater ignores that part anyway).

PS: I already got the first reports of happiness – together with the hope you'll keep the fork alive 😄

PPS: Let me know if/when I should ignore pre-releases. Currently my updater picks both; if you want it to ignore the pres, I'll have to tell it.

@basile-laderchi
Copy link

@IzzySoft I installed it on my phone too from the repo.
I can't really drop the .free from the tag names. I would like to keep the same tag names as the original repo, but can't do because they are used by the original repo (I think - if someone know something more, please do tell me).
How did you get those reports?
Could the updater do pick the pre-releases too, but not flag them as suggested updates (F-Droid does this now with its v1-8-alpha0 version)?

@MarionMoseby
Copy link

MarionMoseby commented Dec 20, 2019 via email

@axkr
Copy link
Collaborator

axkr commented Dec 20, 2019

Yes I implemented the JavaScript generating function foundations in Symja for the Beta version:

If you watch the video you can see, that we have more graphical functions (which are now JavaScript based) in the Programming mode.
The idea is to create a more "educational" tool with more documentation references.

@opusforlife2
Copy link

@basile-laderchi Did you get the opportunity to look at this again?

@axkr
Copy link
Collaborator

axkr commented Feb 15, 2020

@basile-laderchi @IzzySoft I'm not so familiar with FDroid? Is this the latest version?

@IzzySoft
Copy link

@axkr just compare with releases here. Short answer: Yes 😉

@basile-laderchi
Copy link

@opusforlife2 I haven't looked again at including it on the official FDroid repository, but you can find it on the IzzyOnDroid repository on the link @axkr supplied (https://apt.izzysoft.de/fdroid/index/apk/eu.laderchi.ncalc)

@axkr as @IzzySoft said: that's the latest version. I almost daily check this github repo if there are changes.

@opusforlife2
Copy link

Please do try when you have the time and inclination again. This app will make a valuable addition to the F-Droid repo. It is ridiculously good.

@axkr
Copy link
Collaborator

axkr commented Feb 22, 2020

What we need again is a maintainer for the underlying android library (currently a fork of the main repo):

who can add the changes of the main repo to the android specialized repo amd create the very important symja_android_library-lite-release.aar lbrary for the ncalc project.

@opusforlife2
Copy link

I opened some links. What is the use of having Java 7 instead of 8?

@axkr
Copy link
Collaborator

axkr commented Feb 22, 2020

In the past Android doesn't support new Java 8 features (for example lamba expressions or streams).
Nowadays a great subset of Java 8 is supported:

@opusforlife2
Copy link

So, would it be possible to build NCalc with Java 8, now, if the min API was incremented to 24? Since you're already the maintainer for the Java 8 version of Symja, there wouldn't be any additional load.

@basile-laderchi
Copy link

@opusforlife2 the problem with the FDroid build was that I couldn't manage to fully built the calculator from source (for the FDroid repo all libraries must be compiled on the server and can't be included as *.aar).
I'll give it again a shot to using the Java 8 library.
My phone is on Android 6, so no can increment the min API over 23. (After all I'm doing it for me too).

@opusforlife2
Copy link

My phone is on Android 6, so no can increment the min API over 23. (After all I'm doing it for me too).

No custom ROMs for your phone? 🤞

@basile-laderchi
Copy link

@opusforlife2 there is an official Android 7 release, but never got around to installing it due to not having enough space to download it on my device. I don't know if there are any newer custom ones.

@opusforlife2
Copy link

Focus on my voice. Look at the swinging pendant. Don't think about anything else... back up your data... upgrade to Android 7... upgrade to API 24... 👀

@MarionMoseby
Copy link

MarionMoseby commented Feb 24, 2020 via email

@axkr
Copy link
Collaborator

axkr commented Mar 7, 2020

Hello, seems that we can't connect @tranleduy2000 ?
To get any progress in the future development of NCalc, I would suggest in a first step to maintain bug fixes and changes since December 2019 to this fork (or a new fork?)

Is anyone willing to help creating the *.aar library and can automize the Gradle build?

@opusforlife2
Copy link

Two months seems like an okay time for a developer to not be in contact. Maybe we should wait more before taking further steps?

Or are you sure that he's gone?

@axkr
Copy link
Collaborator

axkr commented Mar 7, 2020

I don't know. I didn't get any response from my last mail.

@MarionMoseby
Copy link

MarionMoseby commented Mar 7, 2020 via email

@opusforlife2
Copy link

I've seen developers take a hiatus of half a year or more, even more than a year sometimes, then return and start coding again.

@decadent
Copy link

Question regarding the freed-up version: if the trackers have been removed, isn't the ‘internet’ permission no longer necessary?

@opusforlife2
Copy link

It'll still be required for the currency conversion. Not sure what else.

@opusforlife2
Copy link

@tranleduy2000 pinging you for another try.

@basile-laderchi Any luck with that newer Android version? 🤭

@Civilian-No-001
Copy link

Has it made progress after two years?🙂

@CodeCubeNeo
Copy link

Hello! Any progress on this?

@TPS
Copy link

TPS commented Apr 17, 2022

After some commits here <1ya, @tranleduy2000 seems to be working on https://github.com/tranleduy2000/EpMedia/commits, so I assume other projects have taken priority. Maybe circling back will happen? 🤞🏾

@CodeCubeNeo
Copy link

I guess lets hope so. It would be great to have at least one open source AND useful calculator app on fdroid

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

13 participants