Compare commits

..

No commits in common. "32119baf52ede40b2e987e54600c8b223ea87565" and "d47a030f8380ed3806452d5a77eef8c93545ddb7" have entirely different histories.

7 changed files with 53 additions and 117 deletions

2
.gitignore vendored
View file

@ -48,5 +48,3 @@ gen/
/android-signing-keystore.jks
/secrets.properties
*.hprof
.zhistory

View file

@ -1,80 +0,0 @@
<h1 id="pilldroid">Pilldroid</h1>
<blockquote>
<p>[!note] I apologize. For know, even string exist in English,
<em>Pilldroid</em> is a French only application. That because the global
drugs database contain only French drugs nommage. If you can find a way
to provide another country global database,feel free to <a
href="mailto://pilldroid@foucry,net?Subject=%22Another%20database%22">contact
me</a></p>
<p>Pilldroid est une application de gestion de stock
<strong>théorique</strong> de médicament à destination des personnes
résidant en France.</p>
</blockquote>
<p><a href="https://f-droid.org/packages/net.foucry.pilldroid">
<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80"> </a></p>
<h2 id="quest-ce-que-pilldroid">Quest-ce que Pilldroid ?</h2>
<p>Pilldroid est une applicaton de gestion de stock <em>théorique</em>
de médicaments, pour téléphone Android©.</p>
<h2 id="pourquoi-stock-théorique">Pourquoi « Stock théorique » ?</h2>
<p>Pilldroid ne sait pas (et na aucun moyen de savoir) si vous avez ou
non pris vos médicaments. Pilldroid effectue, simple calcul :
<code>stock connu - prise par jour</code>. Ce calcul est fait tous les
jours entre 11h et midi.</p>
<h2
id="de-quelles-autorisations-lapplication-pilldroid-a-t-elle-besoin">De
quelles autorisations lapplication Pilldroid a-t-elle besoin ?</h2>
<ul>
<li>Pilldroid a besoin de savoir que le téléphone a été redémarré pour
elle-même lancer son cycle de réveil journalier.</li>
<li>Pilldroid a besoin daccéder à lappareil photo de votre téléphone
pour scanner le code-barres des boîtes de médicaments.</li>
<li>Pilldroid a besoin de pouvoir vous envoyer des notifications.</li>
<li>Pilldroid a besoin de faire vibrer le téléphone pour les
notifications.</li>
</ul>
<h2
id="lapplication-pilldroid-embarque-t-elle-des-bibliothèques-tierce">Lapplication
Pilldroid embarque-t-elle des bibliothèques tierce ?</h2>
<p>Oui. Pour la lecture de code-barres, Pilldroid utilise le projet <a
href="https://github.com/journeyapps/zxing-android-embedded">zxing</a>
lui-même libre et ouvert.</p>
<h2 id="lapplication-pilldroid-contient-elle-des-pisteurs">Lapplication
Pilldroid contient-elle des pisteurs ?</h2>
<p><a
href="https://reports.exodus-privacy.eu.org/fr/reports/net.foucry.pilldroid/latest/">NON
!</a></p>
<h2 id="doù-viennent-les-données-de-pilldroid">Doù viennent les données
de Pilldroid ?</h2>
<p>Elles sont issues de plusieurs fichiers de lAgence pour la Sécurité
des Médicaments, agrégés dans une base de données grâce à script Python
qui est disponible sur le dépôt <a
href="https://github.com/jfoucry/TransformMeds">TransformMeds</a>.</p>
<h2 id="ce-que-nest-pas-pilldroid">Ce que nest pas Pilldroid</h2>
<ul>
<li>Pilldroid nest pas un pilulier. Pilldroid ne vous rappellera pas de
prendre vos médicaments, cest <strong>VOTRE</strong>
responsabilité.</li>
<li>Pilldroid nest pas fiable, ce nest quune aide. Seul votre stock
réel est bon.</li>
</ul>
<h2 id="comment-peut-on-participer-à-pilldroid">Comment peut-on
participer à Pilldroid ?</h2>
<p>Mon code est de piètre qualité et mes connaissances Java maigrelettes
toute amélioration <strong>que je comprends</strong> sera la
bienvenue.</p>
<p>Marché de niche, Pilldroid a besoin de testeuses et testeurs.</p>
Et si vous ne pouvez-vous pas par ces moyens, vous pouvez maider à
payer mon électricité et mon accès internet :
<script src="https://liberapay.com/Pilldroid/widgets/button.js"></script>
<noscript>
<a href="https://liberapay.com/Pilldroid/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
</noscript>
<h2 id="lapplication-pilldroid-dispose-telle-dun-site-web">Lapplication
Pilldroid dispose telle dun site web ?</h2>
<p>Oui, bien sûr : <a
href="https://pilldroid.foucry.net">Pilldroid</a></p>
<h2 id="contact">Contact</h2>
<p>Le site web en premier lieu et ladresse mail <a
href="mailto://pilldroid@foucry.net:Subject=%22Contact%22">pilldroid@foucry.net</a></p>

View file

@ -82,10 +82,8 @@ android {
namespace 'net.foucry.pilldroid'
allprojects {
tasks.withType(JavaCompile).tap {
configureEach {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
@ -118,9 +116,7 @@ dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation 'androidx.core:core:1.13.1'
implementation 'de.raphaelebner:roomdatabasebackup:1.0.1' // a supprimer
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'de.raphaelebner:roomdatabasebackup:1.0.1'
//coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.0'
}

View file

@ -12,8 +12,6 @@
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application

View file

@ -98,8 +98,6 @@ public class DrugListActivity extends AppCompatActivity {
private RecyclerViewAdapter mAdapter;
private final int PICK_DIRECTORY = 9999;
@Override
public void onStart() {
super.onStart();
@ -324,8 +322,7 @@ public class DrugListActivity extends AppCompatActivity {
startActivity(new Intent(this, WelcomeActivity.class));
return true;
} else if (id == R.id.ImportExport) {
//backupprefs();
choseDir();
backupprefs();
}
return super.onOptionsItemSelected(item);
}
@ -334,11 +331,6 @@ public class DrugListActivity extends AppCompatActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
constructDrugsList();
if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String path = (String) extras.get("chosenDir");
//println("Path ==" path);
}
}
public void onResume() {
@ -429,7 +421,7 @@ public class DrugListActivity extends AppCompatActivity {
private void askToAddInDB(Medicine aMedicine) {
final Dialog dlg = new Dialog(this);
dlg.requestWindowFeature(Window.FEATURE_NO_TITLE);
Objects.requireNonNull(dlg.getWindow()).setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Objects.requireNonNull(dlg.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dlg.setContentView(R.layout.custom_dialog_layout_one_button);
dlg.setCancelable(false);
TextView msg = dlg.findViewById(R.id.msg);
@ -730,19 +722,12 @@ public class DrugListActivity extends AppCompatActivity {
}
}
void choseDir() {
Intent result = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
String path = "";
result.putExtra("chosenDir", path);
setResult(RESULT_OK, result);
}
void backupprefs() {
Log.i(TAG, "backupprefs");
final Dialog dlg = new Dialog(this);
dlg.requestWindowFeature(Window.FEATURE_NO_TITLE);
Objects.requireNonNull(dlg.getWindow()).setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Objects.requireNonNull(dlg.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dlg.setContentView(R.layout.backupprefs);
dlg.setCancelable(false);
@ -808,13 +793,13 @@ public class DrugListActivity extends AppCompatActivity {
// startActivity(intent);
// });
Button btn_export = dlg.findViewById(R.id.switch_btn_export);
Button btn_export = findViewById(R.id.switch_btn_export);
assert btn_export != null;
Button btn_import = dlg.findViewById(R.id.switch_btn_import);
Button btn_import = findViewById(R.id.switch_btn_import);
assert btn_import != null;
Button btn_properties = dlg.findViewById(R.id.btn_properties);
Button btn_properties = findViewById(R.id.btn_properties);
assert btn_properties != null;
Button btn_backupLocation = dlg.findViewById(R.id.btn_backup_location);
Button btn_backupLocation = findViewById(R.id.btn_backup_location);
assert btn_backupLocation != null;
encryptBackup = sharedPreferences.getBoolean(spEncryptBackup, true);
@ -888,7 +873,6 @@ public class DrugListActivity extends AppCompatActivity {
Log.i(TAG, "ok button");
PrescriptionDatabase.getInstanceDatabase(this);
final RoomBackup roomBackup = new RoomBackup(DrugListActivity.this);
if (btn_export.isEnabled()) {
btn_export.setOnClickListener(v -> {
@ -926,3 +910,43 @@ public class DrugListActivity extends AppCompatActivity {
}
}
}
/*
final RoomBackup roomBackup = new RoomBackup(MainActivityJava.this);
*/
/*---------------------Backup and Restore Database--------------------------*//*
btn_backup.setOnClickListener(v -> {
roomBackup.backupLocation(storageLocation);
roomBackup.backupLocationCustomFile(new File(this.getFilesDir() + "/databasebackup/geilesBackup.sqlite3"));
roomBackup.database(FruitDatabase.Companion.getInstance(getApplicationContext()));
roomBackup.enableLogDebug(enableLog);
roomBackup.backupIsEncrypted(encryptBackup);
roomBackup.customEncryptPassword(MainActivity.SECRET_PASSWORD);
if (useMaxFileCount)
roomBackup.maxFileCount(5);
roomBackup.onCompleteListener((success, message, exitCode) -> {
Log.d(TAG, "oncomplete: " + success + ", message: " + message + ", exitCode: " + exitCode);
if (success)
roomBackup.restartApp(new Intent(getApplicationContext(), MainActivityJava.class));
});
roomBackup.backup();
});
btn_restore.setOnClickListener(v -> {
roomBackup.backupLocation(storageLocation);
roomBackup.backupLocationCustomFile(new File(this.getFilesDir() + "/databasebackup/geilesBackup.sqlite3"));
roomBackup.database(FruitDatabase.Companion.getInstance(getApplicationContext()));
roomBackup.enableLogDebug(enableLog);
roomBackup.backupIsEncrypted(encryptBackup);
roomBackup.customEncryptPassword(MainActivity.SECRET_PASSWORD);
roomBackup.onCompleteListener((success, message, exitCode) -> {
Log.d(TAG, "oncomplete: " + success + ", message: " + message + ", exitCode: " + exitCode);
if (success)
roomBackup.restartApp(new Intent(getApplicationContext(), MainActivityJava.class));
});
roomBackup.restore();
});*/

View file

@ -9,7 +9,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.6.0'
classpath 'com.android.tools.build:gradle:8.0.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@ -33,7 +33,7 @@ allprojects {
}
tasks.register('clean', Delete) {
delete rootProject
delete rootProject.buildDir
}
dependencies {}

View file

@ -1,6 +1,6 @@
#Fri Sep 22 18:17:05 CEST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists