From 4821b01a71662a3d4a98dccc6e67792a1195f53c Mon Sep 17 00:00:00 2001 From: agata Date: Sun, 8 Jan 2023 15:01:03 +0100 Subject: [PATCH] . --- HelloWorld.py | 1 - README.md | 2 - TEST.PY | 1 - Tescik | 1 - WRSD2/app/build.gradle | 1 + WRSD2/app/src/main/AndroidManifest.xml | 35 +- .../com/example/wrsd/AddDeviceActivity.java | 38 ++ .../main/java/com/example/wrsd/Device.java | 28 + .../java/com/example/wrsd/MainActivity2.java | 148 ++++- .../java/com/example/wrsd/RegisterUser.java | 13 + .../java/com/example/wrsd/RoomActivity_1.java | 257 +++++++++ .../example/wrsd/ui/login/LoginActivity.java | 196 ++++--- WRSD2/app/src/main/res/drawable/back.png | Bin 850554 -> 850554 bytes WRSD2/app/src/main/res/drawable/glosnik.png | Bin 44193 -> 24495 bytes .../main/res/layout/activity_add_device.xml | 56 ++ .../src/main/res/layout/activity_login.xml | 21 +- .../src/main/res/layout/activity_main2.xml | 539 +++++++----------- .../src/main/res/layout/activity_room1.xml | 197 +++++++ .../app/src/main/res/values-night/themes.xml | 5 + WRSD2/app/src/main/res/values/attrs.xml | 6 + WRSD2/app/src/main/res/values/colors.xml | 5 + WRSD2/app/src/main/res/values/strings.xml | 4 + WRSD2/app/src/main/res/values/styles.xml | 11 + WRSD2/app/src/main/res/values/themes.xml | 11 + testowy | 1 - 25 files changed, 1129 insertions(+), 448 deletions(-) delete mode 100644 HelloWorld.py delete mode 100644 README.md delete mode 100644 TEST.PY delete mode 100644 Tescik create mode 100644 WRSD2/app/src/main/java/com/example/wrsd/AddDeviceActivity.java create mode 100644 WRSD2/app/src/main/java/com/example/wrsd/Device.java create mode 100644 WRSD2/app/src/main/java/com/example/wrsd/RoomActivity_1.java create mode 100644 WRSD2/app/src/main/res/layout/activity_add_device.xml create mode 100644 WRSD2/app/src/main/res/layout/activity_room1.xml create mode 100644 WRSD2/app/src/main/res/values/attrs.xml create mode 100644 WRSD2/app/src/main/res/values/styles.xml delete mode 100644 testowy diff --git a/HelloWorld.py b/HelloWorld.py deleted file mode 100644 index be1da56..0000000 --- a/HelloWorld.py +++ /dev/null @@ -1 +0,0 @@ -Print("Hello World") \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 42b38cd..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# WRSDv2 -Witamy w repozytorium projektu WRSD diff --git a/TEST.PY b/TEST.PY deleted file mode 100644 index 19c96f6..0000000 --- a/TEST.PY +++ /dev/null @@ -1 +0,0 @@ -print("hej") \ No newline at end of file diff --git a/Tescik b/Tescik deleted file mode 100644 index 7e82250..0000000 --- a/Tescik +++ /dev/null @@ -1 +0,0 @@ -Hej Hej \ No newline at end of file diff --git a/WRSD2/app/build.gradle b/WRSD2/app/build.gradle index 3f148a4..29a804e 100644 --- a/WRSD2/app/build.gradle +++ b/WRSD2/app/build.gradle @@ -44,6 +44,7 @@ dependencies { implementation 'androidx.navigation:navigation-ui:2.4.1' implementation 'com.google.firebase:firebase-database:20.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.2.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/WRSD2/app/src/main/AndroidManifest.xml b/WRSD2/app/src/main/AndroidManifest.xml index 8993dcf..1ce212a 100644 --- a/WRSD2/app/src/main/AndroidManifest.xml +++ b/WRSD2/app/src/main/AndroidManifest.xml @@ -6,22 +6,48 @@ android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:icon="@mipmap/ic_launcher" + android:icon="@drawable/wrsdlogo" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.WRSD" tools:targetApi="31" > + + + + + + + + + + android:exported="false" + android:theme="@style/Theme.WRSD.NoActionBar"> + android:exported="false" + android:theme="@style/Theme.WRSD.NoActionBar"> @@ -38,7 +64,8 @@ + android:label="@string/app_name" + android:theme="@style/Theme.WRSD.NoActionBar"> diff --git a/WRSD2/app/src/main/java/com/example/wrsd/AddDeviceActivity.java b/WRSD2/app/src/main/java/com/example/wrsd/AddDeviceActivity.java new file mode 100644 index 0000000..916e8da --- /dev/null +++ b/WRSD2/app/src/main/java/com/example/wrsd/AddDeviceActivity.java @@ -0,0 +1,38 @@ +package com.example.wrsd; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; + +public class AddDeviceActivity extends AppCompatActivity { + + EditText editTextTextName; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_device); + + editTextTextName = (EditText) findViewById(R.id.editTextTextName); + } + + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 1) { + if(resultCode == RESULT_OK) { + String strEditText = data.getStringExtra("editTextValue"); + } + } + } + + public void DeviceName(View view){ + String editTextName = editTextTextName.getText().toString().trim(); + Intent intent = new Intent(); + intent.putExtra("name", editTextName); + setResult(RESULT_OK, intent); + finish(); + } +} \ No newline at end of file diff --git a/WRSD2/app/src/main/java/com/example/wrsd/Device.java b/WRSD2/app/src/main/java/com/example/wrsd/Device.java new file mode 100644 index 0000000..77ad2ef --- /dev/null +++ b/WRSD2/app/src/main/java/com/example/wrsd/Device.java @@ -0,0 +1,28 @@ +package com.example.wrsd; + +public class Device { + + String id; + String name; + + public Device(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/WRSD2/app/src/main/java/com/example/wrsd/MainActivity2.java b/WRSD2/app/src/main/java/com/example/wrsd/MainActivity2.java index de2abc2..9d09c08 100644 --- a/WRSD2/app/src/main/java/com/example/wrsd/MainActivity2.java +++ b/WRSD2/app/src/main/java/com/example/wrsd/MainActivity2.java @@ -1,20 +1,164 @@ package com.example.wrsd; -import androidx.appcompat.app.AppCompatActivity; -import android.os.Bundle; +import static com.example.wrsd.RoomActivity_1.setWindowFlag; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.graphics.Color; +import android.media.Image; +import android.os.Build; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.wrsd.ui.login.LoginActivity; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.firestore.CollectionReference; +import com.google.firebase.firestore.DocumentReference; +import com.google.firebase.firestore.DocumentSnapshot; +import com.google.firebase.firestore.FirebaseFirestore; +import com.google.firebase.firestore.Query; +import com.google.firebase.firestore.QueryDocumentSnapshot; +import com.google.firebase.firestore.QuerySnapshot; + +import java.util.HashMap; +import java.util.Map; public class MainActivity2 extends AppCompatActivity { FirebaseAuth mAuth; + FirebaseFirestore firestore; + public String userEmail; @Override protected void onCreate(Bundle savedInstanceState) { + if (Build.VERSION.SDK_INT >= 19) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + //make fully Android Transparent Status bar + if (Build.VERSION.SDK_INT >= 21) { + setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false); + getWindow().setStatusBarColor(Color.TRANSPARENT); + } super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); + + Bundle extras = getIntent().getExtras(); + if (extras != null) { + + userEmail = extras.getString("key"); + Toast.makeText(getApplicationContext(), "Cześć " + userEmail, Toast.LENGTH_LONG).show(); + //The key argument here must match that used in the other activity + } + mAuth = FirebaseAuth.getInstance(); + firestore = FirebaseFirestore.getInstance(); + + + + +// +// FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); +// DocumentReference docIdRef = rootRef.collection("users").document("FJQULeLWxEMLsAleYBkl"); +// docIdRef.get().addOnCompleteListener(new OnCompleteListener() { +// @Override +// public void onComplete(@NonNull Task task) { +// if (task.isSuccessful()) { +// DocumentSnapshot document = task.getResult(); +// if (document.exists()) { +// Toast.makeText(getApplicationContext(), "exist", Toast.LENGTH_LONG).show(); +// } else { +// Toast.makeText(getApplicationContext(), "not", Toast.LENGTH_LONG).show(); +// } +// } else { +// Toast.makeText(getApplicationContext(), "failure", Toast.LENGTH_LONG).show(); +// +// } +// } +// }); + +// FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); +// CollectionReference yourCollRef = rootRef.collection("users"); +// Query query = yourCollRef.whereEqualTo("email", userEmail); +// +// yourCollRef.document(userEmail).collection("rooms") +// .document().set(rooms) +// .addOnSuccessListener(new OnSuccessListener() { +// @Override +// public void onSuccess(Void aVoid) { +// +// +// +// } +// }); + + +// firestore.collection("users").add(users).addOnSuccessListener(new OnSuccessListener() { +// @Override +// public void onSuccess(DocumentReference documentReference) { +// Toast.makeText(getApplicationContext(), "success firestore", Toast.LENGTH_LONG).show(); +// +// } +// }).addOnFailureListener(new OnFailureListener() { +// @Override +// public void onFailure(@NonNull Exception e) { +// Toast.makeText(getApplicationContext(), "Błąd zapisu danych! Spróbuj ponownie", Toast.LENGTH_LONG).show(); +// +// } +// }); + + +// query.get().addOnCompleteListener(new OnCompleteListener() { +// @Override +// public void onComplete(@NonNull Task task) { +// if (task.isSuccessful()) { +// if (task.getResult().isEmpty()) { +// Toast.makeText(getApplicationContext(), "not exist", Toast.LENGTH_LONG).show(); +// firestore.collection("users").add(users).addOnSuccessListener(new OnSuccessListener() { +// @Override +// public void onSuccess(DocumentReference documentReference) { +// Toast.makeText(getApplicationContext(), "succes firestore", Toast.LENGTH_LONG).show(); +// +// } +// }).addOnFailureListener(new OnFailureListener() { +// @Override +// public void onFailure(@NonNull Exception e) { +// Toast.makeText(getApplicationContext(), "Błąd zapisu danych! Spróbuj ponownie", Toast.LENGTH_LONG).show(); +// +// } +// }); +// } +// else { +// Toast.makeText(getApplicationContext(), "exist", Toast.LENGTH_LONG).show(); +// } +// } else { +// Toast.makeText(getApplicationContext(), "Błąd pobrania danych! Spróbuj ponownie", Toast.LENGTH_LONG).show(); +// } +// } +// }); } + + public void RoomActivity(View v){ + +// ImageView b = (ImageView) v; +// String imageText = b.getContentDescription().toString(); + CharSequence description = v.getContentDescription(); + String roomText = String.valueOf(description); + Intent intent = new Intent(this, RoomActivity_1.class); + intent.putExtra("room", roomText); + intent.putExtra("email", userEmail); + startActivity(intent); + } } \ No newline at end of file diff --git a/WRSD2/app/src/main/java/com/example/wrsd/RegisterUser.java b/WRSD2/app/src/main/java/com/example/wrsd/RegisterUser.java index 599dacf..18606e7 100644 --- a/WRSD2/app/src/main/java/com/example/wrsd/RegisterUser.java +++ b/WRSD2/app/src/main/java/com/example/wrsd/RegisterUser.java @@ -1,13 +1,18 @@ package com.example.wrsd; +import static com.example.wrsd.RoomActivity_1.setWindowFlag; + import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.util.Patterns; import android.view.View; +import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; @@ -38,6 +43,14 @@ public class RegisterUser extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { + if (Build.VERSION.SDK_INT >= 19) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + //make fully Android Transparent Status bar + if (Build.VERSION.SDK_INT >= 21) { + setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false); + getWindow().setStatusBarColor(Color.TRANSPARENT); + } super.onCreate(savedInstanceState); setContentView(R.layout.activity_register_user); diff --git a/WRSD2/app/src/main/java/com/example/wrsd/RoomActivity_1.java b/WRSD2/app/src/main/java/com/example/wrsd/RoomActivity_1.java new file mode 100644 index 0000000..4f60696 --- /dev/null +++ b/WRSD2/app/src/main/java/com/example/wrsd/RoomActivity_1.java @@ -0,0 +1,257 @@ +package com.example.wrsd; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.firestore.CollectionReference; +import com.google.firebase.firestore.DocumentReference; +import com.google.firebase.firestore.DocumentSnapshot; +import com.google.firebase.firestore.FieldValue; +import com.google.firebase.firestore.FirebaseFirestore; +import com.google.firebase.firestore.Query; +import com.google.firebase.firestore.QueryDocumentSnapshot; +import com.google.firebase.firestore.QuerySnapshot; + +import org.w3c.dom.Text; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +public class RoomActivity_1 extends AppCompatActivity { + + public List deviceList = new ArrayList<>(); + public List deviceFromBase = new ArrayList<>(); + public List temp = new ArrayList<>(); + private RecyclerView recyclerView; + private SingleRoomAdapter mAdapter; + private String userEmail; + Integer roomIndex; + public String roomvalue; + private TextView roomName1; + TextView myTextView; + private TextView deviceName; + + + public static void setWindowFlag(Activity activity, final int bits, boolean on) { + + Window win = activity.getWindow(); + WindowManager.LayoutParams winParams = win.getAttributes(); + if (on) { + winParams.flags |= bits; + } else { + winParams.flags &= ~bits; + } + win.setAttributes(winParams); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + + if (Build.VERSION.SDK_INT >= 19) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + //make fully Android Transparent Status bar + if (Build.VERSION.SDK_INT >= 21) { + setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false); + getWindow().setStatusBarColor(Color.TRANSPARENT); + } + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_room1); + + Bundle extras = getIntent().getExtras(); + if (extras != null) { + + roomName1 = (TextView) findViewById(R.id.textView); + roomvalue = extras.getString("room"); + userEmail = extras.getString("email"); + //The key argument here must match that used in the other activity + } + + + recyclerView = findViewById(R.id.recycler_view); + + mAdapter = new SingleRoomAdapter(deviceList, getApplicationContext()); + RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); + recyclerView.setLayoutManager(mLayoutManager); + recyclerView.setItemAnimator(new DefaultItemAnimator()); + recyclerView.setAdapter(mAdapter); + + roomName1 = (TextView) findViewById(R.id.textView); + roomName1.setText(roomvalue); + + myTextView =findViewById(R.id.textView); + + getData(); + + } + + private void getData() { + deviceFromBase.clear(); + FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); + + rootRef.collection("users").document(userEmail).collection("rooms").document(roomvalue) + .get() + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(DocumentSnapshot documentSnapshot) { + if (documentSnapshot!=null) { + temp.add(documentSnapshot.getData().toString()); + if(!temp.get(0).equals("{Urzadzenia=[]}")) { + String[] parts = temp.get(0).split(Pattern.quote("[")); + String[] p2 = parts[1].split(Pattern.quote("]")); + String[] devices = p2[0].split("(,)|(\\s+)"); + for (Integer i = 0; i < devices.length; i = i + 2) { + deviceFromBase.add(devices[i]); + } + Device d1; + Integer j = 0; + + for (String d : deviceFromBase) { + String jStr = Integer.toString(j); + d1 = new Device(jStr, d); + deviceList.add(d1); + } + mAdapter.notifyDataSetChanged(); + } + else{ + Toast.makeText(getApplicationContext(), "Brak urządzeń w pokoju", Toast.LENGTH_LONG).show(); + } + + } else { + Toast.makeText(getApplicationContext(), "Brak urządzeń w pokoju", Toast.LENGTH_LONG).show(); + } + } + }).addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + // Toast.makeText(, "", Toast.LENGTH_SHORT).show(); + // Log.d("Tag",e.toString()); +// data="Failed"; + } + }); + } + + + + + +// CollectionReference usersCol = rootRef.collection("users"); +// Query query = usersCol.whereEqualTo("email", userEmail).whereEqualTo("rooms", roomvalue); +// DocumentReference document = usersCol.document(userEmail).collection("rooms").document(roomvalue); +// +// Map docData = new HashMap<>(); +// +// query.get().addOnCompleteListener(new OnCompleteListener() { +// @Override +// public void onComplete(@NonNull Task task) { +// if (task.isSuccessful()) { +// for (QueryDocumentSnapshot document : task.getResult()) { +//// Log.d("TAG", document.getId() + " => " + document.getData()); +// deviceFromBase.add(document.getData().toString()); +// Toast.makeText(getApplicationContext(), "dobrze", Toast.LENGTH_LONG).show(); +// } +// } else { +// Toast.makeText(getApplicationContext(), "Błąd pobrania danych! Spróbuj ponownie", Toast.LENGTH_LONG).show(); } +// } +// }); + +// } + + + + +// private void prepareRoomData() { +// getData(); +// +// Device d1; +// Integer j = 0; +// +// for(String d: deviceFromBase){ +// String jStr = Integer.toString(j); +// d1 = new Device(jStr, d); +// deviceList.add(d1); +// } + +// d1 = new Device("1", "Oświetlenie"); +// deviceList.add(d1); +// d1 = new Device("2", "Głośniki"); +// deviceList.add(d1); +// d1 = new Device("3", "Rolety"); +// deviceList.add(d1); +// d1 = new Device("4", "Ogrzewanie"); +// deviceList.add(d1); +// d1 = new Device("5", "Odkurzacz"); +// deviceList.add(d1); + +// mAdapter.notifyDataSetChanged(); +// } + + public void onBackClicked(View view) { + startActivity(new Intent(getApplicationContext(), MainActivity.class)); + finish(); + } + + + public void addDevice(View view){ + Intent i = new Intent(this, AddDeviceActivity.class); + startActivityForResult(i, 1); + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 1) { + if(resultCode == RESULT_OK) { + FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); + String strEditText = data.getStringExtra("name"); + Device d1 = new Device("6", strEditText); + deviceList.add(d1); + + mAdapter.notifyDataSetChanged(); + + DocumentReference docRef = rootRef.collection("users").document(userEmail).collection("rooms").document(roomvalue); + docRef.update("Urzadzenia", FieldValue.arrayUnion(strEditText)); + + } + } + } + + public void settings(View view){ + + TextView b = (TextView) view; + String dn = b.getText().toString(); + Intent intent = new Intent(this, DeviceSettings.class); + intent.putExtra("device", dn); + intent.putExtra("email", userEmail); + intent.putExtra("room", roomvalue); + startActivity(intent); + finish(); + + + } +} diff --git a/WRSD2/app/src/main/java/com/example/wrsd/ui/login/LoginActivity.java b/WRSD2/app/src/main/java/com/example/wrsd/ui/login/LoginActivity.java index dbf3469..328fd99 100644 --- a/WRSD2/app/src/main/java/com/example/wrsd/ui/login/LoginActivity.java +++ b/WRSD2/app/src/main/java/com/example/wrsd/ui/login/LoginActivity.java @@ -1,30 +1,26 @@ package com.example.wrsd.ui.login; -import android.app.Activity; +import static com.example.wrsd.RoomActivity_1.setWindowFlag; import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import android.content.Intent; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; -import android.text.Editable; -import android.text.TextWatcher; -import android.view.KeyEvent; +import android.util.Patterns; import android.view.View; -import android.view.inputmethod.EditorInfo; +import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; -import com.example.wrsd.MainActivity; import com.example.wrsd.MainActivity2; import com.example.wrsd.R; import com.example.wrsd.RegisterUser; @@ -51,6 +47,14 @@ public class LoginActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { + if (Build.VERSION.SDK_INT >= 19) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + //make fully Android Transparent Status bar + if (Build.VERSION.SDK_INT >= 21) { + setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false); + getWindow().setStatusBarColor(Color.TRANSPARENT); + } super.onCreate(savedInstanceState); binding = ActivityLoginBinding.inflate(getLayoutInflater()); @@ -70,73 +74,74 @@ public class LoginActivity extends AppCompatActivity { usernameEditText2 = (EditText) findViewById(R.id.username); passwordEditText2 = (EditText) findViewById(R.id.password); progressBar = (ProgressBar) findViewById(R.id.loading); + login_button = (Button) findViewById(R.id.login); - loginViewModel.getLoginFormState().observe(this, new Observer() { - @Override - public void onChanged(@Nullable LoginFormState loginFormState) { - if (loginFormState == null) { - return; - } - loginButton.setEnabled(loginFormState.isDataValid()); - if (loginFormState.getUsernameError() != null) { - usernameEditText.setError(getString(loginFormState.getUsernameError())); - } - if (loginFormState.getPasswordError() != null) { - passwordEditText.setError(getString(loginFormState.getPasswordError())); - } - } - }); +// loginViewModel.getLoginFormState().observe(this, new Observer() { +// @Override +// public void onChanged(@Nullable LoginFormState loginFormState) { +// if (loginFormState == null) { +// return; +// } +// loginButton.setEnabled(loginFormState.isDataValid()); +// if (loginFormState.getUsernameError() != null) { +// usernameEditText.setError(getString(loginFormState.getUsernameError())); +// } +// if (loginFormState.getPasswordError() != null) { +// passwordEditText.setError(getString(loginFormState.getPasswordError())); +// } +// } +// }); - loginViewModel.getLoginResult().observe(this, new Observer() { - @Override - public void onChanged(@Nullable LoginResult loginResult) { - if (loginResult == null) { - return; - } - progressBar.setVisibility(View.GONE); - if (loginResult.getError() != null) { - showLoginFailed(loginResult.getError()); - } - if (loginResult.getSuccess() != null) { - updateUiWithUser(loginResult.getSuccess()); - } - setResult(Activity.RESULT_OK); +// loginViewModel.getLoginResult().observe(this, new Observer() { +// @Override +// public void onChanged(@Nullable LoginResult loginResult) { +// if (loginResult == null) { +// return; +// } +// progressBar.setVisibility(View.GONE); +// if (loginResult.getError() != null) { +// showLoginFailed(loginResult.getError()); +// } +// if (loginResult.getSuccess() != null) { +// updateUiWithUser(loginResult.getSuccess()); +// } +// setResult(Activity.RESULT_OK); +// +// //Complete and destroy login activity once successful +// finish(); +// } +//// }); +// +// TextWatcher afterTextChangedListener = new TextWatcher() { +// @Override +// public void beforeTextChanged(CharSequence s, int start, int count, int after) { +// // ignore +// } +// +// @Override +// public void onTextChanged(CharSequence s, int start, int before, int count) { +// // ignore +// } +// +// @Override +// public void afterTextChanged(Editable s) { +// loginViewModel.loginDataChanged(usernameEditText.getText().toString(), +// passwordEditText.getText().toString()); +// } +// }; +// usernameEditText.addTextChangedListener(afterTextChangedListener); +// passwordEditText.addTextChangedListener(afterTextChangedListener); +// passwordEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { - //Complete and destroy login activity once successful - finish(); - } - }); - - TextWatcher afterTextChangedListener = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - // ignore - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - // ignore - } - - @Override - public void afterTextChanged(Editable s) { - loginViewModel.loginDataChanged(usernameEditText.getText().toString(), - passwordEditText.getText().toString()); - } - }; - usernameEditText.addTextChangedListener(afterTextChangedListener); - passwordEditText.addTextChangedListener(afterTextChangedListener); - passwordEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { - - @Override - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (actionId == EditorInfo.IME_ACTION_DONE) { - loginViewModel.login(usernameEditText.getText().toString(), - passwordEditText.getText().toString()); - } - return false; - } - }); +// @Override +// public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { +// if (actionId == EditorInfo.IME_ACTION_DONE) { +// loginViewModel.login(usernameEditText.getText().toString(), +// passwordEditText.getText().toString()); +// } +// return false; +// } +// }); // loginButton.setOnClickListener(new View.OnClickListener() { // @Override @@ -147,7 +152,7 @@ public class LoginActivity extends AppCompatActivity { // } // }); - login_button = (Button) findViewById(R.id.login); + login_button.setEnabled(true); login_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -170,10 +175,29 @@ public class LoginActivity extends AppCompatActivity { public void LoginUser(){ String email = usernameEditText2.getText().toString().trim(); String password = passwordEditText2.getText().toString().trim(); + + if (email.isEmpty()) { + usernameEditText2.setError("Podaj swój email"); + usernameEditText2.requestFocus(); + return; + } else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) { + usernameEditText2.setError("Podaj prawidłowy email!"); + usernameEditText2.requestFocus(); + return; + } + if (password.isEmpty()) { + passwordEditText2.setError("Podaj swoje hasło!"); + passwordEditText2.requestFocus(); + return; + } else if (password.length() <= 5) { + passwordEditText2.setError("Hasło musi mieć więcej niż 5 znaków"); + passwordEditText2.requestFocus(); + return; + } + mAuth.signInWithEmailAndPassword(email, password).addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(AuthResult authResult) { - Toast.makeText(getApplicationContext(), "Użytkownik zalogowany", Toast.LENGTH_LONG).show(); progressBar.setVisibility(View.GONE); openMainActivity(); @@ -185,10 +209,14 @@ public class LoginActivity extends AppCompatActivity { progressBar.setVisibility(View.GONE); } }); + progressBar.setVisibility(View.GONE); } public void openMainActivity(){ + + String email = usernameEditText2.getText().toString().trim(); Intent intent = new Intent(this, MainActivity2.class); + intent.putExtra("key", email); startActivity(intent); } @@ -197,13 +225,13 @@ public class LoginActivity extends AppCompatActivity { startActivity(intent); } - private void updateUiWithUser(LoggedInUserView model) { - String welcome = getString(R.string.welcome) + model.getDisplayName(); - // TODO : initiate successful logged in experience - Toast.makeText(getApplicationContext(), welcome, Toast.LENGTH_LONG).show(); - } - - private void showLoginFailed(@StringRes Integer errorString) { - Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_SHORT).show(); - } +// private void updateUiWithUser(LoggedInUserView model) { +// String welcome = getString(R.string.welcome) + model.getDisplayName(); +// // TODO : initiate successful logged in experience +// Toast.makeText(getApplicationContext(), welcome, Toast.LENGTH_LONG).show(); +// } +// +// private void showLoginFailed(@StringRes Integer errorString) { +// Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_SHORT).show(); +// } } \ No newline at end of file diff --git a/WRSD2/app/src/main/res/drawable/back.png b/WRSD2/app/src/main/res/drawable/back.png index fc59d95e465382c3fbd6dabdbfe706702306f3b9..c55cdc5280d183666b77bbbf6fb42e5744b04f36 100644 GIT binary patch delta 855 mcmezM#rW43;|=j@8w+kQZRTeSP#9&52Eu4cpePsY<^}*=F*26` literal 850554 zcmeI5OP1s~kQl40vvzX;9YH71?B{8#3(cykuB@FlDJKyh2EPu{0l0(KFS}kOlYx)9 z!w7;5#(({v|Nejf@niV!f64#sQZ-d{}V5dkKKu9|7Es+wVnSF!{g3&)=`{=hye&t)H*Qp0cy$WIn$E zmbKf@5AT&f{v5u=AGdFjVSAqhaC;m(^_hXS_~Ul+=N1G+>BkfGtqJ_NJ*a5?UkmTou{SF&sQMe_AB&w zZvX?z$ODj7GGaOTjEeE|9c37F& zT#@KAt9Mdv@h99)4)jR?w=V{JpMj>E8w7AW3Evw5`JmA7S)sL=w(-V|X|o(wj4Rsh z%b%aUMQ}q_bTf+pZqLHS&H)JEcH9Vo-=cOFtRT=A0o;z+Ab{J+f&K_&KND0zWX9)!4cA`Ni`^BNmBQttvV9$$>5c^f=IxA&-UwtH61Q_`=#T(z z@6Bu$NBpQvhPk)Qx|Q?ZQRzFlWJ0bgYV!Heyqj~j8<5u#d4Sm1@twZ#r~47W?NL2; zzg#_zRGt#I)tcDic5*B-0o;CUjL7l5SMRi+7#f$gXJH*C{Asy+_21odfmcz=<)AdZ zf4yt-h4REf+P2oC&0;%Tf4Enk>mrNW$%=jm;C9`p?W(!T94UuQ@OE(qXu+>YBP z1aP|xFHIssdrlJ2x_#qP=9O!yk2M*2K#gMMxIJT_MGo{Wx{2FKQ3yN<;PzWc?-}mSJB!fcQIF*CpWYx?`cu?D0P_xfWU+RZoh@} zCK2zsze*G0_M7Cxy}OCqdv@L3a{J2nF0Hb994ykKy5wW0N4K~r4=!n%y*GOw&lHBz z6d!aQ_EEHLwS#QzmjG_Z?fnqI?fsgnpDe8vBiv5T^g|%cgtc?s@$U4Uh4F}lWt~6fxSbs9jX>7(wJt4^Y}|P$Yde>UUAut0Q=nAmPb@U4IRV_> zJOnhrm;i1^^$_?iYUjb25a^2lZpUm8!0qHfuLSb$hs<0CNh>5f&o0n@it1Fo@Aa9D zMWJ3}O22XlFmE?r5XgZ~)ddOQc2e=)1aP}fFY=ke@zaR!M|^xew%j{^boAP-`D}f* z^gZ=GJ9FOoKAu6W<9HGceAwyf-2whOpj#~inp z%|l%j^4oyht1G2cC}VU4x91Pi#*xMC;X*bx7`HbbI5E@aJT%-MDB_1tTa{0IkNcd@ zhd?v}Hr06HJu}?Kwewgo&lxCR&N8mRtgoaUJ)6#2Agsw8okHSv&!b7vHePWb%87$k#z;$H0_(ik#RR(e_Wqay+XPDV(ZCZnt;kJ_m4!9 zRN1a#?@wdnr5sIl?9+t65aPq&)_brU^Y(+mg4>%66Z=YWd-KCoz-BmMel=h`-P=nrX+ZkcY{S}%4VG>bMnNp= zqtLZ3&oOV`o44ck4hQT@t%plAxLu*O4l^Xb*SI}g8sPSDAv;P)8Mw#)T!| zngDJ;jjq)jWh$jS77z1wR!V)G)ayfLvS;@Bnk@djo)^9UNyg_*n5`}Wv>JEe>P_cd z%5+LQm+vF<_Pu!{ZZDsKd;HJUt{h@kyW#e8Ve08!xIJ7naeKIsNrSDVtt+)CQYa&UWzAVw?`w+D-wTp>-9uB|y$<^#Qhb>GM3(JW|6CtK~d?{@jC{8-f` z<)m9OvVgF2B?7OrvsG7&CvFwbyttNnbS)3JN7K8ZNHs;__DbgTpNF{Je~i{z_?Upb zR!v{`r>*Twwl^f85whVvJ8oBy+Qqr^)iWW#-Mdz8ee)=u1B4Yf%{xZMO} zg+dIyttkq(SBPn>DsX$Oc+uJ@1T;c6+-KG8$6wfYxT3DvfmQeCl4+FWtk_Q0+l?1{ zE5?qNuM;rzwx%fDPR_d|fZNyo;4)Y=RYgD}WW#-yZXZs`HM4G`edLaJ(iH*=0=S)V z(Hnu9UX{9V`@$-{WmL=#;&$?|Hv-Mwp51`Yd!bLfJ*IqmOFU;$!0jYhZv?X4cx`QD zId9Ky0B+}!s67GP-kaH+O&%KH%~mUJw--x;xRd#x1aLb^*c$<@+s7LS)04Na{5u^` zGKbH&kUCD+S05gg^&M@}UmhSfjRLPn0=T_5vys@iog9F`Z&5p^V-VWMRg{d)OpWCFN7yvib{UlI7Y zos@t8>+R$~e*~JjUH6q7CxC0`?f(`zR-R}uZ*f3?c{{_QHv+ibfmnJ=s(?swJ4x6Z z0o)!?M7<@UgAm|$lBzcX&D^fLmMXW?t* z0B$Dj4*w{iNq`Q!uNAEIwN%{BsPRMqw|6KvPYKolZ!@?5_|BSUr|YCU!TPKFpzF}zui zDE@Rm0=S(K(HjBWem{@(mctei#O-87Zv=3=g&BIwiu*Ca?c{K81RA#M6D?UZHz zpX1MXfpu7@(J#e}mr$jgRKorA)m!SCMi94?9=#F3?WT(8Ej?}n2e*^Dy%A{W_T&v^ z1I%{gDr#RJ&@ejs;P&3kW|SC#u_&FH)=x^{QZ~SBH{6cfR|w$tz!EFrr4GteI*6WFOq_NkqLRp#!$KouulGfCsmyp*=jpYjQNPe9eq~<*vWp zGWps80=JV7y%A617VkATLIvQLG1J8s9r?FiuZJxjEU3#~d&0JoF35cn->=aK{j`Xb=U?MX87Ab{JeAFxPie*|#*!VHWH2vjEU zc`#~nHsMcA49trJaQj7oyd46U3E=k12h&?rhubd?%v(5||J+pi}fZokejW(l~xD;dU2!j%xrmSWP3ok{!Y_=@4DQ+HlF9v!6Cd9b*>MEG!f3963E#O>!5EVytOA~feK5lnpHaA((fXUM8d=~x7U+ct(XSu5pHji7`VL&_KKC__FyKgm>ZSI;Pxgl#qCY7SF9Ab zS29?|m`3W6i2dUkRy@eJ?)N5$;Xn9~U*RDeN!R!Ua64(-k^pXR>k!=DmVe3GaeGU% zm5i+Se$AI+o-=kXp;pd{v^X=9eA-yKB~)ih0JnR0plP@rbr!cfi7ak+5(w*N;C4s4 zvktD)u3>ebfu2p>`81QyFsWOG+nowf9l?0*$L&6Yi`#w1aZ0NfrcUTdwz?e-p9<9zp8aC@w*!0oZ(wbt6f?J16Hf4#erU~-+n za+zJ82F3%yu7j;mf|%jshSgt#D=O4W6&3_=JGokx0B*M!r)6Wb)k569MJB@b!R_hL z%n><4yxNTM(_~hcVosOF8|xDgEzAs`w$yJ4HD(gP?ZIrB8Q;de!|k!+wQMbJUor`@ z1iCzrtW;2DMD~@yK6&6NTGFrxIJ#{mMzEaOD68O;P!Pj zxeuK8X5;prQV6#Pj3#dPF3EsNH6X?9K?AqiY}~$z#rMV!w{ydc?_h;F42jrNE)D-a zpD+O1&;&&9GsCAXp*z)e<8gZ!VFt=W+#V=c%BJFWB`7z$4Q?lDZo(1%K*Lf@-?=oK zx^u&f<8b5l@H%ysUAWyP5dz#qH$bRRXxZUq9^S25$Eqcig_0y}o1TrRBK&o_T`XeaC&p z?b2YP<~wRGte)1`XJY5OQ16yG;)>ZtRj#Z0$N}8$!jnFdArA#^j~F%cHsf}4q(%ke z_B^2(Veg?*+)gqG0o?924c6VBT1(WtMy>s!;bSR=2l=|Yx4CMDh$xn>NE;bJ?FiuZ zs-vJ?ppCnU+q((n^^V~7>kJE&u;+HEj;Ix2ZmikLElf)>AD7R*zPW^2ISLM|TTb1% zsM<74xIMOM>n9Ixug^S0jkw)em=4^YT1(WNMXlNK=wm5n{IWdx$~>90!v_LFAf4vV zbdff~r#b=Lj+ZhB;P&bxG$T6A+lJelhhWkG+#YG{Oaj-Y*|@!V2s}3cw|k0?%I(r% zqUI@T4a7cQW`ABkWkKfViLu&!(Z$ErcAfy-;4WF*-oTTq!@>DR-0nO;u9}D29fSk7 z<8~DR-0onssv_l~ow(gW6tr%CHI=BnP~7Lma+#f_nEOQkTu((5GgqW7=St&U`2=u# zn7L4XaLu}g+Z)0US~YHO9k^__OM{78>!_JY`>-QhOEHIUWCsWcf!WlZPpVeT3fx}L zlNG~i)+yW`F=~F=jN9AA0=JuKuw4)fb^*6{8P;l@!tK>iFDg3Y_EZQ_Tfi*n*d}$c z%-#fhXO)U5X0AwEI_svt?%?*`glw2&xZM!uZHvO~jY5Ck?b2YP)+lPlk4G%U^cvY# z{hCeP(?wO;*s47@s28`BT`L4|`whnaO5Dr!8n>5YyHWBbx2G~!qqb39)pVi_=LoPA zbB-JD+9x2Qz!m$5O#h18Io!+%;C9m?HphG0!f|`u&>Og28oZ2J+ETYK45F(9Sc)NI zOA}a~y35AW_1>?1+)h%x3E=ko8Q>lLI(^6ObvXYPwOc$`IL*?hPi#(GYW1Rae)ifg z+}>+s{qzgB*NO#h=eY1DfZJ=0yEpT@)ri|`Mcl^iskN(7tJRVF4i+oIBKG&0*Z4ix zJjmCIE#*uJq?7u0vi%woPc}~X;q_$#xSfo85Wwx1M-#cEB7obgWSXVhrNPUnr7czZ zqRJ~;vLwJ#%#sOPN)x~pg$d(!jtJklz3?a_$5sg7_QF|b?Do`Ji5iP(g#))TSkBeR zQp`DSyvu|Dt}wy4RtRo4ljIuS0EOfBpn>b7*|@z}9C3R9{T7S<(0ANk6fcGE6Tt2J zd@lU8h})$-60%v;(v}NNy}N|X(Xq^Kj+6pV5Wp2Dpef#h+wXhG!0n0wa^Li*1_!s7 zL0!u2skO7IJD*S}6U1!)EUo_c>zhw1If>3ao3ZK&*?3PH7QM#pcT67KZZUT5m^tOR z;dX1bxc!bJ6t`QCqdR7iEkoRH%k#IW-QqcrJFSwC&7zjJ$iF-9;!lML%&jhu@)%cR zSdb|MoMQC^maa&vxVS>kaIzLYO|*haL8WJ0yTB4iV{g!0pFY)RFXF4sP!wj@|bH zw;P4HlG~-VoNyV1?94$##Qt&K^!(}#E}=FI3RQ0rz!h6$a<=34GpfuX?4o?!9xh~e zZZK}Qh<-h{r`B$raLIOy?oh~_z|RFBdEz%f(Z!pI#d> z&0KfSX3q`(^*x9JR~)+nw|6~Mar^NQ=sE%7cOSQ(J*MOKu7@^mk1w~gL%Wm2#_eYl zpn=<8O&ykHxNW1bd>%uC2Z9ym{K{%xlprv5MTzozEEBhPGQHVKPTamlhV6j};P(7r zwRHQ?S}u#!nNM=;nM^Kp++Y+#V}l zv=#yofPjVoZr4y^9|%AI0|8D(^ zJN)_gTXs%A2J`t>XruxEjz3$q%l6blX~6hnQ2X`VrUVGwhd_=i(jZN`FdM3`254L{ z?jsF2svWmK)S7~Y+m90FFr(N30?`P()T)>V;`X+RkQMdg>H6+O`mrXTJ9SA(A_vx; z!VmxS#RNW@9CGu7{oN3_cL4yvw3n2I3K0fFml-Jhd1 zX-7Lq$J#Gl5d5q?6(yqhY(QV@?YO;zaYq**P?`X4FHP96{B$Us9nMUC9Z$PH4~Vnl zIOzcw+$vXHOiQ8|3#X8A^=EuW|Pz0BKjyWxS7 zq9D*Q0o)!axaJGpi^J&N!h5+?`D_LY@60?QaEU;g0m_;9=g2brb#LLl-28LVo$)lk zi+MY44|E`=sSs#I0Jpayf41J?GV$WbWxi!)+FU+WK6;^8`M)%)Im@3)ArOLq<*g~Z z!WpN{pKI^s=btlI{FZ5Z{1J`YLyRmM34yi*aC=++Cu+y-C!p~b2;7YTZjTc2v`8ZV zew>W#oGXoM8uG;5$FqFp5j|gk~DtW23|t| z0*3^WE3${`1y{_PB(BJ)-NF@reg&Q9KaJ$dJORFHTLjbq$z;XB|-0mOBe zpO!sZEs%{6fI!xg$Z}+Dy5jKK=qMK9pUPAXZJjH$$Emn$GD@}nT6sq9X1pf;+>8Zo zkN<%PjCUgfIm_L+-9=*Hb{q=<2pkf??T3h*?Vx>B=5v}oJsxe&$u;x#=VLsTODKES zaA!!>N2_$+G3^nrApn6@0_npnsv&Rdit&yYX_9&gW%yp9)h^68YL8Y??~}pp^N7!m z6#NPS2*`5x&*2BR2hxQc<23P-1+-$mC;D!Wnd$^zdfe2s zf6L-nyEJlH`_2|^9&UGSr*QrRfg2J~O`Ep|ltu_U`-m$pHef4cij$G3^LE_66?C>k z00J)p7uCAsZOxx>`zsLo7r0%|iajB4TLQQ}TMqO-jy zv}I=2WLC*&PNsJDQQcLA+Z~MS)#$VFRs?W+xNtLX4;L~T41xLtaC?2`7i%1D1wXjG zbJ$_E7R?)X_Ib?PWoCZ10jsT&joSO$^UvV6YGgYE`X-T@ytaY)VlHEZ6!`oY+BfXZ88_R;o8&IQKD zA1RAvHwfIBz+(l~+7*ISc}lK7xF}tr?ore=8LbI%I}05UxG@2>35UDXvJQf{JquUX z&Z>F)+IQ-$*7ET=udl~rpI7%x8?^@)nJ^qZk~hu6mEB2e_{zN6X+M90zTh~rPUB4FqW++HDb9yb>$ z?^oGA;o3W}?oQy93G>)ZiW=9+hw9S8zFaaGr}VkyRA5UL5a@}(!xhTe;I1pyN9)l9 ze*Ilr?J;r1SJd@(Nj%)%)99lw5GY3gx0hpEqGa4&f+}S~pg#h*JyuL{d#rfTS_rfv zfZJP*w0qXN@`gt2Fx@F5U%! z+Y(5FH)E)tc13#Q;^Xj-`)baP`iz!8tN8OX@OnFLzwJ<^;}FOqfZMZh`Pq3m;d&me zO1)T{wPP?jIk&f}3q4q<~Ux|p|TJRSE0uJJ9neKlR#2!TihaJ%iKx*OYGH)q(w)H&8k}4uikRqlKZN3SCa*L?jE4Qz~TW|^Y zc}?)?iXN_|4%~42O$H|2guq1txcwr)CU3W1oY`4se;tV5FRW{SToV}&Tkl$$fTdCh z^h6*{1=C5f#mWB8CDfIXYh8P~|7W~@Iz7AZW!|0=&)TlIeI+w{8sqfko&>DzircG+ zLQr42msM7-E_`p@Q2Uk1z_r?|L8c-IbU@&eE7INUie>gKP{}hVb#YL8U-S0oB;-=O zM9bIgircp`ne7npM&Obw4(vKzAz6Qo+jH~bQoL~c^AMSfo&6yYj=&{X;P&dSxD+qk zUOisngg}G4A#lkRxV@n(+r`m`7*{Xd! zlnl)qA3Mw=d~*rA*nhk>XPY@L`qgmc)~{OWitz(4Nf)*;(z;@7fI<{~uD8FLE8~^a zn!d(V#;ILiY2$_4?U);ePg@jj4;{YLc%>_FyW3cg!!Ui;Njq|F`_jAtw%xgHX)hH_ z&&bAeKslhdNv+$)qEN@157kQz=zZS44EiNp7Gt(~1C~tKa)JPEKLIV)Tbd8mOAUzZ z_Giam>mHY0{2abzZ|`SZvAHxKdo?%}CBMc>by__ zR3EZqZ)>KAxP5#0Xi~zX+n=X?k0+JMR9}+`vwf~T%|?TceXbCA1a}s-)nB<8^4b`` z5~k^UJ-Yqr3YmvzWYjdx4sN(*-mccKW=-Z9FWf#IS)IMk7>T$Yw{H=6x&pT^{oroi zZvFIlameE{R+0u=8N&AJ1hUS>2%HB3zUJ+t)iY)Y)4BTU>oo10TY`DJ-Mk&QSJ!M4 zZ{YSO*soNI+po~8|6b(g3%|3Yj0bSI8XhxbTyl8E4bE_eWr6nJGuCB41-6)nwKO^`H`m%+A#-s1D)}ZGaeEW&S1PSALT9enYHd+pF>n8fg8uYpYu+xG zQ1yje*mH8WwSI`%N+-745;*>#@hi$3lL6cIP}(5@7j93t$Gmc*^|u3V4;NG19xG%iUPaGwJ|^T#x4-UFEqMrjw_(`;WZQ&*W&)OiHNWMU6RtJ{ z+PmHS2I+n03@41t+b_)9aeEWBHm?-7HxEH(18_U@_V*-td01Rbo3j&UEa7n_PF^po zP;8M(V}+^L*2bR)cYS7Ou8CTLT%msC#a-59Y~v-R;dXPR6bOMr1aNyHu!V|kJ8xG`v)3=7uAb&7 zPXuIcKVG>jM3rJ8&>w+@ZdXsUzqPIyR{|9$0?gYdmq%BXyRi|s_h$fl)GGnp9xJlU z+hfIx)k-{JDBVxPACC>y4TJa=Z2cgRIG@kuD*#<%R@8xINny2e)3ZCX?ab z>7Y=q$z;b%ynPTd*4s~pY#KgZ---Zkj}>m$^Y-!cW#a!Vq;fH3_>kkF+sDGQN@iyW z+?jxPx95*&g(#S}=jrz~Kn~{ZxSeGa2)H4D+h5`e@uKm(eSdb1+ue-o5Xnpk-{JDB@`#EmB3j%i|fZJn5 zys_J5iA=GQmW5P%e|!GwTvjvK83LUVXzBKJ>8*q-4$9;{nKJjuJh5ku5!{}Ii=82$ zB!JtMpq%U$V%{!~i`3$hXN4&b@yy#luc~Va^RBxR2;p|EE7G&VL;}wV#_~dxD>!DIIGYuT+})06H$V$d{OpkMJF)+~d#Ca{YCd*P4uak*7qLDH8$_31kVj zLxII=hQ@rF~%~7mG*Km6Ys+0)< za{{>C9BI)4aeGm`6b^xI2;lZup=|E}wC|PM z0B-jX1=;`s{{(Qm{}@eM=)~>P zq=HA}j{`9aG7x~k83G>Mp4?UNH2-;OFI9|nF>gPUD$_#@ZlBTMR|t3`fZM%AWWPPk z+xPkKR|r5L5y0)SGQp4AAKdg`il@9#B6r0+A1oFtG_)21t_b*X`+#K})RwnIjw`oA zu^$&tS(BLox$rA)|46M1Bq;|1rUY>Nr}n*%O?UHl$;R=BeD%3N&!+*$3J0x)fLj8- z+@20wPgk7R#W-D;w{Ku)-o8cV)b?k*F5Sh7+fCrJpg#(fl`2)riq3c)KVJ1<^4S9*clIpRRT8G#)?O#f6#5mPw0eM)2U zdK#Cl*R|t?+b0344WFtZuts1@4zukI(iOL_#j8OePB-Hv{Pff>`So;Byb%Hr=$L?k zD|%Ry31diucyTy@00eG8z`zx_{RVl`@$`nSK>z~l1aLcUhX4d1&>sQZ-d{}V5d?(f&c^{fZNFd2tWV={Smz{}!0qG!1Rwx`{s`dq{$fgxAOHaf;C6BV z0uX>ee*|!Qe=(&;5P$##a635w0SG{#KLWVDznIb^2tWV=xSbq;00bb=9|7FnUrgx{ z1Rwwb+)fTa00I!`j{t7(FQ)Ve0uX=zZYKvI009W}M*z3?7gKr!0SG_$5y0*J#graF00I!e?c@LiAOL~>2;lbqVoHx7009W# zc5(m$5P(2`1X{ZN&(H6_zlNVb{|rCBfAC{ZKp-d1KqkTB5}3LoZZGP#9Jkx+v~C0s z+K<~^g@eYNBY@lUxixTmvdt@4!_@t2`1#G$-TchupU0U|IzQqRDSv<*96BkmG=bOT z(3ecpMSsQ=WG{v;~s&u%>J6U zrx&cflWhJ8EUhkQ_lQCrINZJ`Mm0vih2ZuMf_Tp^;Pz{A$L)T#d@Zt%e&Kc#j1*Fz z0B*m=9Jk~4&Iw!_Ai!xx0JmRD-Fj}HM`~PbXQlmG__X6rX795lclni7_d4*YC6@rM z$R)P6KW^9RagAP>_u}@@;k#Soal1vtE4f{Q^`1A5ce8WJ+ai1!2ba}__cVL2+!CsT zzz%^AS4?iD+j$FrS|fnlGxWFyFwEO=d+6}pr}4PmDAvW@K0m!0?@(o#-6(w7N0wE? zr;V+eM7Ytec&}?R7X) z%LxLw{RFh_x0H3e1Z#E)mD8*3SZoT}{4HCCH?N2SA)q9%>I!tBq_?&kZm(z5HU4dC z$L)S%K}!+=+-{u-rQE(ez2f?*b?mMl7nX)kTfDWC_Vi5vSCok_Zog{CGI6QVD%>77 zc0IKmx0i_~Zm(g{GO@eba@_7SE_Z7cZZ8w@B5s#paS63dysr9u*(x#oJ6Q5D!0|aV z%iY)lff598MG2~7nYi8Fmc@cqq^Y<)R=hfEEp9IsP~2Wbn8o5{-&))rC|Lb96}K0Q zsj=H7QnO%jdrYy|nR%XtcmFZ!uZ6gxa7=N#nIQ{Ds$e^Dd)(N?Z8>f)96L+5&t~jA z#kX+mjBU^2OssgtZSB(PxS~Kbal5f03&f~W3vqkg*u`o&Zm$wA8@Dfm#WH)9@EL2L z#hHjvi`C|jvwOZ+^M~;eo+JZqFUK}s$+&$oG~$IXMB{OLtuPt5{Ucc8_vP{Qwp!sU z;vW`gLWj?70c z8wgVu8W#=2?SX>ju&KDcT~Khl3x&2zfP?PicDJDk(JQK04P)WG z9NS(?7E#Px!41-NV~yLJ3A1jXFLe{Q2MU&xrsDS2fzY}=MT!G)>v&yK^p(bMEzZdH zE5-8OE(y#;!85^HL>afECKUnP-eP#FLgTPuxZOceRBr!>)c81k4#W;(*I?i;7iaiD z(>*g`wbvqw^fP_D0L$#Ftjcf1?F|fBKCGoWh1=uCu0qRkdj-hqDsX!#4XQ&BsR6jX z%dlE?3b$L4v?vF+M^dXr#4q(1w>J-g=LX<*PtiGW`+W6`@2)NQ-L;pjTP>+X?@Pm{ zjn&#fMGgswE8ffOT$O7t3fvyUsD8#WZub)lS1rNquEOzK)V_Uu`3TndIDKx9aTdO2 z2d3rJof~Fun;V?ny9_;UZ>C3=`JknN+e3%Xw(+>#mZwo^>u#S1>+3t+q{??-8DZBd z)N^%dab_m@w9#|3X`3wp&hBk_+Leaed(f<1K4j3q?M<+Is}#3;i^#J*xIM#WPiVYl zAb{J+hanB7x5sc*Zu|0O^=w&j`!ZN8#Z-?=q{GK-S%!v@?qr3uvTAE&<%0ODy94xIIYJaC?|p zvHy(1?fzqQy@j~_I>Ra@3~nb_RZ!pJAi~0X-?_xueVq8>_FE{oT0-LXYN(r3gxi~7 zKUL}A_V@L#@gu{03iT98juCGHEY9?oLY&=4iz#k@8!1}s{I(po_m@k!Jz7jBZht<= zH(D3`D(=oCS)A!9`Ygo+j3#d9&`^W`ZVzaK%}l`U0i%iAH}g4QG#&K?xA&AkxIJJr zN4Ikc_4xs=fDv@$^CdkN-j_^bZDE-`R=g&y#qF-$IEhrqcH;K%5#$L2Q73-5J)|?E z7z4LQiPTm*nYV9|ald_VJCFKtAEv+uAQs-^W*5usabx#e)Q;Puo^!!xb-0mb0 z*3H1}H`1wf@?1iP+nt01w>t@hbu)1LB|%w-<93Y^!~gv?|B;P=twZ2rDMkXpSFrW- zd@bCLMp_cU?R6Z!RSRz4A`^c*Zf|L}`1xZ%kHwiLX^@s;K2Dmx_?jMrd~OoWwMub& zPtgq77u>!!FpGy0w>QCFu~OV#d=OQPX5hYT86JA(1m;#B*VtvHUG94{uZsfP5y0)_ zvkL;ay_y7Ydo|QeE5hwA%+@pqToAzR)p7v0S3}*jBHZr6Y)x~(5rL)Q(-!zx5fHJj zUO#0)#)`0;a&WsNv$@HNW=wE<=^ViAr3t$!AGbI2n427MM?eh!F}M6Rd>J3OE)rN> zieb8bk*edj<94LsjsR{iVGP_}f~w;(al1RSInI`PtXQ0}O@oi6nCF89n6%qMc2*j0 zujeagp?BSJ+-{pKxZRd#gwk-kYsE!Kp&|fryKU%kyDiTMrQ!A>YKjng*B!_0wkd?$ zZFxp04Y#{iT!a)V2v7{q4Ko*WK&(C!yDYP_(teR@gtz1Nf@+G80Is`_+pnh(Zokej zW(m06wcKJRl_k>I;tUhc+?4qH@AvS-_ips_r5noeh1->&*sTo#+@34*+5WhF2IMxs z;`TPmx=n)F;2jLlD)EJxXQIbh&z;5{Znu%oopPoDG2DJJ!EpOUfC1l*+Z&iFV4gIl zgxfFX3~s*&FyPy9dt++_%o&J500RCA;CBBpqJ<2&}+x^Fg7D5055XdEf+jEJrKLj8E0sjPWyZ;!`LI^+r i0=WcmdoD5dhX4d1;GY0)_a7r#2muH{AeVr+{r>~Xm3~wJ diff --git a/WRSD2/app/src/main/res/drawable/glosnik.png b/WRSD2/app/src/main/res/drawable/glosnik.png index 08b496013badb63888a1c362bf9388ee5b377aa5..95db9ce6ad24ea6e707ff4564de12921d443e2cc 100644 GIT binary patch literal 24495 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 literal 44193 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 E0ng_3Bme*a diff --git a/WRSD2/app/src/main/res/layout/activity_add_device.xml b/WRSD2/app/src/main/res/layout/activity_add_device.xml new file mode 100644 index 0000000..7d8ac52 --- /dev/null +++ b/WRSD2/app/src/main/res/layout/activity_add_device.xml @@ -0,0 +1,56 @@ + + + + + + + + +