Compare commits

...

2 Commits

Author SHA1 Message Date
kroko 992a09cb12 remove OEGD, change support/delete 2024-04-30 09:57:33 +02:00
kroko e8a93acee3 delete account without e-mail and text 2024-04-24 15:51:00 +02:00
16 changed files with 45 additions and 2690 deletions

View File

@ -7,11 +7,11 @@
<deviceKey> <deviceKey>
<Key> <Key>
<type value="VIRTUAL_DEVICE_PATH" /> <type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\Ar4i\.android\avd\Pixel_5_API_34.avd" /> <value value="C:\Users\49176\.android\avd\Pixel_5_API_30.avd" />
</Key> </Key>
</deviceKey> </deviceKey>
</Target> </Target>
</targetSelectedWithDropDown> </targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-09-01T16:36:10.445111300Z" /> <timeTargetWasSelectedWithDropDown value="2024-02-08T11:34:39.856735300Z" />
</component> </component>
</project> </project>

View File

@ -24,6 +24,13 @@
<entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/popup_privacy_policy.xml" value="0.259375" /> <entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/popup_privacy_policy.xml" value="0.259375" />
<entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/popup_push_explain.xml" value="0.2" /> <entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/popup_push_explain.xml" value="0.2" />
<entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/results_table_row.xml" value="0.259375" /> <entry key="..\:/AndroidStudio/Befund/Android/app/src/main/res/layout/results_table_row.xml" value="0.259375" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/activity_edit_oegd.xml" value="0.3723958333333333" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/activity_faq.xml" value="0.259375" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/activity_new_oegd.xml" value="0.3723958333333333" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/activity_oegd.xml" value="0.3723958333333333" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/activity_support.xml" value="0.3723958333333333" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/fragment_oegd_code.xml" value="0.3723958333333333" />
<entry key="..\:/AndroidStudio/patbef/app/src/main/res/layout/popup_oegd_options.xml" value="0.3723958333333333" />
<entry key="..\:/git/Befund/Android/app/src/main/res/drawable-v24/ic_launcher.xml" value="0.4296875" /> <entry key="..\:/git/Befund/Android/app/src/main/res/drawable-v24/ic_launcher.xml" value="0.4296875" />
<entry key="..\:/git/Befund/Android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.19895833333333332" /> <entry key="..\:/git/Befund/Android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.19895833333333332" />
<entry key="..\:/git/Befund/Android/app/src/main/res/drawable/bottom_border.xml" value="0.4453125" /> <entry key="..\:/git/Befund/Android/app/src/main/res/drawable/bottom_border.xml" value="0.4453125" />

View File

@ -2,6 +2,5 @@
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/Android" vcs="Git" />
</component> </component>
</project> </project>

View File

@ -58,24 +58,6 @@
android:exported="true" android:exported="true"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/Theme.Befund.NoActionBar"></activity> android:theme="@style/Theme.Befund.NoActionBar"></activity>
<activity
android:name=".OEGDActivity"
android:screenOrientation="portrait"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Befund.NoActionBar"></activity>
<activity
android:name=".NewOEGDActivity"
android:screenOrientation="portrait"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Befund.NoActionBar"></activity>
<activity
android:name=".EditOEGDActivity"
android:screenOrientation="portrait"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Befund.NoActionBar"></activity>
<activity <activity
android:name=".SettingsActivity" android:name=".SettingsActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@ -35,7 +35,7 @@ import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager; import javax.net.ssl.X509TrustManager;
import de.labor_stein.befund.BuildConfig; //import de.labor_stein.befund.BuildConfig;
import de.labor_stein.befund.Core.Lang.Lang; import de.labor_stein.befund.Core.Lang.Lang;
import de.labor_stein.befund.Core.Log; import de.labor_stein.befund.Core.Log;
import de.labor_stein.befund.Core.Models.Request.EncryptedRequest; import de.labor_stein.befund.Core.Models.Request.EncryptedRequest;
@ -46,6 +46,10 @@ import de.labor_stein.befund.Core.Models.Session;
import de.labor_stein.befund.Core.Security.AES; import de.labor_stein.befund.Core.Security.AES;
import de.labor_stein.befund.Core.Security.Curve25519; import de.labor_stein.befund.Core.Security.Curve25519;
class BuildConfig
{
public static boolean DEBUG = true;
}
public class Request public class Request
{ {
/** /**

View File

@ -10,7 +10,7 @@ package de.labor_stein.befund.Core.Https;
public enum Servers public enum Servers
{ {
// Development server change ip to your local ip // Development server change ip to your local ip
DEVELOPMENT("192.168.10.26"), DEVELOPMENT("patientenbefundapp.labor-muenster.de"),
//DEVELOPMENT("172.21.200.145"), //DEVELOPMENT("172.21.200.145"),
/** /**

View File

@ -127,31 +127,21 @@ public class EncryptedResponse
*/ */
public boolean ValidSignature(byte[] deriveKey, String serverSignature, String serverSignatureKey) public boolean ValidSignature(byte[] deriveKey, String serverSignature, String serverSignatureKey)
{ {
if (this.encrypted_content != null && !this.encrypted_content.isEmpty()) String content;
if ( this.encrypted_content != null && !this.encrypted_content.isEmpty())
{ {
return content = this.encrypted_content;
// Validate over HMAC
(this.hmac != null && !this.hmac.isEmpty() &&
deriveKey != null &&
deriveKey.length > 0 &&
SHA512.isValidAuthenticationCode(hmac, this.encrypted_content, deriveKey)) &&
//Validate over Ed25519
(serverSignature != null && !serverSignature.isEmpty() &&
Ed25519.CheckValid(Base64.FromBase64String(serverSignature), this.encrypted_content.getBytes(StandardCharsets.UTF_8), Base64.FromBase64String(serverSignatureKey)));
} }
else else {
{ content = this.descriptor;
return
// Validate over HMAC
(this.hmac != null && !this.hmac.isEmpty() &&
deriveKey != null &&
deriveKey.length > 0 &&
SHA512.isValidAuthenticationCode(hmac, this.descriptor, deriveKey)) &&
//Validate over Ed25519
(serverSignature != null && !serverSignature.isEmpty() &&
Ed25519.CheckValid(Base64.FromBase64String(serverSignature), this.descriptor.getBytes(StandardCharsets.UTF_8), Base64.FromBase64String(serverSignatureKey)));
} }
return (this.hmac != null && !this.hmac.isEmpty() &&
deriveKey != null &&
deriveKey.length > 0 &&
// Validate over HMAC
SHA512.isValidAuthenticationCode(hmac, content, deriveKey)) &&
(serverSignature != null && !serverSignature.isEmpty() &&
//Validate over Ed25519
Ed25519.CheckValid(Base64.FromBase64String(serverSignature), content.getBytes(StandardCharsets.UTF_8), Base64.FromBase64String(serverSignatureKey)));
} }
} }

View File

@ -1,457 +0,0 @@
//
// EditOEGDActivity.java
// Befund
//
// Created by Irakli Abetschkhrischwili on 02.07.22.
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
package de.labor_stein.befund;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.gson.Gson;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.UUID;
import de.labor_stein.befund.Core.Helpers.DateHelper;
import de.labor_stein.befund.Core.Lang.Lang;
import de.labor_stein.befund.Core.Log;
import de.labor_stein.befund.Core.Models.OEGD;
import de.labor_stein.befund.Core.Models.OEGDFile;
import de.labor_stein.befund.Core.Models.Session;
import de.labor_stein.befund.Core.Security.AES;
import de.labor_stein.befund.Core.Security.Base64;
import de.labor_stein.befund.Core.System;
public class EditOEGDActivity extends AppCompatActivity
{
/** EditOEGDActivityContext **/
private Context MainContext;
/** Layouts **/
private CoordinatorLayout ActivityRootLayout;
/** Controls **/
private TextView lblEditOEGD;
private TextView EditOEGDActivitylblButtonBack;
private EditText EditOEGDActivity_txtTitle;
private EditText EditOEGDActivity_txtFirstname;
private EditText EditOEGDActivity_txtLastname;
private EditText EditOEGDActivity_txtAdditionLastname;
private EditText EditOEGDActivity_txtPrefix;
private Spinner EditOEGDActivity_txtGenders;
private EditText EditOEGDActivity_txtBirthday;
private DatePickerDialog BirthdayPicker;
private EditText EditOEGDActivity_txtStreet;
private EditText EditOEGDActivity_txtZIP;
private EditText EditOEGDActivity_txtCity;
private EditText EditOEGDActivity_txtTelefon;
private Button EditOEGDActivity_btnSave;
private TextView EditOEGDActivity_Status;
/** Buttons **/
private FloatingActionButton OEGDButtonBack;
/** List items **/
private String[] Genders = { Lang.Get("LBL_GENDER"), Lang.Get("LBL_GENDER_M"), Lang.Get("LBL_GENDER_W"), Lang.Get("LBL_GENDER_D"), Lang.Get("LBL_GENDER_X") };
/** Current OEGDFile for editing **/
private OEGDFile CurrentOEGD = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_oegd);
try
{
Bundle parameters = getIntent().getExtras();
if(parameters != null)
{
String file = parameters.getString("file");
if(file != null)
{
byte[] encrypted_content = System.ReadFromStorage(file, this);
if(encrypted_content != null)
{
String json = AES.Decrypt(new String(encrypted_content, StandardCharsets.UTF_8), AES.GetKey(Session.DevicePassword));
if(json != null)
{
CurrentOEGD = new OEGDFile();
CurrentOEGD.filename = file;
CurrentOEGD.OEGD = new Gson().fromJson(json, OEGD.class);
}
}
}
}
}
catch (Exception ex)
{
Log.Critical(ex.getMessage(), "EditOEGDActivity", "onCreate");
}
this.Initialize();
}
/**
* Initializes eIDActivity
*/
private void Initialize()
{
MainContext = this;
Log.Initialize(this);
this.InitializeLayouts();
this.InitializeLabels();
this.InitializeButtons();
this.InitializeControls();
this.InitializeLanguages();
}
/**
* Initializes Languages
*/
private void InitializeLanguages()
{
lblEditOEGD.setText(Lang.Get("LBL_EDIT_OEGD"));
EditOEGDActivitylblButtonBack.setText(Lang.Get("BTN_BACK"));
EditOEGDActivity_txtTitle.setHint(Lang.Get("LBL_TITLE"));
EditOEGDActivity_txtFirstname.setHint(Lang.Get("LBL_FIRSTNAME"));
EditOEGDActivity_txtLastname.setHint(Lang.Get("LBL_LASTNAME"));
EditOEGDActivity_txtAdditionLastname.setHint(Lang.Get("LBL_ADDITION_NAME"));
EditOEGDActivity_txtPrefix.setHint(Lang.Get("LBL_NAME_PREFIX"));
EditOEGDActivity_txtBirthday.setHint(Lang.Get("LBL_BIRTHDAY"));
EditOEGDActivity_txtStreet.setHint(Lang.Get("LBL_STREET"));
EditOEGDActivity_txtZIP.setHint(Lang.Get("LBL_ZIP"));
EditOEGDActivity_txtCity.setHint(Lang.Get("LBL_CITY"));
EditOEGDActivity_txtTelefon.setHint(Lang.Get("LBL_TELEFON"));
EditOEGDActivity_btnSave.setText(Lang.Get("BTN_SAVE"));
}
/**
* Initializes controls
*/
private void InitializeControls()
{
EditOEGDActivity_btnSave = findViewById(R.id.EditOEGDActivity_btnSave);
if(this.CurrentOEGD != null && this.CurrentOEGD.OEGD != null)
{
EditOEGDActivity_btnSave.setOnClickListener(v -> { this.EditOEGDActivity_btnSave_Click(); });
}
EditOEGDActivity_txtTitle = findViewById(R.id.EditOEGDActivity_txtTitle);
EditOEGDActivity_txtFirstname = findViewById(R.id.EditOEGDActivity_txtFirstname);
EditOEGDActivity_txtLastname = findViewById(R.id.EditOEGDActivity_txtLastname);
EditOEGDActivity_txtAdditionLastname = findViewById(R.id.EditOEGDActivity_txtAdditionLastname);
EditOEGDActivity_txtPrefix = findViewById(R.id.EditOEGDActivity_txtPrefix);
EditOEGDActivity_txtGenders = findViewById(R.id.EditOEGDActivity_txtGenders);
EditOEGDActivity_txtBirthday = findViewById(R.id.EditOEGDActivity_txtBirthday);
EditOEGDActivity_txtStreet = findViewById(R.id.EditOEGDActivity_txtStreet);
EditOEGDActivity_txtZIP = findViewById(R.id.EditOEGDActivity_txtZIP);
EditOEGDActivity_txtCity = findViewById(R.id.EditOEGDActivity_txtCity);
EditOEGDActivity_txtTelefon = findViewById(R.id.EditOEGDActivity_txtTelefon);
EditOEGDActivity_Status = findViewById(R.id.EditOEGDActivity_Status);
ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, this.Genders);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
EditOEGDActivity_txtGenders.setAdapter(aa);
/** DatePicker **/
BirthdayPicker = new DatePickerDialog(this, R.style.MySpinnerDatePickerStyle);
BirthdayPicker.getDatePicker().setMaxDate(new Date().getTime());
BirthdayPicker.setOnDateSetListener(new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth)
{
Date selectedDate = DateHelper.getDateFromDatePicket(BirthdayPicker.getDatePicker());
if(selectedDate != null)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
EditOEGDActivity_txtBirthday.setText(dateFormat.format(selectedDate));
}
}
});
/** Disable directly key insert in the birthday field(it should be set by DatePicker for well formed value) **/
EditOEGDActivity_txtBirthday.setOnKeyListener((View v, int keyCode, KeyEvent event) -> { return true; });
/** Show/Hide DatePicker **/
EditOEGDActivity_txtBirthday.setOnFocusChangeListener((View v, boolean hasFocus) -> { if(hasFocus) { BirthdayPicker.show(); } });
EditOEGDActivity_txtBirthday.setOnTouchListener((View v, MotionEvent event) -> { BirthdayPicker.show(); return true; });
/** Set the values to the fields **/
if(this.CurrentOEGD != null && this.CurrentOEGD.OEGD != null)
{
if(this.CurrentOEGD.OEGD.title != null && !this.CurrentOEGD.OEGD.title.isEmpty())
{
EditOEGDActivity_txtTitle.setText(this.CurrentOEGD.OEGD.title);
}
EditOEGDActivity_txtFirstname.setText(this.CurrentOEGD.OEGD.first_name);
EditOEGDActivity_txtLastname.setText(this.CurrentOEGD.OEGD.last_name);
if(this.CurrentOEGD.OEGD.name_addition != null && !this.CurrentOEGD.OEGD.name_addition.isEmpty())
{
EditOEGDActivity_txtAdditionLastname.setText(this.CurrentOEGD.OEGD.name_addition);
}
if(this.CurrentOEGD.OEGD.prefix != null && !this.CurrentOEGD.OEGD.prefix.isEmpty())
{
EditOEGDActivity_txtPrefix.setText(this.CurrentOEGD.OEGD.prefix);
}
if(this.CurrentOEGD.OEGD.gender.toLowerCase().equals("m"))
{
EditOEGDActivity_txtGenders.setSelection(1);
}
else if(this.CurrentOEGD.OEGD.gender.toLowerCase().equals("w"))
{
EditOEGDActivity_txtGenders.setSelection(2);
}
else if(this.CurrentOEGD.OEGD.gender.toLowerCase().equals("d"))
{
EditOEGDActivity_txtGenders.setSelection(3);
}
else if(this.CurrentOEGD.OEGD.gender.toLowerCase().equals("x"))
{
EditOEGDActivity_txtGenders.setSelection(4);
}
if(this.CurrentOEGD.OEGD.birthdate != null && !this.CurrentOEGD.OEGD.birthdate.isEmpty())
{
Date birthday = this.CurrentOEGD.OEGD.GetBirthday();
if(birthday != null)
{
int year = DateHelper.GetFullYearFromDate(birthday);
int month = DateHelper.GetFullMonthFromDate(birthday);
int day = DateHelper.GetFullDayFromDate(birthday);
BirthdayPicker.updateDate(year, month - 1, day);
EditOEGDActivity_txtBirthday.setText(this.CurrentOEGD.OEGD.GetFormatedBirthday());
}
}
EditOEGDActivity_txtStreet.setText(this.CurrentOEGD.OEGD.address.street_number);
EditOEGDActivity_txtCity.setText(this.CurrentOEGD.OEGD.address.city);
EditOEGDActivity_txtZIP.setText(this.CurrentOEGD.OEGD.address.zip_code);
if(this.CurrentOEGD.OEGD.phone != null && !this.CurrentOEGD.OEGD.phone.isEmpty())
{
EditOEGDActivity_txtTelefon.setText(this.CurrentOEGD.OEGD.phone);
}
}
}
/**
* Initialize Layouts
*/
private void InitializeLayouts()
{
ActivityRootLayout = (CoordinatorLayout)findViewById(R.id.EditOEGDActivityRootLayout);
}
/**
* Initializes Labels
*/
private void InitializeLabels()
{
lblEditOEGD = ActivityRootLayout.findViewById(R.id.lblEditOEGD);
EditOEGDActivitylblButtonBack = ActivityRootLayout.findViewById(R.id.EditOEGDActivitylblButtonBack);
}
/**
* Initializes Buttons
*/
private void InitializeButtons()
{
OEGDButtonBack = ActivityRootLayout.findViewById(R.id.OEGDButtonBack);
OEGDButtonBack.setOnClickListener(v ->{ OEGDButtonBack_Click(); });
}
/**
* Go Back to OEGDActivity
*/
private void OEGDButtonBack_Click()
{
Intent intent = new Intent(this, OEGDActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.side_in_left, R.anim.side_out_right);
}
/**
* Save current OEGD
*/
private void EditOEGDActivity_btnSave_Click()
{
try
{
EditOEGDActivity_Status.setText("");
if(EditOEGDActivity_txtFirstname.getText() == null || EditOEGDActivity_txtFirstname.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_FIRSTNAME"));
}
else if(EditOEGDActivity_txtLastname.getText() == null || EditOEGDActivity_txtLastname.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_LASTNAME"));
}
else if(EditOEGDActivity_txtBirthday.getText() == null || EditOEGDActivity_txtBirthday.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_BIRTHDAY"));
}
else if(EditOEGDActivity_txtGenders.getSelectedItemPosition() <= 0)
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_GENDER"));
}
else if(EditOEGDActivity_txtStreet.getText() == null || EditOEGDActivity_txtStreet.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_STREET"));
}
else if(EditOEGDActivity_txtZIP.getText() == null || EditOEGDActivity_txtZIP.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_ZIP"));
}
else if(EditOEGDActivity_txtCity.getText() == null || EditOEGDActivity_txtCity.getText().toString().isEmpty())
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_CITY"));
}
else
{
OEGD oegd = new OEGD();
oegd.first_name = EditOEGDActivity_txtFirstname.getText().toString();
oegd.last_name = EditOEGDActivity_txtLastname.getText().toString();
Date selectedDate = DateHelper.getDateFromDatePicket(BirthdayPicker.getDatePicker());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
oegd.birthdate = dateFormat.format(selectedDate);
int genderIndex = (int)EditOEGDActivity_txtGenders.getSelectedItemId();
String gender_full_name = Genders[genderIndex];
if(gender_full_name.equals(Lang.Get("LBL_GENDER_M")))
{
oegd.gender = "M";
}
else if(gender_full_name.equals(Lang.Get("LBL_GENDER_W")))
{
oegd.gender = "W";
}
else if(gender_full_name.equals(Lang.Get("LBL_GENDER_D")))
{
oegd.gender = "D";
}
else
{
oegd.gender = "X";
}
if(EditOEGDActivity_txtTitle.getText() != null && !EditOEGDActivity_txtTitle.getText().toString().isEmpty())
{
oegd.title = EditOEGDActivity_txtTitle.getText().toString();
}
if(EditOEGDActivity_txtAdditionLastname.getText() != null && !EditOEGDActivity_txtAdditionLastname.getText().toString().isEmpty())
{
oegd.name_addition = EditOEGDActivity_txtAdditionLastname.getText().toString();
}
if(EditOEGDActivity_txtPrefix.getText() != null && !EditOEGDActivity_txtPrefix.getText().toString().isEmpty())
{
oegd.prefix = EditOEGDActivity_txtPrefix.getText().toString();
}
oegd.address = OEGD.Address.createInstance();
oegd.address.zip_code = EditOEGDActivity_txtZIP.getText().toString();
oegd.address.city = EditOEGDActivity_txtCity.getText().toString();
oegd.address.street_number = EditOEGDActivity_txtStreet.getText().toString();
oegd.address.country_code = "D";
oegd.cwa_consent_flag = true;
if(EditOEGDActivity_txtTelefon.getText() != null && !EditOEGDActivity_txtTelefon.getText().toString().isEmpty())
{
oegd.phone = EditOEGDActivity_txtTelefon.getText().toString();
}
String json = new Gson().toJson(oegd);
if(json != null)
{
String encrypted_content = AES.Encrypt(json, AES.GetKey(Session.DevicePassword));
if(encrypted_content != null)
{
if(System.WriteToStorage(this.CurrentOEGD.filename, encrypted_content.getBytes(StandardCharsets.UTF_8), this))
{
GoToOEGDActivity();
}
else
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
else
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
else
{
EditOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
}
catch (Exception ex)
{
Log.Error(ex.getMessage(), "EditOEGDActivity", "EditOEGDActivity_btnCreate_Click");
}
}
/**
* Goes back to OEGDActivity
*/
private void GoToOEGDActivity()
{
Intent OEGDActivity = new Intent(this, OEGDActivity.class);
startActivity(OEGDActivity);
overridePendingTransition(R.anim.side_in_left, R.anim.side_out_right);
}
}

View File

@ -1,354 +0,0 @@
//
// NewOEGDActivity.java
// Befund
//
// Created by Irakli Abetschkhrischwili on 02.07.22.
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
package de.labor_stein.befund;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.gson.Gson;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import de.labor_stein.befund.Core.Helpers.DateHelper;
import de.labor_stein.befund.Core.Lang.Lang;
import de.labor_stein.befund.Core.Log;
import de.labor_stein.befund.Core.Models.OEGD;
import de.labor_stein.befund.Core.Models.Session;
import de.labor_stein.befund.Core.Security.AES;
import de.labor_stein.befund.Core.System;
public class NewOEGDActivity extends AppCompatActivity
{
/** NewOEGDActivityContext **/
private Context MainContext;
/** Layouts **/
private CoordinatorLayout ActivityRootLayout;
/** Controls **/
private TextView lblNewOEGD;
private TextView NewOEGDActivitylblButtonBack;
private EditText NewOEGDActivity_txtTitle;
private EditText NewOEGDActivity_txtFirstname;
private EditText NewOEGDActivity_txtLastname;
private EditText NewOEGDActivity_txtAdditionLastname;
private EditText NewOEGDActivity_txtPrefix;
private Spinner NewOEGDActivity_txtGenders;
private EditText NewOEGDActivity_txtBirthday;
private DatePickerDialog BirthdayPicker;
private EditText NewOEGDActivity_txtStreet;
private EditText NewOEGDActivity_txtZIP;
private EditText NewOEGDActivity_txtCity;
private EditText NewOEGDActivity_txtTelefon;
private Button NewOEGDActivity_btnCreate;
private TextView NewOEGDActivity_Status;
/** Buttons **/
private FloatingActionButton OEGDButtonBack;
/** List items **/
private String[] Genders = { Lang.Get("LBL_GENDER"), Lang.Get("LBL_GENDER_M"), Lang.Get("LBL_GENDER_W"), Lang.Get("LBL_GENDER_D"), Lang.Get("LBL_GENDER_X") };
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_oegd);
this.Initialize();
}
/**
* Initializes eIDActivity
*/
private void Initialize()
{
MainContext = this;
Log.Initialize(this);
this.InitializeLayouts();
this.InitializeLabels();
this.InitializeButtons();
this.InitializeControls();
this.InitializeLanguages();
}
/**
* Initializes Languages
*/
private void InitializeLanguages()
{
lblNewOEGD.setText(Lang.Get("LBL_NEW_OEGD"));
NewOEGDActivitylblButtonBack.setText(Lang.Get("BTN_BACK"));
NewOEGDActivity_txtTitle.setHint(Lang.Get("LBL_TITLE"));
NewOEGDActivity_txtFirstname.setHint(Lang.Get("LBL_FIRSTNAME"));
NewOEGDActivity_txtLastname.setHint(Lang.Get("LBL_LASTNAME"));
NewOEGDActivity_txtAdditionLastname.setHint(Lang.Get("LBL_ADDITION_NAME"));
NewOEGDActivity_txtPrefix.setHint(Lang.Get("LBL_NAME_PREFIX"));
NewOEGDActivity_txtBirthday.setHint(Lang.Get("LBL_BIRTHDAY"));
NewOEGDActivity_txtStreet.setHint(Lang.Get("LBL_STREET"));
NewOEGDActivity_txtZIP.setHint(Lang.Get("LBL_ZIP"));
NewOEGDActivity_txtCity.setHint(Lang.Get("LBL_CITY"));
NewOEGDActivity_txtTelefon.setHint(Lang.Get("LBL_TELEFON"));
NewOEGDActivity_btnCreate.setText(Lang.Get("BTN_CREATE"));
}
/**
* Initializes controls
*/
private void InitializeControls()
{
NewOEGDActivity_btnCreate = findViewById(R.id.NewOEGDActivity_btnCreate);
NewOEGDActivity_txtTitle = findViewById(R.id.NewOEGDActivity_txtTitle);
NewOEGDActivity_txtFirstname = findViewById(R.id.NewOEGDActivity_txtFirstname);
NewOEGDActivity_txtLastname = findViewById(R.id.NewOEGDActivity_txtLastname);
NewOEGDActivity_txtAdditionLastname = findViewById(R.id.NewOEGDActivity_txtAdditionLastname);
NewOEGDActivity_txtPrefix = findViewById(R.id.NewOEGDActivity_txtPrefix);
NewOEGDActivity_txtGenders = findViewById(R.id.NewOEGDActivity_txtGenders);
NewOEGDActivity_txtBirthday = findViewById(R.id.NewOEGDActivity_txtBirthday);
NewOEGDActivity_txtStreet = findViewById(R.id.NewOEGDActivity_txtStreet);
NewOEGDActivity_txtZIP = findViewById(R.id.NewOEGDActivity_txtZIP);
NewOEGDActivity_txtCity = findViewById(R.id.NewOEGDActivity_txtCity);
NewOEGDActivity_txtTelefon = findViewById(R.id.NewOEGDActivity_txtTelefon);
NewOEGDActivity_Status = findViewById(R.id.NewOEGDActivity_Status);
ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, this.Genders);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
NewOEGDActivity_txtGenders.setAdapter(aa);
/** DatePicker **/
BirthdayPicker = new DatePickerDialog(this, R.style.MySpinnerDatePickerStyle);
BirthdayPicker.getDatePicker().setMaxDate(new Date().getTime());
BirthdayPicker.setOnDateSetListener(new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth)
{
Date selectedDate = DateHelper.getDateFromDatePicket(BirthdayPicker.getDatePicker());
if(selectedDate != null)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
NewOEGDActivity_txtBirthday.setText(dateFormat.format(selectedDate));
}
}
});
/** Disable directly key insert in the birthday field(it should be set by DatePicker for well formed value) **/
NewOEGDActivity_txtBirthday.setOnKeyListener((View v, int keyCode, KeyEvent event) -> { return true; });
/** Show/Hide DatePicker **/
NewOEGDActivity_txtBirthday.setOnFocusChangeListener((View v, boolean hasFocus) -> { if(hasFocus) { BirthdayPicker.show(); } });
NewOEGDActivity_txtBirthday.setOnTouchListener((View v, MotionEvent event) -> { BirthdayPicker.show(); return true; });
NewOEGDActivity_btnCreate.setOnClickListener(v -> { this.NewOEGDActivity_btnCreate_Click(); });
//NewOEGDActivity_btnAcceptCWAPolicy.setOnClickListener((v) -> { PopupCWAPolicy.showAtLocation(ActivityRootLayout, Gravity.CENTER,0,0);});
}
/**
* Initialize Layouts
*/
private void InitializeLayouts()
{
ActivityRootLayout = (CoordinatorLayout)findViewById(R.id.NewOEGDActivityRootLayout);
}
/**
* Initializes Labels
*/
private void InitializeLabels()
{
lblNewOEGD = ActivityRootLayout.findViewById(R.id.lblNewOEGD);
NewOEGDActivitylblButtonBack = ActivityRootLayout.findViewById(R.id.NewOEGDActivitylblButtonBack);
}
/**
* Initializes Buttons
*/
private void InitializeButtons()
{
OEGDButtonBack = ActivityRootLayout.findViewById(R.id.OEGDButtonBack);
OEGDButtonBack.setOnClickListener(v ->{ OEGDButtonBack_Click(); });
}
/**
* Go Back to OEGDActivity
*/
private void OEGDButtonBack_Click()
{
Intent intent = new Intent(this, OEGDActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.side_in_left, R.anim.side_out_right);
}
/**
* Creates a new OEGD
*/
private void NewOEGDActivity_btnCreate_Click()
{
try
{
NewOEGDActivity_Status.setText("");
if(NewOEGDActivity_txtFirstname.getText() == null || NewOEGDActivity_txtFirstname.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_FIRSTNAME"));
}
else if(NewOEGDActivity_txtLastname.getText() == null || NewOEGDActivity_txtLastname.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_LASTNAME"));
}
else if(NewOEGDActivity_txtBirthday.getText() == null || NewOEGDActivity_txtBirthday.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_BIRTHDAY"));
}
else if(NewOEGDActivity_txtGenders.getSelectedItemPosition() <= 0)
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_GENDER"));
}
else if(NewOEGDActivity_txtStreet.getText() == null || NewOEGDActivity_txtStreet.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_STREET"));
}
else if(NewOEGDActivity_txtZIP.getText() == null || NewOEGDActivity_txtZIP.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_ZIP"));
}
else if(NewOEGDActivity_txtCity.getText() == null || NewOEGDActivity_txtCity.getText().toString().isEmpty())
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_ENTER_CITY"));
}
else
{
OEGD oegd = new OEGD();
oegd.first_name = NewOEGDActivity_txtFirstname.getText().toString();
oegd.last_name = NewOEGDActivity_txtLastname.getText().toString();
Date selectedDate = DateHelper.getDateFromDatePicket(BirthdayPicker.getDatePicker());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
oegd.birthdate = dateFormat.format(selectedDate);
int genderIndex = (int)NewOEGDActivity_txtGenders.getSelectedItemId();
String gender_full_name = Genders[genderIndex];
if(gender_full_name.equals(Lang.Get("LBL_GENDER_M")))
{
oegd.gender = "M";
}
else if(gender_full_name.equals(Lang.Get("LBL_GENDER_W")))
{
oegd.gender = "W";
}
else if(gender_full_name.equals(Lang.Get("LBL_GENDER_D")))
{
oegd.gender = "D";
}
else
{
oegd.gender = "X";
}
if(NewOEGDActivity_txtTitle.getText() != null && !NewOEGDActivity_txtTitle.getText().toString().isEmpty())
{
oegd.title = NewOEGDActivity_txtTitle.getText().toString();
}
if(NewOEGDActivity_txtAdditionLastname.getText() != null && !NewOEGDActivity_txtAdditionLastname.getText().toString().isEmpty())
{
oegd.name_addition = NewOEGDActivity_txtAdditionLastname.getText().toString();
}
if(NewOEGDActivity_txtPrefix.getText() != null && !NewOEGDActivity_txtPrefix.getText().toString().isEmpty())
{
oegd.prefix = NewOEGDActivity_txtPrefix.getText().toString();
}
oegd.address = OEGD.Address.createInstance();
oegd.address.zip_code = NewOEGDActivity_txtZIP.getText().toString();
oegd.address.city = NewOEGDActivity_txtCity.getText().toString();
oegd.address.street_number = NewOEGDActivity_txtStreet.getText().toString();
oegd.address.country_code = "D";
if(NewOEGDActivity_txtTelefon.getText() != null && !NewOEGDActivity_txtTelefon.getText().toString().isEmpty())
{
oegd.phone = NewOEGDActivity_txtTelefon.getText().toString();
}
String json = new Gson().toJson(oegd);
if(json != null)
{
String encrypted_content = AES.Encrypt(json, AES.GetKey(Session.DevicePassword));
if(encrypted_content != null)
{
SimpleDateFormat dF = new SimpleDateFormat("yyyyMMdd_HH_mm_ss");
String filename = dF.format(new Date()) + "_" + UUID.randomUUID().toString().replace("-", "") + ".oegd";
if(System.WriteToStorage(filename, encrypted_content.getBytes(StandardCharsets.UTF_8), this))
{
GoToOEGDActivity();
}
else
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
else
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
else
{
NewOEGDActivity_Status.setText(Lang.Get("ERROR_COULD_NOT_SAVE_OEGD"));
}
}
}
catch (Exception ex)
{
Log.Error(ex.getMessage(), "NewOEGDActivity", "NewOEGDActivity_btnCreate_Click");
}
}
/**
* Goes back to OEGDActivity
*/
private void GoToOEGDActivity()
{
Intent OEGDActivity = new Intent(this, OEGDActivity.class);
startActivity(OEGDActivity);
overridePendingTransition(R.anim.side_in_left, R.anim.side_out_right);
}
}

View File

@ -1,717 +0,0 @@
//
// OEGDActivity.java
// Befund
//
// Created by Irakli Abetschkhrischwili on 02.07.22.
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
package de.labor_stein.befund;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LinearInterpolator;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.gson.Gson;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import de.labor_stein.befund.Core.Helpers.ImageHelper;
import de.labor_stein.befund.Core.Https.Request;
import de.labor_stein.befund.Core.Lang.Lang;
import de.labor_stein.befund.Core.Log;
import de.labor_stein.befund.Core.Models.Database.Status;
import de.labor_stein.befund.Core.Models.Labor;
import de.labor_stein.befund.Core.Models.OEGD;
import de.labor_stein.befund.Core.Models.OEGDFile;
import de.labor_stein.befund.Core.Models.Request.EncryptedRequest;
import de.labor_stein.befund.Core.Models.Session;
import de.labor_stein.befund.Core.Security.AES;
import de.labor_stein.befund.Core.System;
public class OEGDActivity extends AppCompatActivity
{
/** OEGDActivityContext **/
private Context MainContext;
/** Layouts **/
private CoordinatorLayout ActivityRootLayout;
/** Controls **/
private TextView lblOEGD;
private TextView lblOEGDButtonButtonBack;
private TextView lblNoOEGD;
private ProgressBar OEGDMainLoading;
/** Buttons **/
private FloatingActionButton OEGDButtonBack;
private Button bottomOEGDButtonMenuOpener;
/** BEGIN POPUPS **/
/** BEGIN OptionsPopup **/
private PopupWindow OEGDOptionsOptions;
private View OEGDOptionsOptions_Overlay;
private LinearLayout OEGDOptionsOptions_Popup;
private Button OEGDOptionsOptions_BtnAdd;
private LinearLayout OEGDOptionsEditView;
private Button OEGDOptionsOptions_BtnEdit;
private LinearLayout OEGDOptionsDeleteView;
private Button OEGDOptionsOptions_BtnDelete;
private Button OEGDOptionsOptions_BtnCancel;
/** END OptionsPopup **/
/** BEGIN ConfirmDeletePopup **/
private PopupWindow ConfirmDeletePopup;
private View ConfirmDeletePopup_Overlay;
private LinearLayout ConfirmDeletePopup_Popup;
private TextView PopupConfirmDelete_text;
private Button ConfirmDeletePopup_BtnYES;
private Button ConfirmDeletePopup_BtnNO;
/** END ConfirmDeletePopup **/
/** END POPUPS **/
/** OEGDs **/
private List<OEGDFile> OEGDFiles;
private OEGDFile CurrentOEGDFile = null;
/** ViewPager **/
private ViewPager Pager;
private PagerAdapter Adapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_oegd);
this.Initialize();
}
/**
* Initializes OEGDActivity
*/
private void Initialize()
{
MainContext = this;
Log.Initialize(this);
this.InitializeLayouts();
this.InitializeLabels();
this.InitializeButtons();
this.InitializeOptionsPopup();
this.InitializeConfirmDeletePopup();
this.InitializePager();
this.InitializeLanguages();
this.loadOEGDs();
}
/**
* Initialize Layouts
*/
private void InitializeLayouts()
{
ActivityRootLayout = (CoordinatorLayout)findViewById(R.id.OEGDActivityRootLayout);
}
/**
* Initializes Labels
*/
private void InitializeLabels()
{
lblOEGD = ActivityRootLayout.findViewById(R.id.lblOEGD);
lblOEGDButtonButtonBack = ActivityRootLayout.findViewById(R.id.lblOEGDButtonButtonBack);
lblNoOEGD = ActivityRootLayout.findViewById(R.id.lblNoOEGD);
OEGDMainLoading = ActivityRootLayout.findViewById(R.id.OEGDMainLoading);
OEGDMainLoading.setVisibility(View.GONE);
}
/**
* Initializes Buttons
*/
private void InitializeButtons()
{
OEGDButtonBack = ActivityRootLayout.findViewById(R.id.OEGDButtonBack);
OEGDButtonBack.setOnClickListener(v ->{ OEGDButtonBack_Click(); });
bottomOEGDButtonMenuOpener = ActivityRootLayout.findViewById(R.id.bottomOEGDButtonMenuOpener);
bottomOEGDButtonMenuOpener.setOnClickListener(v -> { this.OEGDOptionsOptions_Show(); });
}
/**
* Initializes ConfirmDelete Popup
*/
private void InitializeConfirmDeletePopup()
{
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
ConfirmDeletePopup_Overlay = inflater.inflate(R.layout.popup_confirm_delete, null);
ConfirmDeletePopup_Popup = ConfirmDeletePopup_Overlay.findViewById(R.id.PopupConfirm_Popup);
PopupConfirmDelete_text = ConfirmDeletePopup_Overlay.findViewById(R.id.PopupConfirmDelete_text);
ConfirmDeletePopup_BtnYES = ConfirmDeletePopup_Overlay.findViewById(R.id.PopupPasswordConfirm_BtnYES);
ConfirmDeletePopup_BtnYES.setOnClickListener(v -> { this.ConfirmDeletePopup_BtnYES_Click(); });
ConfirmDeletePopup_BtnNO = ConfirmDeletePopup_Overlay.findViewById(R.id.PopupConfirmDelete_BtnNO);
ConfirmDeletePopup_BtnNO.setOnClickListener(v -> { this.OConfirmDeletePopup_Hide(); });
/** Create popup window context **/
ConfirmDeletePopup = new PopupWindow(
ConfirmDeletePopup_Overlay,
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT,
true
);
}
/**
* Initializes Options Popup
*/
private void InitializeOptionsPopup()
{
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
OEGDOptionsOptions_Overlay = inflater.inflate(R.layout.popup_oegd_options, null);
OEGDOptionsOptions_Popup = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptions_Popup);
OEGDOptionsOptions_BtnAdd = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptions_BtnAdd);
OEGDOptionsOptions_BtnAdd.setOnClickListener(v -> { this.OEGDOptionsOptions_BtnAdd_Click(); });
OEGDOptionsEditView = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptionsEditView);
OEGDOptionsOptions_BtnEdit = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptions_BtnEdit);
OEGDOptionsOptions_BtnEdit.setOnClickListener(v -> { this.OEGDOptionsOptions_BtnEdit_Click(); });
OEGDOptionsDeleteView = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptionsDeleteView);
OEGDOptionsOptions_BtnDelete = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptions_BtnDelete);
OEGDOptionsOptions_BtnDelete.setOnClickListener(v -> { this.OEGDOptionsOptions_BtnDelete_Click(); });
OEGDOptionsOptions_BtnCancel = OEGDOptionsOptions_Overlay.findViewById(R.id.OEGDOptions_BtnCancel);
OEGDOptionsOptions_BtnCancel.setOnClickListener(v -> { this.OEGDOptionsOptions_BtnCancel_Click(); });
/** Create popup window context **/
OEGDOptionsOptions = new PopupWindow(
OEGDOptionsOptions_Overlay,
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT,
true
);
}
/**
* Initializes OEGD Pager
*/
private void InitializePager()
{
Pager = (ViewPager) findViewById(R.id.OEGDPager);
Adapter = new OEGDActivity.OEGDPagerAdapter(getSupportFragmentManager(), this.OEGDFiles, this);
Pager.setAdapter(Adapter);
Pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{
CurrentOEGDFile = null;
OEGDOptionsEditView.setVisibility(View.GONE);
OEGDOptionsDeleteView.setVisibility(View.GONE);
if(OEGDFiles != null && OEGDFiles.size() > 0 && position >= 0 && position < OEGDFiles.size())
{
OEGDOptionsEditView.setVisibility(View.VISIBLE);
OEGDOptionsDeleteView.setVisibility(View.VISIBLE);
CurrentOEGDFile = OEGDFiles.get(position);
}
}
@Override
public void onPageSelected(int position) {}
@Override
public void onPageScrollStateChanged(int state) {}
});
}
/**
* Initializes Languages
*/
private void InitializeLanguages()
{
lblOEGD.setText(Lang.Get("LBL_OEGD"));
lblNoOEGD.setText(Lang.Get("LBL_NO_OEGD"));
lblOEGDButtonButtonBack.setText(Lang.Get("BTN_BACK"));
OEGDOptionsOptions_BtnAdd.setText(Lang.Get("BTN_ADD"));
OEGDOptionsOptions_BtnEdit.setText(Lang.Get("BTN_EDIT"));
OEGDOptionsOptions_BtnDelete.setText(Lang.Get("BTN_DELETE"));
OEGDOptionsOptions_BtnCancel.setText(Lang.Get("BTN_CANCEL"));
ConfirmDeletePopup_BtnYES.setText(Lang.Get("BTN_YES"));
ConfirmDeletePopup_BtnNO.setText(Lang.Get("BTN_NO"));
}
/** BEGIN EVENTS **/
/**
* Show ConfirmDeletePopup
*/
private void ConfirmDeletePopup_Show()
{
if(CurrentOEGDFile != null)
{
String text = Lang.Get("MSG_SURE_WANT_DELETE").replace("[ITEM]", (CurrentOEGDFile.OEGD.first_name + " " + CurrentOEGDFile.OEGD.last_name));
PopupConfirmDelete_text.setText(text);
ConfirmDeletePopup_Overlay.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_overlay_in));
ConfirmDeletePopup_Overlay.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_in));
if(!ConfirmDeletePopup.isShowing())
{
ConfirmDeletePopup.showAtLocation(ActivityRootLayout, Gravity.CENTER,0,0);
}
}
}
/**
* Delete confirmed item
*/
private void ConfirmDeletePopup_BtnYES_Click()
{
try
{
if(CurrentOEGDFile != null)
{
String file = System.GetPathForStorageFile(CurrentOEGDFile.filename, MainContext);
if(file != null)
{
System.DeleteFile(file);
}
this.OConfirmDeletePopup_Hide();
//this.loadOEGDs();
finish();
overridePendingTransition(0, 0);
startActivity(getIntent());
overridePendingTransition(0, 0);
}
}
catch (Exception ex)
{
Log.Error(ex.getMessage(), "OEGDActivity", "ConfirmDeletePopup_BtnYES_Click");
}
}
/**
* Hide ConfirmDeletePopup
*/
private void OConfirmDeletePopup_Hide()
{
ConfirmDeletePopup_Overlay.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_overlay_out));
ConfirmDeletePopup_Popup.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_out));
if(ConfirmDeletePopup.isShowing())
{
Animation anim = AnimationUtils.loadAnimation(this, R.anim.popup_out);
anim.setAnimationListener(new Animation.AnimationListener()
{
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation)
{
ConfirmDeletePopup.dismiss();
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
anim.setFillAfter(true);
ConfirmDeletePopup_Popup.startAnimation(anim);
}
}
/**
* Show OEGDOptionsOptions
*/
private void OEGDOptionsOptions_Show()
{
OEGDOptionsOptions_Overlay.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_overlay_in));
OEGDOptionsOptions_Popup.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_in));
if(!OEGDOptionsOptions.isShowing())
{
OEGDOptionsOptions.showAtLocation(ActivityRootLayout, Gravity.CENTER,0,0);
}
}
/**
* Hide OEGDOptionsOptions
*/
private void OEGDOptionsOptions_Hide()
{
OEGDOptionsOptions_Overlay.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_overlay_out));
OEGDOptionsOptions_Popup.setAnimation(AnimationUtils.loadAnimation(this, R.anim.popup_out));
if(OEGDOptionsOptions.isShowing())
{
Animation anim = AnimationUtils.loadAnimation(this, R.anim.popup_out);
anim.setAnimationListener(new Animation.AnimationListener()
{
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation)
{
OEGDOptionsOptions.dismiss();
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
anim.setFillAfter(true);
OEGDOptionsOptions_Popup.startAnimation(anim);
}
}
/**
* Go Back to MainActivity
*/
private void OEGDButtonBack_Click()
{
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle parameters = new Bundle();
parameters.putBoolean("SplashScreenLoaded", true);
intent.putExtras(parameters);
startActivity(intent);
overridePendingTransition(R.anim.side_in_left, R.anim.side_out_right);
}
/**
* On OptionsPopup Add Button clicked
*/
private void OEGDOptionsOptions_BtnAdd_Click()
{
this.OEGDOptionsOptions_Hide();
this.NewOEGDActivity();
}
/**
* Goes to NewOEGDActivity
*/
private void NewOEGDActivity()
{
Intent newOEGDActivity = new Intent(this, NewOEGDActivity.class);
startActivity(newOEGDActivity);
overridePendingTransition(R.anim.side_in_right, R.anim.side_out_left);
}
/**
* On OptionsPopup Edit Button clicked
*/
private void OEGDOptionsOptions_BtnEdit_Click()
{
this.OEGDOptionsOptions_Hide();
if(CurrentOEGDFile != null)
{
this.GoToEditOEGDActivity(CurrentOEGDFile);
}
}
/**
* GoTo EditOEGDActivity
*
* @param oegdFile - oegd file that should be edited
*/
private void GoToEditOEGDActivity(OEGDFile oegdFile)
{
try
{
Intent editOEGDActivity = new Intent(this, EditOEGDActivity.class);
Bundle parameters = new Bundle();
parameters.putString("file", oegdFile.filename);
editOEGDActivity.putExtras(parameters);
startActivity(editOEGDActivity);
overridePendingTransition(R.anim.side_in_right, R.anim.side_out_left);
}
catch (Exception ex)
{
Log.Critical(ex.getMessage(), "MainActivity", "GoToEditOEGDActivity");
}
}
/**
* On OptionsPopup Delete Button clicked
*/
private void OEGDOptionsOptions_BtnDelete_Click()
{
this.OEGDOptionsOptions_Hide();
this.ConfirmDeletePopup_Show();
}
/**
* On OptionsPopup Cancel Button clicked
*/
private void OEGDOptionsOptions_BtnCancel_Click()
{
this.OEGDOptionsOptions_Hide();
}
/** END EVENTS **/
/** BEGIN FUNCTIONS **/
private void loadOEGDs()
{
this.OEGDFiles = null;
OEGDMainLoading.setVisibility(View.VISIBLE);
try
{
/** Run request on sub thread **/
Thread thread = new Thread(new Runnable()
{
@Override
public void run()
{
List<File> oegdFiles = System.GetOEGDFiles(MainContext);
if(oegdFiles != null && oegdFiles.size() > 0)
{
OEGDFiles = new ArrayList<>();
for(int i = 0; i < oegdFiles.size(); i++)
{
try
{
File f = oegdFiles.get(i);
byte[] encrypted_content = System.ReadFromStorage(f.getName(), MainContext);
if(encrypted_content != null)
{
String json = AES.Decrypt(new String(encrypted_content, StandardCharsets.UTF_8), AES.GetKey(Session.DevicePassword));
if(json != null)
{
OEGD obj = (OEGD)new Gson().fromJson(json, OEGD.class);
if(obj != null)
{
OEGDFile oegdFile = new OEGDFile();
oegdFile.OEGD = obj;
oegdFile.filename = f.getName();
OEGDFiles.add(oegdFile);
}
}
}
}
catch (Exception ex)
{
Log.Error(ex.getMessage(), "eIDActivity", "loadOEGDs");
}
}
}
UpdateOEGDCodes();
}
});
thread.start();
}
catch (Exception ex)
{
Log.Error(ex.getMessage(), "eIDActivity", "loadOEGDs");
}
}
/**
* Updates OEGD QR-Codes on main thread
*/
private void UpdateOEGDCodes()
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
OEGDMainLoading.setVisibility(View.GONE);
OEGDOptionsEditView.setVisibility(View.GONE);
OEGDOptionsDeleteView.setVisibility(View.GONE);
if(OEGDFiles != null && OEGDFiles.size() > 0)
{
OEGDOptionsEditView.setVisibility(View.VISIBLE);
OEGDOptionsDeleteView.setVisibility(View.VISIBLE);
Pager.setVisibility(View.VISIBLE);
lblNoOEGD.setVisibility(View.GONE);
bottomOEGDButtonMenuOpener.clearAnimation();
}
else
{
Pager.setVisibility(View.GONE);
lblNoOEGD.setVisibility(View.VISIBLE);
Animation animation = new AlphaAnimation(1, 0);
animation.setDuration(200);
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.REVERSE);
bottomOEGDButtonMenuOpener.startAnimation(animation);
}
((OEGDActivity.OEGDPagerAdapter)Adapter).updateDataset(OEGDFiles);
}
});
}
/** END FUNCTIONS **/
/** OEGDSwitcher Adapter **/
private class OEGDPagerAdapter extends FragmentStatePagerAdapter
{
/** List of OEGDFiles **/
private List<OEGDFile> OEGDFiles = null;
/** OEGDActivity Context **/
private OEGDActivity OEGDActivity;
public OEGDPagerAdapter(FragmentManager fragmentManager, List<OEGDFile> oegdFiles, OEGDActivity oegdActivity)
{
super(fragmentManager);
this.OEGDFiles = oegdFiles;
this.OEGDActivity = oegdActivity;
if(this.OEGDFiles == null)
{
this.OEGDFiles = new ArrayList<>();
}
}
/**
* Updates dataset
*/
public void updateDataset(List<OEGDFile> oegdFiles)
{
this.OEGDFiles = oegdFiles;
if(this.OEGDFiles == null)
{
this.OEGDFiles = new ArrayList<>();
}
this.notifyDataSetChanged();
}
@Override
public int getCount()
{
return this.OEGDFiles.size();
}
@Override
public Fragment getItem(int position)
{
return de.labor_stein.befund.OEGDActivity.OEGDFragment.newInstance(this.OEGDFiles.get(position), this.OEGDActivity);
}
}
/** OEGDCard Fragment **/
public static class OEGDFragment extends Fragment
{
/** OEGDActivity Context **/
private OEGDActivity OEGDActivity;
/** OEGDFile object **/
private OEGDFile OEGDFile;
/** Constructor for OEGDFragment **/
public OEGDFragment(OEGDFile oegdFile, OEGDActivity oegdActivity)
{
this.OEGDFile = oegdFile;
this.OEGDActivity = oegdActivity;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_oegd_code, container, false);
ImageView qrCode = view.findViewById(R.id.fragment_oegd_qr_code);
TextView name = view.findViewById(R.id.fragment_oegd_name);
name.setText(this.OEGDFile.OEGD.first_name + " " + this.OEGDFile.OEGD.last_name);
try
{
String json = new Gson().toJson(this.OEGDFile.OEGD);
if(json != null && !json.isEmpty())
{
Bitmap qrCodeImage = ImageHelper.QRCode(json, 350, 350);
if(qrCodeImage != null)
{
qrCode.setVisibility(View.VISIBLE);
qrCode.setImageBitmap(qrCodeImage);
}
else
{
qrCode.setVisibility(View.INVISIBLE);
}
}
else
{
qrCode.setVisibility(View.INVISIBLE);
}
}
catch (Exception ex)
{
qrCode.setVisibility(View.INVISIBLE);
Log.Error(ex.getMessage(), "OEGDActivity.OEGDFragment", "onCreateView");
}
return view;
}
/** Creates a new instance of fragment **/
public static de.labor_stein.befund.OEGDActivity.OEGDFragment newInstance(OEGDFile oegdFile, OEGDActivity oegdActivity)
{
return new OEGDActivity.OEGDFragment(oegdFile, oegdActivity);
}
}
}

View File

@ -548,33 +548,37 @@ public class SupportActivity extends AppCompatActivity
SupportActivity_Loading.setVisibility(View.GONE); SupportActivity_Loading.setVisibility(View.GONE);
if(SupportActivity_txtEmail.getText() == null || SupportActivity_txtEmail.getText().toString().isEmpty()) if(SupportActivity_Topics.getSelectedItemPosition() < 0)
{
this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_EMAIL"));
}
else if(SupportActivity_Topics.getSelectedItemPosition() < 0)
{ {
this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_TOPIC")); this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_TOPIC"));
} }
else if(SupportActivity_txtTEXT.getText() == null || SupportActivity_txtTEXT.getText().toString().isEmpty())
{
this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_TEXT"));
}
else else
{ {
String email = SupportActivity_txtEmail.getText().toString();
int topicIndex = (int)SupportActivity_Topics.getSelectedItemId(); int topicIndex = (int)SupportActivity_Topics.getSelectedItemId();
String topic = Topics[topicIndex]; String topic = Topics[topicIndex];
String text = SupportActivity_txtTEXT.getText().toString();
if(topic == Lang.Get("LBL_SUPPORT_TOPIC_ACCOUNT_DELETE")) if(topic == Lang.Get("LBL_SUPPORT_TOPIC_ACCOUNT_DELETE"))
{ {
PopupPasswordConfirm_Show(); PopupPasswordConfirm_Show();
} }
else else
{ {
this.SendAsync(email, topic, text, false); if(SupportActivity_txtEmail.getText() == null || SupportActivity_txtEmail.getText().toString().isEmpty())
{
this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_EMAIL"));
}
else if(SupportActivity_txtTEXT.getText() == null || SupportActivity_txtTEXT.getText().toString().isEmpty())
{
this.SupportActivity_HideLoading(Lang.Get("ERROR_ENTER_TEXT"));
}
else
{
String email = SupportActivity_txtEmail.getText().toString();
String text = SupportActivity_txtTEXT.getText().toString();
this.SendAsync(email, topic, text, false);
}
} }
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -1,387 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/EditOEGDActivityRootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="false"
android:background="@color/white">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="84dp"
android:background="@color/top_bar_color"
android:theme="@style/Theme.Befund.AppBarOverlay">
<TextView
android:id="@+id/lblEditOEGD"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:gravity="bottom|center"
android:text="LBL_EDIT_OEGD"
android:textColor="@color/black"
android:textStyle="bold" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/hell_gray">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginTop="95dp"
android:layout_marginEnd="10dp"
android:padding="2dp"
android:visibility="visible"
android:background="@color/hell_gray">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="100dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="400dp"
android:orientation="vertical">
<!-- BEGIN TITLE -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_TITLE"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END TITLE -->
<!-- BEGIN FIRSTNAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtFirstname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_FIRSTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END FIRSTNAME -->
<!-- BEGIN LASTNAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtLastname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_LASTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END LASTNAME -->
<!-- BEGIN ADDITION NAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtAdditionLastname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_ADDITION_LASTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END ADDITION NAME -->
<!-- BEGIN PREFIX -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtPrefix"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_NAME_PREFIX"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END PREFIX -->
<!-- BEGIN GENDER -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<Spinner
android:id="@+id/EditOEGDActivity_txtGenders"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAlignment="center"
android:layout_weight="100" />
</LinearLayout>
<!-- END GENDER -->
<!-- BEGIN BIRTHDAY -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtBirthday"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_BIRTHDAY"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END BIRTHDAY -->
<!-- BEGIN STREET -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtStreet"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_STREET"
android:minHeight="50dp"
android:inputType="text"
android:textAlignment="center"
android:layout_weight="100"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END STREET -->
<!-- BEGIN ZIP & CITY -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtZIP"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_ZIP"
android:minHeight="50dp"
android:inputType="number"
android:maxLength="5"
android:textAlignment="center"
android:layout_weight="50"
android:textAllCaps="false"></EditText>
<EditText
android:id="@+id/EditOEGDActivity_txtCity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_CITY"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:layout_weight="50"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END ZIP & CITY -->
<!-- BEGIN TELEFON -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/EditOEGDActivity_txtTelefon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_TELEFON"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:layout_weight="100"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END TELEFON -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:orientation="horizontal">
<Button
android:id="@+id/EditOEGDActivity_btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="50"
android:height="64dp"
android:backgroundTint="@color/primary_color"
android:text="BTN_SAVE"
android:textAllCaps="false" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:orientation="horizontal">
<TextView
android:id="@+id/EditOEGDActivity_Status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="100"
android:backgroundTint="@android:color/transparent"
android:textColor="@color/primary_color"
android:textAlignment="center"
android:textAllCaps="false" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>
</FrameLayout>
<ImageView
android:id="@+id/eid_bottom_abstract"
android:layout_width="wrap_content"
android:layout_height="128dp"
android:layout_gravity="bottom|center|clip_vertical|start|end"
android:contentDescription="BTN_OEGD"
android:scaleType="fitXY"
android:scaleX="2"
app:layout_anchorGravity="fill"
android:visibility="visible"
app:srcCompat="@mipmap/bottom_abstract" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/OEGDButtonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:background="@color/white"
android:backgroundTint="@color/secondary_color"
android:clickable="true"
android:elevation="0dp"
android:contentDescription="BTN_BACK"
android:foreground="@mipmap/ic_keyboard_arrow_left"
android:foregroundGravity="center"
android:hapticFeedbackEnabled="false"
android:scaleX="1.5"
android:scaleY="1.5"
android:soundEffectsEnabled="false"
android:translationY="-15dp"
app:backgroundTint="@color/white"
app:borderWidth="3dp"
app:elevation="0dp"
app:layout_anchor="@+id/eid_bottom_abstract"
app:layout_anchorGravity="center"
tools:ignore="SpeakableTextPresentCheck" />
<TextView
android:id="@+id/EditOEGDActivitylblButtonBack"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="38dp"
android:layout_gravity="bottom"
android:gravity="bottom|center"
android:paddingBottom="10dp"
android:text="BTN_BACK"
android:textAlignment="center" />
<Button
android:id="@+id/EditOEGDActivitylblButtonBackMenuOpener"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:background="@android:color/transparent"
android:scaleX="2"
android:scaleY="2"
app:icon="@mipmap/ic_dehaze"
app:iconGravity="textTop"
app:iconTint="@color/black"
tools:ignore="SpeakableTextPresentCheck" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,387 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/NewOEGDActivityRootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="false"
android:background="@color/white">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="84dp"
android:background="@color/top_bar_color"
android:theme="@style/Theme.Befund.AppBarOverlay">
<TextView
android:id="@+id/lblNewOEGD"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:gravity="bottom|center"
android:text="LBL_NEW_OEGD"
android:textColor="@color/black"
android:textStyle="bold" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/hell_gray">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginTop="95dp"
android:layout_marginEnd="10dp"
android:padding="2dp"
android:visibility="visible"
android:background="@color/hell_gray">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="100dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="400dp"
android:orientation="vertical">
<!-- BEGIN TITLE -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_TITLE"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END TITLE -->
<!-- BEGIN FIRSTNAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtFirstname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_FIRSTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END FIRSTNAME -->
<!-- BEGIN LASTNAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtLastname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_LASTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END LASTNAME -->
<!-- BEGIN ADDITION NAME -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtAdditionLastname"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_ADDITION_LASTNAME"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END ADDITION NAME -->
<!-- BEGIN PREFIX -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtPrefix"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_NAME_PREFIX"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END PREFIX -->
<!-- BEGIN GENDER -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<Spinner
android:id="@+id/NewOEGDActivity_txtGenders"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAlignment="center"
android:layout_weight="100" />
</LinearLayout>
<!-- END GENDER -->
<!-- BEGIN BIRTHDAY -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtBirthday"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_BIRTHDAY"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END BIRTHDAY -->
<!-- BEGIN STREET -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtStreet"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_STREET"
android:minHeight="50dp"
android:inputType="text"
android:textAlignment="center"
android:layout_weight="100"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END STREET -->
<!-- BEGIN ZIP & CITY -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtZIP"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_ZIP"
android:minHeight="50dp"
android:inputType="number"
android:maxLength="5"
android:textAlignment="center"
android:layout_weight="50"
android:textAllCaps="false"></EditText>
<EditText
android:id="@+id/NewOEGDActivity_txtCity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_CITY"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:layout_weight="50"
android:textAlignment="center"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END ZIP & CITY -->
<!-- BEGIN TELEFON -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginTop="30dp"
android:background="@drawable/bottom_border"
android:weightSum="100"
android:orientation="horizontal">
<EditText
android:id="@+id/NewOEGDActivity_txtTelefon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:hint="LBL_TELEFON"
android:minHeight="50dp"
android:inputType="text|textNoSuggestions"
android:textAlignment="center"
android:layout_weight="100"
android:textAllCaps="false"></EditText>
</LinearLayout>
<!-- END TELEFON -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:orientation="horizontal">
<Button
android:id="@+id/NewOEGDActivity_btnCreate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="50"
android:height="64dp"
android:backgroundTint="@color/primary_color"
android:text="BTN_CREATE"
android:textAllCaps="false" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:orientation="horizontal">
<TextView
android:id="@+id/NewOEGDActivity_Status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="100"
android:backgroundTint="@android:color/transparent"
android:textColor="@color/primary_color"
android:textAlignment="center"
android:textAllCaps="false" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>
</FrameLayout>
<ImageView
android:id="@+id/eid_bottom_abstract"
android:layout_width="wrap_content"
android:layout_height="128dp"
android:layout_gravity="bottom|center|clip_vertical|start|end"
android:contentDescription="BTN_OEGD"
android:scaleType="fitXY"
android:scaleX="2"
app:layout_anchorGravity="fill"
android:visibility="visible"
app:srcCompat="@mipmap/bottom_abstract" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/OEGDButtonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:background="@color/white"
android:backgroundTint="@color/secondary_color"
android:clickable="true"
android:elevation="0dp"
android:contentDescription="BTN_BACK"
android:foreground="@mipmap/ic_keyboard_arrow_left"
android:foregroundGravity="center"
android:hapticFeedbackEnabled="false"
android:scaleX="1.5"
android:scaleY="1.5"
android:soundEffectsEnabled="false"
android:translationY="-15dp"
app:backgroundTint="@color/white"
app:borderWidth="3dp"
app:elevation="0dp"
app:layout_anchor="@+id/eid_bottom_abstract"
app:layout_anchorGravity="center"
tools:ignore="SpeakableTextPresentCheck" />
<TextView
android:id="@+id/NewOEGDActivitylblButtonBack"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="38dp"
android:layout_gravity="bottom"
android:gravity="bottom|center"
android:paddingBottom="10dp"
android:text="BTN_BACK"
android:textAlignment="center" />
<Button
android:id="@+id/NewOEGDActivitylblButtonBackMenuOpener"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:background="@android:color/transparent"
android:scaleX="2"
android:scaleY="2"
app:icon="@mipmap/ic_dehaze"
app:iconGravity="textTop"
app:iconTint="@color/black"
tools:ignore="SpeakableTextPresentCheck" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,149 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/OEGDActivityRootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="false"
android:background="@color/white"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="84dp"
android:background="@color/top_bar_color"
android:theme="@style/Theme.Befund.AppBarOverlay">
<TextView
android:id="@+id/lblOEGD"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:gravity="bottom|center"
android:text="LBL_OEGD"
android:textColor="@color/black"
android:textStyle="bold" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/extrem_hell_gray">
<FrameLayout
android:id="@+id/OEGDActivityFrameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginTop="95dp"
android:layout_marginEnd="10dp"
android:padding="2dp"
android:visibility="visible"
android:background="@color/extrem_hell_gray">
<androidx.viewpager.widget.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/OEGDPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:visibility="gone"
android:paddingBottom="200dp">
<androidx.viewpager.widget.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:paddingBottom="4dp"
android:paddingTop="4dp" />
</androidx.viewpager.widget.ViewPager>
<TextView
android:id="@+id/lblNoOEGD"
android:layout_width="match_parent"
android:text="LBL_NO_OEGD"
android:gravity="center_horizontal|center_vertical"
android:textColor="@color/black"
android:layout_marginBottom="100dp"
android:layout_height="match_parent"></TextView>
</FrameLayout>
</FrameLayout>
<ImageView
android:id="@+id/eid_bottom_abstract"
android:layout_width="wrap_content"
android:layout_height="128dp"
android:layout_gravity="bottom|center|clip_vertical|start|end"
android:contentDescription="BTN_OEGD"
android:scaleType="fitXY"
android:scaleX="2"
app:layout_anchorGravity="fill"
android:visibility="visible"
app:srcCompat="@mipmap/bottom_abstract" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/OEGDButtonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:background="@color/white"
android:backgroundTint="@color/secondary_color"
android:clickable="true"
android:elevation="0dp"
android:contentDescription="BTN_BACK"
android:foreground="@mipmap/ic_keyboard_arrow_left"
android:foregroundGravity="center"
android:hapticFeedbackEnabled="false"
android:scaleX="1.5"
android:scaleY="1.5"
android:soundEffectsEnabled="false"
android:translationY="-15dp"
app:backgroundTint="@color/white"
app:borderWidth="3dp"
app:elevation="0dp"
app:layout_anchor="@+id/eid_bottom_abstract"
app:layout_anchorGravity="center"
tools:ignore="SpeakableTextPresentCheck" />
<TextView
android:id="@+id/lblOEGDButtonButtonBack"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="38dp"
android:layout_gravity="bottom"
android:gravity="bottom|center"
android:paddingBottom="10dp"
android:text="BTN_BACK"
android:textAlignment="center" />
<ProgressBar
android:id="@+id/OEGDMainLoading"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="15dp"
android:layout_marginBottom="10dp"
android:scaleX="0.7"
android:scaleY="0.7"
android:visibility="invisible" />
<Button
android:id="@+id/bottomOEGDButtonMenuOpener"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:background="@android:color/transparent"
android:scaleX="2"
android:scaleY="2"
app:icon="@mipmap/ic_dehaze"
app:iconGravity="textTop"
app:iconTint="@color/black"
tools:ignore="SpeakableTextPresentCheck" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/fragment_oegd_qr_code"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal|center_vertical"></ImageView>
<TextView
android:id="@+id/fragment_oegd_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:textColor="@color/black"
android:textSize="20dp"
android:layout_marginTop="10dp"
android:textAlignment="center"></TextView>
</LinearLayout>
</ScrollView>

View File

@ -1,152 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/OEGDOptions"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/popup_overlay"
android:gravity="center"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:id="@+id/OEGDOptions_Popup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="70dp"
android:paddingTop="15dp"
android:background="@drawable/popup_border"
android:clipChildren="true"
android:clipToPadding="true"
android:gravity="center_horizontal"
android:orientation="vertical">
<LinearLayout
android:id="@+id/OEGDOptionsContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp"
android:layout_weight="100"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- BEGIN ADD PATIENT -->
<LinearLayout
android:id="@+id/OEGDOptionsAddView"
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<ImageView
android:layout_width="54dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_add_user"></ImageView>
<Button
android:id="@+id/OEGDOptions_BtnAdd"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:text="BTN_ADD"
android:textColor="@color/black"
android:paddingEnd="54dp"
android:textAlignment="center"
android:textAllCaps="false"></Button>
</LinearLayout>
<!-- END ADD PATIENT -->
<!-- BEGIN EDIT PATIENT -->
<LinearLayout
android:id="@+id/OEGDOptionsEditView"
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<ImageView
android:layout_width="54dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_edit"></ImageView>
<Button
android:id="@+id/OEGDOptions_BtnEdit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:text="BTN_EDIT"
android:textColor="@color/black"
android:paddingEnd="54dp"
android:textAlignment="center"
android:textAllCaps="false"></Button>
</LinearLayout>
<!-- END EDIT PATIENT -->
<!-- BEGIN DELETE PATIENT -->
<LinearLayout
android:id="@+id/OEGDOptionsDeleteView"
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="@drawable/bottom_border"
android:orientation="horizontal">
<ImageView
android:layout_width="54dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_delete_user"></ImageView>
<Button
android:id="@+id/OEGDOptions_BtnDelete"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:text="BTN_DELETE"
android:textColor="@color/black"
android:paddingEnd="54dp"
android:textAlignment="center"
android:textAllCaps="false"></Button>
</LinearLayout>
<!-- END DELETE PATIENT -->
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="32dp"
android:orientation="horizontal"
android:weightSum="100"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="100"
android:orientation="horizontal">
<Button
android:id="@+id/OEGDOptions_BtnCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="5dp"
android:layout_weight="50"
android:backgroundTint="@color/primary_color"
android:text="BTN_CANCEL"
android:textAllCaps="false" />
</LinearLayout>
</LinearLayout>
</LinearLayout>