1+ package org .openimis .imispolicies ;
2+
3+ import android .os .Bundle ;
4+ import android .view .MenuItem ;
5+ import android .view .View ;
6+ import android .widget .EditText ;
7+ import android .widget .Toast ;
8+
9+ import androidx .activity .EdgeToEdge ;
10+ import androidx .annotation .NonNull ;
11+ import androidx .appcompat .app .AlertDialog ;
12+ import androidx .appcompat .app .AppCompatActivity ;
13+ import androidx .core .graphics .Insets ;
14+ import androidx .core .view .ViewCompat ;
15+ import androidx .core .view .WindowInsetsCompat ;
16+
17+ import com .google .android .material .button .MaterialButton ;
18+
19+ public class SettingsActivity extends AppCompatActivity {
20+
21+ MaterialButton btn_change_rar_pwd , btn_rar_pass_default , btn_export_logs , btn_clear_logs ;
22+ ClientAndroidInterface ca ;
23+ @ Override
24+ protected void onCreate (Bundle savedInstanceState ) {
25+ super .onCreate (savedInstanceState );
26+ setContentView (R .layout .activity_settings );
27+ setTitle (R .string .action_settings );
28+ if (getSupportActionBar () != null ) {
29+ getSupportActionBar ().setDisplayHomeAsUpEnabled (true );
30+ }
31+ ca = new ClientAndroidInterface (this );
32+ initViews ();
33+ setupListenners ();
34+ }
35+
36+ @ Override
37+ public boolean onOptionsItemSelected (@ NonNull MenuItem item ) {
38+ if (item .getItemId () == android .R .id .home ) {
39+ finish ();
40+ return true ;
41+ }
42+ return super .onOptionsItemSelected (item );
43+ }
44+
45+ private void initViews (){
46+ btn_change_rar_pwd = findViewById (R .id .btn_change_rar_pwd );
47+ btn_rar_pass_default = findViewById (R .id .btn_rar_pass_default );
48+ btn_export_logs = findViewById (R .id .btn_export_logs );
49+ btn_clear_logs = findViewById (R .id .btn_clear_logs );
50+
51+ if (ca .isLoggingEnabled ()){
52+ btn_export_logs .setVisibility (View .VISIBLE );
53+ btn_clear_logs .setVisibility (View .VISIBLE );
54+ }else {
55+ btn_export_logs .setVisibility (View .GONE );
56+ btn_clear_logs .setVisibility (View .GONE );
57+ }
58+ }
59+
60+ private void setupListenners () {
61+ btn_change_rar_pwd .setOnClickListener (v -> {
62+ AlertDialog .Builder builder = new AlertDialog .Builder (this );
63+ builder .setTitle (getResources ().getString (R .string .ChangeRarPassword ));
64+
65+ final EditText input = new EditText (this );
66+ input .setHint (getResources ().getString (R .string .EnterRarPassword ));
67+ builder .setView (input );
68+
69+ builder .setPositiveButton (getResources ().getString (R .string .Save ), (dialogInterface , which ) -> {
70+
71+ });
72+
73+ builder .setNegativeButton (getResources ().getString (R .string .Cancel ), (dialogInterface , which ) -> {
74+ dialogInterface .cancel ();
75+ });
76+
77+ AlertDialog dialog = builder .create ();
78+ dialog .setCancelable (false );
79+ dialog .setCanceledOnTouchOutside (false );
80+ dialog .show ();
81+
82+ dialog .getButton (AlertDialog .BUTTON_POSITIVE ).setOnClickListener (b -> {
83+ String text = input .getText ().toString ().trim ();
84+ if (text .isEmpty ()) {
85+ Toast .makeText (this , getResources ().getString (R .string .EnterRarPassword ), Toast .LENGTH_SHORT ).show ();
86+ } else {
87+ ca .SaveRarPassword (text );
88+ ca .ShowDialog (getResources ().getString (R .string .PasswordChanged ));
89+ dialog .dismiss ();
90+ }
91+ });
92+
93+ });
94+
95+ btn_rar_pass_default .setOnClickListener (v -> {
96+ try {
97+ ca .BackToDefaultRarPassword ();
98+ ca .ShowDialog (getResources ().getString (R .string .ResetRarPwd ));
99+ } catch (Exception e ) {
100+ ca .ShowDialog (e .getMessage ());
101+ }
102+ });
103+
104+ btn_export_logs .setOnClickListener (v -> {
105+ ca .exportLogs ();
106+ });
107+
108+ btn_clear_logs .setOnClickListener (v -> {
109+ ca .clearLogs ();
110+ });
111+ }
112+ }
0 commit comments