Coder Social home page Coder Social logo

michelesalvador / familygem Goto Github PK

View Code? Open in Web Editor NEW
111.0 9.0 28.0 4.78 MB

Android app for genealogical trees

Home Page: https://www.familygem.app

License: GNU General Public License v3.0

Java 61.82% Kotlin 38.18%
family family-tree gedcom genealogy android-app

familygem's Introduction

Family Gem

Create your own family tree

Family Gem is an app for Android designed to manage family trees.
It's distributed as a freemium app: almost all features are free except one (merging two trees), available with a Premium subscription.

Features

With Family Gem you can:

  • Create a family tree from scratch, entering names, dates, places, various events, photos and sources.
  • Import an existing family tree through a GEDCOM file and modify it as you want.
  • Export the family tree you created (via GEDCOM again) to import in every other genealogy program.
  • Share a tree with your relatives, letting them improve it and receiving back the updates. Then you can choose whether accept them or not.
  • Export the diagram as PDF file.

Minimum supported version is Android 4.4 KitKat (API 19), maximum is Android 14 Upside Down Cake (API 34).
The intent is that data structure respects as much as possible the GEDCOM standard 5.5.1 and possibly also 5.5.5.
Family Gem is strongly based on the library Gedcom 5 Java by FamilySearch.

Limitations

The code provided in this repository should compile and build a working version of Family Gem, but with some limitations:

Missing Limitation
App signature You loose saved trees when you install over a signed version
Server account You can't share trees
GeoNames account Place names suggestions probably don't appear

The code (classes, variables, comments...) was almost all written in Italian (my native language), because I started just as a personal hobby project.
Obviously everyone expects an English code: it's hard to change at this point but I'm trying to translate all to English.

Translation

The translation of Family Gem user interface is managed on Weblate.
Contribution to translation in any language is really appreciated.
You need a Weblate account to freely work there, but also without account you can make suggestions to already existing translations.

Translation status

Resources

Official website: www.familygem.app

You can find Family Gem on Google Play.

The APK file is available on:

Feedback

For questions, bugs, suggestions you can:

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

About

Family Gem is written in Java and Kotlin within Eclipse and Android Studio.
Project started on beginning of 2018.
Author is Michele Salvador, an Italian programmer and genealogy enthusiast.

familygem's People

Contributors

42crmo4 avatar apiote avatar burekone avatar comradekingu avatar djogigoran avatar izzysoft avatar jakubfabijan avatar laurentc2 avatar lavich avatar merfi745 avatar michelesalvador avatar milotype avatar pavanbi avatar santossi avatar tobikster avatar vintic avatar vivaldo-roque avatar waldist avatar weblate avatar wonzling 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

familygem's Issues

Support for marked calling names

I used a Windows software to create my family tree, and this one supports call names, i.e. mark the typically used first name when the person has more than one first name. It would be great to at least display call names from the gedcom file as underlined, and perhaps allow editing call names in a second step.

UI Issue

Hi,

UI is not displaying properly.
Screen 1:
image

Screen 2:
image

You can see that when we select 'pqr bro 2' node.

Stemp 3:
When I Again select another node. result display as expected:
image

Zip file :
JSON Result :
New fam.zip

GEDCOM export failing

When I tried to export tree as GEDCOM I'm getting below error in my Samsung Android device.

20210103_212801

I would like to share it with IOS users..

Translation help

What is the difference between Magazzino and Archivo? Is Magazzino database and Archivo repository? I assume by repository you would mean the way it is used here.

Request: 'Export GEDCOM' without images

Is it possible to optionally export to GEDCOM without images?

This should be enough to identify changes, for backporting info into another genealogy tool
(geneweb in my case); images are just a burden for this use case.

Thanks for this wonderful app btw!

More than marriage

It seems that the only possible relationship between two partners is the marrige, assuming them inside the roles of husband and wife.
As many people know that's not always the case.
It would be nice to can choose other types of relationship.

Religious birth traditions

In Christianity there's Baptism, in Judaism there's Circumcision etc.
I think it's not reflected in the app, I've only seen Baptism IIRC.

Change ID

I assume, the ID is somehow the backbone of the database and adding a new person obviously gives it a new upcounted ID, but I don't like it, when I sort the person list after ID and because (for example) I forgot my brother and added him later, he is far down in the list. So I want to asign him an ID near me and the others move up.

So is it possible to make the ID editable?

Enhancement: Make GUI responsive during GEDCOM import

While importing, the GUI remains at main menu, and is not responding. If importing over 10000 records, Android actually proposes to close the "unresponsive app".

  1. During import, a message like "importing, please wait.." should be visible.

Even better would be if the app shows progress, either as a bar or a a stream of messages from the parser.

  1. During import, the GUI events loop should not be blocked

Import might be executed in another thread, for example (I don't know the structure of the app, so can't give better proposal).

Translations

to bring up the translation issue again. there are several translation tools
i am on
weblate
crowdin
poeditor
transifex

I'm writing down my experiences here. But you have to decide what you want.
if you take value on opensource, you can use #weblate. otherwise i hang out a lot on #crowdin and #poeditor. poeditor is, that you can only translate if you know the link. in poeditor there is no overview of all created projects of all people. people who want to translate too, find your link only by chance. i think that's stupid.
at #transifex it can be that you are rejected or that it takes a long time until you are accepted.

...written by someone who likes to promote open source projects as acrylic paintings and then hold exhibitions and has been translating open source projects for years so that more people can use them.

[Request] Make compatilbe with Gramps Sqlite

It would really be fantastic if Family Gem could read and write on the same db with Gramps (an open source geneology software).
This way, through syncing (without converting) db files across android and PC, users could access their information on both platforms.

Make the app available at F-Droid?

This looks like a great open-source app! Would you mind bringing it to F-Droid – or at least making the APK available here at Github (attached to releases/), so I could grab it for my repo? I know it's available at Uptodown – but an alternative couldn't hurt to spread it and make it available to a broader audience.

Thanks in advance for considering!

Bug: Enormous video buffer allocated when lots of people are on diagram

If a person has any media attached, opening it causes allocation of GFX memory buffers far exceeding the size of the screen.
Cell phones rarely have that much RAM, and buffer allocation fail causes the app to crash.

Repro:

  1. Open a tree which contains a person which contains a huge media (ie. 8k or more).
  2. Graph View will open successfully. Find the person with huge media.
  3. Tap the person with huge media with intent to open person view. The app will crash.

Crash logcat:

10-27 21:54:44.840 17234 17248 E OpenGLRenderer: GL error:  Out of memory!
10-27 21:54:44.840 17234 17248 F OpenGLRenderer: Could not allocate texture for layer (fbo=1 7138x5648)
10-27 21:54:44.840 17234 17248 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 17248 (RenderThread)
10-27 21:54:44.910   554   554 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-27 21:54:44.910   554   554 F DEBUG   : Build fingerprint: 'samsung/trltexx/trlte:6.0.1/MMB29M/N910FXXS1DQA1:user/release-keys'
10-27 21:54:44.910   554   554 F DEBUG   : Revision: '0'
10-27 21:54:44.910   554   554 F DEBUG   : ABI: 'arm'
10-27 21:54:44.910   554   554 F DEBUG   : pid: 17234, tid: 17248, name: RenderThread  >>> app.familygem <<<
10-27 21:54:44.910   554   554 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
10-27 21:54:44.940   554   554 F DEBUG   : Abort message: 'Could not allocate texture for layer (fbo=1 7138x5648)'
10-27 21:54:44.940   554   554 F DEBUG   :     r0 00000000  r1 00004360  r2 00000006  r3 ae1fc978
10-27 21:54:44.940   554   554 F DEBUG   :     r4 ae1fc980  r5 ae1fc930  r6 00000019  r7 0000010c
10-27 21:54:44.940   554   554 F DEBUG   :     r8 00000001  r9 00000000  sl b6da3ec0  fp 0000170a
10-27 21:54:44.940   554   554 F DEBUG   :     ip 00000006  sp ae1fbfe0  lr b6d68c01  pc b6d6aff0  cpsr 400f0010
10-27 21:54:44.960   554   554 F DEBUG   :
10-27 21:54:44.960   554   554 F DEBUG   : backtrace:
10-27 21:54:44.960   554   554 F DEBUG   :     #00 pc 00041ff0  /system/lib/libc.so (tgkill+12)
10-27 21:54:44.960   554   554 F DEBUG   :     #01 pc 0003fbfd  /system/lib/libc.so (pthread_kill+32)
10-27 21:54:44.960   554   554 F DEBUG   :     #02 pc 0001c397  /system/lib/libc.so (raise+10)
10-27 21:54:44.960   554   554 F DEBUG   :     #03 pc 00019615  /system/lib/libc.so (__libc_android_abort+34)
10-27 21:54:44.960   554   554 F DEBUG   :     #04 pc 00017568  /system/lib/libc.so (abort+4)
10-27 21:54:44.960   554   554 F DEBUG   :     #05 pc 0000841f  /system/lib/libcutils.so (__android_log_assert+86)
10-27 21:54:44.960   554   554 F DEBUG   :     #06 pc 0003eb9b  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #07 pc 00056af1  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #08 pc 00056c2f  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #09 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #10 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #11 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #12 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #13 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #14 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #15 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #16 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #17 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #18 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #19 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #20 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #21 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #22 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #23 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #24 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #25 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #26 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #27 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #28 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #29 pc 0005702d  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #30 pc 00056c27  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #31 pc 00056f1d  /system/lib/libhwui.so (_ZN7android10uirenderer10RenderNode11prepareTreeERNS0_8TreeInfoE+60)
10-27 21:54:44.960   554   554 F DEBUG   :     #32 pc 00084101  /system/lib/libandroid_runtime.so
10-27 21:54:44.960   554   554 F DEBUG   :     #33 pc 0001dee9  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #34 pc 0001eea1  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #35 pc 0001efcb  /system/lib/libhwui.so
10-27 21:54:44.960   554   554 F DEBUG   :     #36 pc 00022271  /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+80)
10-27 21:54:44.960   554   554 F DEBUG   :     #37 pc 00010075  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+112)
10-27 21:54:44.960   554   554 F DEBUG   :     #38 pc 00062f93  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+70)
10-27 21:54:44.960   554   554 F DEBUG   :     #39 pc 0003f4ff  /system/lib/libc.so (_ZL15__pthread_startPv+30)
10-27 21:54:44.960   554   554 F DEBUG   :     #40 pc 00019c97  /system/lib/libc.so (__start_thread+6)
10-27 21:54:45.570  2052 17746 W ActivityManager:   Force finishing activity app.familygem/.Principal
10-27 21:54:45.580  2052 17746 D InputDispatcher: Focused application set to: xxxx
10-27 21:54:45.580   554   554 F DEBUG   :
10-27 21:54:45.580   554   554 F DEBUG   : Tombstone written to: /data/tombstones/tombstone_04
10-27 21:54:45.580   554   554 E         : ro.product_ship = true
10-27 21:54:45.580   554   554 E         : ro.debug_level = 0x4f4c
10-27 21:54:45.580   554   554 E         : sys.mobilecare.preload = false
10-27 21:54:45.590  3970  3970 E audit   : type=1701 msg=audit(1666900485.580:905): auid=4294967295 uid=10036 gid=10036 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=17248 comm="RenderThread" reason="memory violation" sig=6
10-27 21:54:45.590  2052  2504 I BootReceiver: Copying /data/tombstones/tombstone_04 to DropBox (SYSTEM_TOMBSTONE)

Maiden Names

Hi,
the female relatives should have a field for their maiden names, aka her birth names....

Thanks a lot for making this app. πŸ‘

two genealogy joined

Greeting,
thank you for your efforts in creating the android Family Gem app. I really like it and intend to use it in my application.
Is it possible to merge two gedcom files, which are part of your application, into one file.

The scenario is as follows:

  1. The user creates the first genealogy with, for example, 10 people
  2. He then creates another genealogy with, for example, 30 people
  3. Thereafter, the situation arises that the two genealogy have a common root through which they can be joined.

Add icon in sort by menu

In VLC media player, they add an icon to indicate whether sorting is ascending or descending:Screenshot_2022-10-30-16-43-49-44_4aed3257f278fcf7bfa3abd644e23333.jpg

One tree for intermarriage

Hello,
I was wondering if there was a possibility to show just one tree when a brother and a sister has married ?
Because when I make it, it shows me one tree for the brother and one fort the sister either they have the same parents.

Licensing issues

Outside of laudable ethical merit, the unlicense and similar licenses become problematic in practice.

Unlicense is an additional license for the Weblate list of licenses. Weblate has a provision for adding all strings into a stringpool all the projects can use, but it would be much better if the license supported this directly.

Some jurisdictions actually allow public domain licensing. This means the protections (or restrictions if you will) of other licenses become incompatible. What is considered a work differs too, and with copyleft the whole thing has the potential to be tainted by licenses that half-way work. As long as it doesn't work fully, which is the case for anything that accepts changes from a lot of people, it isn't actually beneficial.

More about this liberapay/liberapay.com#564 (comment)

Since the maintainter is the only contributor so far, it is a perfect time to change the license to something else.
I like copyleft licenses because they protect forks of the project from being made closed source software, but if you just want something simple, MIT is good.

Edit: https://www.wipo.int/edocs/mdocs/mdocs/en/cdip_13/cdip_13_inf_6.docx is a good read, but it doesn't answer whether Italian law allows putting works into the public domain by voluntarily waiving the default copyright assigned upon creation. Moral rights in Italian copyright law are eternal, so I suppose not. Even so that would mean it can't be fully public domain until copyright expires.

From the WIPO document Given that both UK law and the relevant international treaties and European Directives1 are not qualified in any way to allow voluntary acts that reduce the term of protection, the conclusion must be that copyright must subsist for the entire term stipulated by law.2

For these and other reasons, Johnson argues that any dedication to the public domain is at most a copyright license and as such the author can revoke it. While there is no obligation for the author to enforce the copyright, the user of the work will rely on the good faith of the person making the dedication, and at most it can be seen β€œas a political statement”.3

App crashed during edit

Just to let you know, I show you my crash.
Sure, shit happens, but crashing is a bad option
image

Translating to Kotlin

Would you be interested in having the app translated into Kotlin? When using it for the Geni.com client, I will highly likely translate the code into Kotlin. Should I create pull requests?

Sharing issue

When I'm trying to export a zip file it says "saxparseexception no good lines" how can this be corrected or how else can I share my tree with a relative?

Sharing issue

I love the App and have been using it for about a year with no issues and have shared my Family tree many times with other people . A few days ago I was asked to share it again but when I press the Share button the spinning icon rotates for about 10 seconds and then stops and nothing happens .I have the FamilyGem App on 3 different Android devices and none of them work . My App version is 0.7.16 and I am wondering is this something to do with the latest update. Any help or fix would be appreciated. Many thanks ,Mick

Crash after editing unmarried person

I changed the name of an unmarried family member, and the app crashed. GEDCOM fragment available on request.

Resolved by the following patch, though I've no idea if getRef()==null is a valid state.

diff --git a/app/src/main/java/app/familygem/IndividuoEventi.java b/app/src/main/java/app/familygem/IndividuoEventi.java
index 2fb932c..a451e93 100644
--- a/app/src/main/java/app/familygem/IndividuoEventi.java
+++ b/app/src/main/java/app/familygem/IndividuoEventi.java
@@ -187,7 +187,8 @@ public class IndividuoEventi extends Fragment {
                        if( U.sesso(tizio) == 2 ) { // La fa diventare wife
                                Iterator<SpouseRef> refiSposo = fam.getHusbandRefs().iterator();
                                while( refiSposo.hasNext() ) {
-                                       if( refiSposo.next().getRef().equals(tizio.getId()) ) {
+                                       String sr = refiSposo.next().getRef();
+                                       if( sr != null && sr.equals(tizio.getId()) ) {
                                                refiSposo.remove();
                                                rimosso = true;
                                        }
@@ -199,7 +200,8 @@ public class IndividuoEventi extends Fragment {
                        } else { // Per tutti gli altri sessi diventa husband
                                Iterator<SpouseRef> refiSposo = fam.getWifeRefs().iterator();
                                while( refiSposo.hasNext() ) {
-                                       if( refiSposo.next().getRef().equals(tizio.getId()) ) {
+                                       String sr = refiSposo.next().getRef();
+                                       if( sr != null && sr.equals(tizio.getId()) ) {
                                                refiSposo.remove();
                                                rimosso = true;
                                        }

Later: "Find errors" also crashes, for pretty much the same reason. Patch:

diff --git a/app/src/main/java/app/familygem/Alberi.java b/app/src/main/java/app/familygem/Alberi.java
index af6fe88..e787263 100644
--- a/app/src/main/java/app/familygem/Alberi.java
+++ b/app/src/main/java/app/familygem/Alberi.java
@@ -539,22 +539,26 @@ public class Alberi extends AppCompatActivity {
                                        } else errori++;
                                } else {
                                        num = 0;
-                                       for( SpouseRef sr : fam.getHusbandRefs() )
-                                               if( sr.getRef().equals( p.getId() ) ) {
+                                       for( SpouseRef sr : fam.getHusbandRefs() ) {
+                                               String srs = sr.getRef();
+                                               if (srs != null && srs.equals(p.getId())) {
                                                        num++;
-                                                       if( num > 1 && correggi ) {
-                                                               fam.getHusbandRefs().remove( sr );
+                                                       if (num > 1 && correggi) {
+                                                               fam.getHusbandRefs().remove(sr);
                                                                break;
                                                        }
                                                }
-                                       for( SpouseRef sr : fam.getWifeRefs() )
-                                               if( sr.getRef().equals( p.getId() ) ) {
+                                       }
+                                       for( SpouseRef sr : fam.getWifeRefs() ) {
+                                               String srs = sr.getRef();
+                                               if (srs != null && srs.equals(p.getId())) {
                                                        num++;
-                                                       if( num > 1 && correggi ) {
-                                                               fam.getWifeRefs().remove( sr );
+                                                       if (num > 1 && correggi) {
+                                                               fam.getWifeRefs().remove(sr);
                                                                break;
                                                        }
                                                }
+                                       }
                                        if( num != 1 ) {
                                                if( num == 0 && correggi ) {
                                                        p.getSpouseFamilyRefs().remove( sfr );

Not able to build the app

Hi Michele,

While building this app from Android, I am getting the below error regarding the missing file - chiavi.properties.

Can you please me to get the whole solution working ? Highly Appreciated....for help and sharing this amazing application with us.

Caused by: java.io.FileNotFoundException: /Users/akshayshaha/FamilyGem/chiavi.properties (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:238) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:250) at build_917qyoqusbfw7amar4ck1tg47.run(/Users/akshayshaha/FamilyGem/app/build.gradle:6) at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90) ... 106 more

Make tree branch chips 48dp

The material design guidelines say that all clickable targets should be a minimum of 48dp for accessibility. The chips for navigating to a branch of the tree (see pic) are too small.Screenshot_2022-10-30-16-34-35-82_6494ae8bcc0f3d697d5f48cc23e6a4d6.jpg

Family Gem should have some help pages

@IzzySoft rightly pointed out in another issue that:

...maybe those instructions should be placed where "Average Joe" can easily find them? Suggestions: Readme, or better: Wiki (you didn't yet start a wiki, but this seems a good time to do so – I'm pretty sure there will be more things to fill the pages, and the Readme then could just point there).

Change tree layout

Hi, I like your app very much and after some testing I have two questions/suggestions (second one in another issue):

Is it possible to change the layout of the tree? Or is it following some guidelines?

For example, moving persons around, switching places between siblings?
Because I am between my partner and the sister. Looks kind of weird to me.

Code is mostly written in Italian language

Would you consider using English comments in the code? That would make it easier for possible contributors. I tried figuring things browsing the code, but with everything being in Italian, including comments, variable and method names, I was completely lost there. Nothing against Italian of course πŸ˜‰ And before you ask: like @mondstern my native tongue is German, so it's not about "use my language please" but rather finding a "common denominator".

Originally posted by @IzzySoft in #8 (comment)

Want PR to use recommended app architecture?

There are some patterns the app uses that are contrary to what is recommended for modern Android apps in the official Android app architecture guidelines. Namely:

  • Using JSON database instead of Room
  • using static activity functions for saving data (which, granted, call through to U.save()) instead of repository
  • using activities instead of fragments with single main activity
  • manually updating UI after db update instead of using LiveData
  • using Kotlin coroutines to delegate work to a background thread that can block the UI thread (as in #65, requires #63 )
  • using Glide to load images instead of Picasso (solves #66) (recommended in the "Note:" at the beginning of this article)

As well as general code smells:

  • using magic numbers (unnamed constants that carry meaning to the original author, instead of named constants or enums, which carry meaning to the reader by being self-descriptive)
  • invoking functions using reflection (via getMethod("set" + name).invoke())

@michelesalvador Would you be interested in pull requests to update these? Of course, I would be ensuring that functionality remains the same.

Question about partner display behavior

If a child has multiple partners, only one partner will be displayed.
Shouldn't be all partner be listet, like the view, where the child is the root and every partner is listed?

An example on the Simpsons family tree:

If I select 'Orville Simpson' it shows for his child 'Grampa Simpson' 'Gaby' as partner and not 'Monat Simpson'.

Shouldn't there both be displayed?
If I select 'Grampa Simpson' direclty everything is displayed as expected.
If only one partner can be displayed, how will it be choosen?
Can I control the selection of the partner?

What are these activites?

What is the purpose of this activity?

  • ArchivioRef
  • Facciata (facade?)
  • Lavagna (blackboard?)
  • Memoria
    • What does "bava" mean in this context? // Gestisce le pile di oggetti gerarchici per scrivere la bava in Dettaglio

Hi Michele

Can you please provide your Email.

Highly Appreciated

Unable to add media

Hey there,

Recently downloaded the app from f-droid but have been unable to add any media. When I choose to add media, I'm presented with the choose app screen, I select my gallery app and then choose a photo. However when I get to the crop screen it gives me the empty media icon.

If I proceed then it adds the empty media icon but shows a link to the oroginal photo.

Running the latest version (0.7.16) and have clean installed it on my Galaxy S10+ running Android 10.

Let me know if I can help with any other info to help diagnose the issue.

PDF export in dark mode creates black boxes

My phone is in dark mode, and when I export a diagram as a PDF file, the resulting file has a white background, but black boxes. Export should show a transparent or white background no matter of the phone settings.

(Thanks a lot for this app - the best I saw for Gedcom purposes!)

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.