<commit_before>BaseProject
===========

Android project with a base common development



Main functionality
------------------
**Base Application**:
* Load config constants as debug, show logs, use tracker, use fake data, use encryption, ...
* Used as singleton and main manager to get other managers as tracker, db manager, ...

**Base Activity**:
* Methods for common operations like: findById, set values to this views, set listeners 
to this views, ... 
* Show common toast.
* Show correctly only one fragment dialog, in all app.
* A main click listener to send to current fragments and centralized its management.
* Shared preferences only for activity and encrypted or not.
* A switch fragment method that runs correctly on back and retry again.
* A clear back stack method.

**Base Fragment**:
* Activity methods façade: You do not need to call ((MyActivity) getActivity())... methods.
* Methods for common operations like: findById, set values to this views, set listeners 
to this views, ... 
* Shared preferences only for fragment, and encrypted or not.
* A switch fragment method for child fragments.
* Back event listener with the same functionality as onBackPressed than activity class.

**Base Dialog Fragment**:
* A dialog that can show a title, up to three buttons, a traditional 
single choice list, a list of selectable items (single with radio or multiple choice with 
checkbox), or a custom layout.

**Base AbsList Fragment**: 
* Parametrized with templates and capable to show list or grid views.

**Base AbsList Adapter**:
* Adapter to the AbsList.

**Base Tracker**:
* Wraps a tracker like Google Analytics. If you do not need tracking you only need to 
disable the feature and all tracking goes to Logger, this one can disable this logs.

**Logger**:
* Logs all events. You can disable it.

**AESCipher**:
* Encrypt/Decrypt strings with AES 128-bits using key based on device ANDROID_ID.



Documentation
=============
You have the [JavaDoc](BaseProject/doc/javadoc) files on doc/javadoc directory, 
and [UML](BaseProject/doc/uml) diagrams on doc/uml directory.

Class diagram
-------------
![Class diagram](BaseProject/doc/uml/ClassDiagram.png?raw=true "Class diagram")

Utilities diagram
-----------------
![Utilities diagram](BaseProject/doc/uml/UtilitiesDiagram.png?raw=true "Utilities diagram")

Test example diagram
--------------------<commit_msg>updated readme info of functionality<commit_after>BaseProject
===========

Android project with a base common development



Main functionality
------------------
**Base Application**:
* Load config constants as debug, show logs, use tracker, use fake data, use encryption, ...
* Used as singleton and main manager to get other managers as tracker, db manager, ...

**Base Activity**:
* Methods for common operations like: findById, set values to this views, set listeners 
to this views, ... 
* Show common toast.
* Show correctly only one fragment dialog, in all app.
* A main click listener to send to current fragments and centralized its management.
* Shared preferences only for activity and encrypted or not.
* A switch fragment method that runs correctly on back and retry again.
* A clear back stack method.

**Base Fragment**:
* Activity methods façade: You do not need to call ((MyActivity) getActivity())... methods.
* Methods for common operations like: findById, set values to this views, set listeners 
to this views, ... 
* Shared preferences only for fragment, and encrypted or not.
* A switch fragment method for child fragments.
* Back event listener with the same functionality as onBackPressed than activity class.

**Base Dialog Fragment**:
* A dialog that can show a title, up to three buttons, a traditional 
single choice list, a list of selectable items (single with radio or multiple choice with 
checkbox), or a custom layout.

**Base AbsList Fragment**: 
* Parametrized with templates and capable to show list or grid views.

**Base AbsList Adapter**:
* Adapter to the AbsList.

**Base Tracker**:
* Wraps a tracker like Google Analytics. If you do not need tracking you only need to 
disable the feature and all tracking goes to Logger, this one can disable this logs.

**Logger**:
* Logs all events. You can disable it.

**SecurePreferences**:
* Key-value encrypted shared preferences.

**AESCipher**:
* Encrypt/Decrypt strings with AES 128-bits using key based on device ANDROID_ID.



Documentation
=============
You have the [JavaDoc](BaseProject/doc/javadoc) files on doc/javadoc directory, 
and [UML](BaseProject/doc/uml) diagrams on doc/uml directory.

Class diagram
-------------
![Class diagram](BaseProject/doc/uml/ClassDiagram.png?raw=true "Class diagram")

Utilities diagram
-----------------
![Utilities diagram](BaseProject/doc/uml/UtilitiesDiagram.png?raw=true "Utilities diagram")

Test example diagram
--------------------
{'fraction_non_alphanumeric': 0.1122343717763565, 'fraction_numerical': 0.0012378791004745203, 'mean_word_length': 3.9672131147540983, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4241010', 'n_tokens_mistral': 1259, 'n_tokens_neox': 1207, 'n_words': 623}