diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..7dabbd5
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+MyLoginApp
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8..b589d56 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..15f7b87
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 5cd135a..ae388c2 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,16 +4,16 @@
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 0380d8d..958a5be 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -26,5 +26,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index a740c72..b31a4ac 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,11 +1,10 @@
-
-
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 797acea..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 522d017..8b13789 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1 @@
-# MyLoginApp
-Simple Login Design for android application
-
-Full Video Tutorial is available in Youtube Link : https://youtu.be/sOJRJtM_iu0
-
-
diff --git a/app/build.gradle b/app/build.gradle
index 32bed95..593815a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,15 +1,18 @@
+import org.gradle.process.internal.JavaExecAction
+
plugins {
id 'com.android.application'
+
}
android {
- compileSdkVersion 30
- buildToolsVersion "30.0.3"
+ compileSdk 34
+ buildToolsVersion '34.0.0'
defaultConfig {
applicationId "com.example.myloginapp"
- minSdkVersion 22
- targetSdkVersion 30
+ minSdk 30
+ targetSdk 30
versionCode 1
versionName "1.0"
@@ -26,8 +29,13 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+ namespace 'com.example.myloginapp'
}
+apply plugin: 'com.android.application'
+apply plugin: 'com.google.gms.google-services'
+
+
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
@@ -36,4 +44,15 @@ dependencies {
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+
+ implementation platform('com.google.firebase:firebase-bom:27.1.0')
+ implementation 'com.google.firebase:firebase-analytics'
+ implementation 'com.google.firebase:firebase-auth'
+ implementation 'com.google.firebase:firebase-firestore'
+
+ implementation 'com.github.denzcoskun:ImageSlideshow:0.1.0'
+
+ implementation 'com.github.bumptech.glide:glide:4.12.0'
+ annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
+
}
\ No newline at end of file
diff --git a/app/google-services.json b/app/google-services.json
new file mode 100644
index 0000000..8687f58
--- /dev/null
+++ b/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "293925004758",
+ "project_id": "e-cycle-tech-92375",
+ "storage_bucket": "e-cycle-tech-92375.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:293925004758:android:40dc772b9d7583d1b47077",
+ "android_client_info": {
+ "package_name": "com.example.myloginapp"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyCAuQrQPNY9Sy8UpTizdoPXWX40xI4v__g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 48d7ee9..0cfe8b1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..5e2da26
Binary files /dev/null and b/app/src/main/ic_launcher-playstore.png differ
diff --git a/app/src/main/java/color/WHITE.java b/app/src/main/java/color/WHITE.java
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/app/src/main/java/color/WHITE.java
@@ -0,0 +1 @@
+
diff --git a/app/src/main/java/com/example/myloginapp/MainActivity.java b/app/src/main/java/com/example/myloginapp/MainActivity.java
deleted file mode 100644
index b6821bf..0000000
--- a/app/src/main/java/com/example/myloginapp/MainActivity.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.example.myloginapp;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.google.android.material.button.MaterialButton;
-
-public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
-
- TextView username =(TextView) findViewById(R.id.username);
- TextView password =(TextView) findViewById(R.id.password);
-
- MaterialButton loginbtn = (MaterialButton) findViewById(R.id.loginbtn);
-
- //admin and admin
-
- loginbtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
- //correct
- Toast.makeText(MainActivity.this,"LOGIN SUCCESSFUL",Toast.LENGTH_SHORT).show();
- }else
- //incorrect
- Toast.makeText(MainActivity.this,"LOGIN FAILED !!!",Toast.LENGTH_SHORT).show();
- }
- });
-
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/AddAddressActivity.java b/app/src/main/java/com/example/myloginapp/activities/AddAddressActivity.java
new file mode 100644
index 0000000..e6c329f
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/AddAddressActivity.java
@@ -0,0 +1,110 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.example.myloginapp.R;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.firestore.DocumentReference;
+import com.google.firebase.firestore.FirebaseFirestore;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class AddAddressActivity extends AppCompatActivity {
+
+ EditText name,address,city,postalCode,phoneNumber;
+ Toolbar toolbar;
+ Button addAddressBtn;
+
+ FirebaseFirestore firestore;
+ FirebaseAuth auth;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_add_address);
+
+ toolbar=findViewById(R.id.add_address_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ auth = FirebaseAuth.getInstance();
+ firestore = FirebaseFirestore.getInstance();
+
+ name= findViewById(R.id.ad_name);
+ address = findViewById(R.id.ad_address);
+ city = findViewById(R.id.ad_city);
+ phoneNumber = findViewById(R.id.ad_phone);
+ postalCode = findViewById(R.id.ad_code);
+ addAddressBtn = findViewById(R.id.ad_add_address);
+
+ addAddressBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ String userName = name.getText().toString();
+ String userCity = city.getText().toString();
+ String userAddress = address.getText().toString();
+ String userCode = postalCode.getText().toString();
+ String userNumber = phoneNumber.getText().toString();
+
+ String final_address = "";
+
+ if (!userName.isEmpty()){
+ final_address+=userName; }
+
+ if (!userCity.isEmpty()){
+ final_address+=userCity; }
+
+ if (!userAddress.isEmpty()){
+ final_address+=userAddress; }
+
+ if (!userCode.isEmpty()){
+ final_address+=userCode; }
+
+ if (!userNumber.isEmpty()){
+ final_address+=userNumber;
+ }
+ if (!userName.isEmpty() && !userCity.isEmpty() && !userAddress.isEmpty() && !userCode.isEmpty() && !userNumber.isEmpty()){
+
+ Map map = new HashMap<>();
+ map.put("userAddress", final_address);
+
+ firestore.collection("CurrentUser").document (auth.getCurrentUser().getUid())
+ .collection("Address").add(map).addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()){
+ Toast.makeText(AddAddressActivity.this, "Address Added", Toast.LENGTH_SHORT).show();
+ startActivity(new Intent(AddAddressActivity.this,DetailedActivity.class));
+ finish();
+ }
+ }
+ });
+
+ }else{
+ Toast.makeText(AddAddressActivity.this, "Kindly Fill All Field", Toast.LENGTH_SHORT).show();
+ }
+
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/AddressActivity.java b/app/src/main/java/com/example/myloginapp/activities/AddressActivity.java
new file mode 100644
index 0000000..da73fff
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/AddressActivity.java
@@ -0,0 +1,125 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.adapters.AddressAdapter;
+import com.example.myloginapp.models.AddressModel;
+import com.example.myloginapp.models.MyCartModel;
+import com.example.myloginapp.models.NewProductsModel;
+import com.example.myloginapp.models.PopularProductsModel;
+import com.example.myloginapp.models.ShowAllModel;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.firestore.DocumentSnapshot;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.QuerySnapshot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AddressActivity extends AppCompatActivity implements AddressAdapter.SelectedAddress {
+
+ Button addAddress;
+ RecyclerView recyclerView;
+ private List addressModelList;
+ private AddressAdapter addressAdapter;
+ FirebaseFirestore firestore;
+ FirebaseAuth auth;
+ Button paymentBtn;
+ Button desconto_btn;
+ Toolbar toolbar;
+ String mAddress = "";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_address);
+
+ toolbar= findViewById(R.id.address_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ //get data from detailed activity
+ Object obj = getIntent().getSerializableExtra("item");
+
+ firestore = FirebaseFirestore.getInstance();
+ auth = FirebaseAuth.getInstance();
+
+ recyclerView = findViewById(R.id.address_recycler);
+ paymentBtn = findViewById(R.id.payment_btn);
+ addAddress = findViewById(R.id.add_address_btn);
+
+ recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
+ addressModelList = new ArrayList<>();
+ addressAdapter = new AddressAdapter(getApplicationContext(),addressModelList, this);
+ recyclerView.setAdapter(addressAdapter);
+
+ firestore.collection("CurrentUser").document(auth.getCurrentUser().getUid())
+ .collection("Address").get().addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ for (DocumentSnapshot doc : task.getResult().getDocuments()) {
+
+ AddressModel addressModel = doc.toObject(AddressModel.class);
+ addressModelList.add(addressModel);
+ addressAdapter.notifyDataSetChanged();
+ }
+ }
+ }
+ });
+
+
+ paymentBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ double amount = 0.0;
+ if (obj instanceof NewProductsModel){
+ NewProductsModel newProductsModel = (NewProductsModel) obj;
+ amount = newProductsModel.getPrice();
+ }if (obj instanceof PopularProductsModel){
+ PopularProductsModel popularProductsModel = (PopularProductsModel) obj;
+ amount = popularProductsModel.getPrice();
+ }if (obj instanceof ShowAllModel){
+ ShowAllModel showAllModel = (ShowAllModel) obj; amount = showAllModel.getPrice();
+ }
+ Intent intent = new Intent(AddressActivity.this, PaymentActivity.class);
+ intent.putExtra("amount", amount);
+ startActivity(intent);
+ }
+ });
+
+ addAddress.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(AddressActivity.this, AddAddressActivity.class));
+
+ }
+ });
+ }
+
+ @Override
+ public void setAddress(String address) {
+
+ mAddress = address;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/CartActivity.java b/app/src/main/java/com/example/myloginapp/activities/CartActivity.java
new file mode 100644
index 0000000..ffe5d18
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/CartActivity.java
@@ -0,0 +1,96 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.adapters.MyCartAdapter;
+import com.example.myloginapp.models.MyCartModel;
+import com.example.myloginapp.models.ShowAllModel;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.firestore.DocumentSnapshot;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.QuerySnapshot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CartActivity extends AppCompatActivity {
+
+ int overAllTotalAmount;
+ TextView overAllAmount;
+ Toolbar toolbar;
+ RecyclerView recyclerView;
+ List cartModelList;
+ MyCartAdapter cartAdapter;
+ private FirebaseAuth auth;
+ private FirebaseFirestore firestore;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_cart);
+
+ auth= FirebaseAuth.getInstance();
+ firestore= FirebaseFirestore.getInstance();
+
+ toolbar= findViewById(R.id.my_cart_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ //get data from my cart adapter
+ LocalBroadcastManager.getInstance(this)
+ .registerReceiver(mMessageReceiver, new IntentFilter("MyTotalAmount"));
+
+ overAllAmount = findViewById(R.id.textView3);
+ recyclerView = findViewById(R.id.cart_rec);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ cartModelList = new ArrayList<>();
+ cartAdapter = new MyCartAdapter(this, cartModelList);
+ recyclerView.setAdapter(cartAdapter);
+ firestore.collection( "AddToCart").document(auth.getCurrentUser().getUid())
+ .collection("User").get().addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+
+ if (task.isSuccessful()) {
+ for (DocumentSnapshot doc : task.getResult().getDocuments()) {
+
+ MyCartModel myCartModel = doc.toObject(MyCartModel.class);
+ cartModelList.add(myCartModel);
+ cartAdapter.notifyDataSetChanged();
+ }
+ }
+ }
+ });
+ }
+ public BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+
+ int totalBill = intent.getIntExtra("totalAmount", 0);
+ overAllAmount.setText("Total Amount :"+totalBill+"$");
+ }
+ };
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/DescontoActivity.java b/app/src/main/java/com/example/myloginapp/activities/DescontoActivity.java
new file mode 100644
index 0000000..ed6cc1c
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/DescontoActivity.java
@@ -0,0 +1,94 @@
+package com.example.myloginapp.activities;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.example.myloginapp.R;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DescontoActivity extends AppCompatActivity {
+
+ private EditText editTextGrams;
+ private Spinner spinnerMineralType;
+ private Button buttonCalculateDiscount;
+ private TextView textViewDiscountResult;
+
+ private Map mineralDiscountMap;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_desconto);
+
+ editTextGrams = findViewById(R.id.editTextGrams);
+ spinnerMineralType = findViewById(R.id.spinnerMineralType);
+ buttonCalculateDiscount = findViewById(R.id.buttonCalculateDiscount);
+ textViewDiscountResult = findViewById(R.id.textViewDiscountResult);
+
+ // Populate the spinner with mineral types
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(
+ this, R.array.mineral_types, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinnerMineralType.setAdapter(adapter);
+
+ // Initialize the mineral discount map
+ initializeMineralDiscountMap();
+
+ // Set a listener for the Calculate Discount button
+ buttonCalculateDiscount.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ calculateDiscount();
+ }
+ });
+ }
+
+ private void initializeMineralDiscountMap() {
+ mineralDiscountMap = new HashMap<>();
+ mineralDiscountMap.put("SILICIO", 0.2);
+ mineralDiscountMap.put("ALUMINIO", 5.0);
+ mineralDiscountMap.put("COBRE", 0.3);
+ mineralDiscountMap.put("OURO", 1.0);
+ mineralDiscountMap.put("PRATA", 0.2);
+ }
+
+ private void calculateDiscount() {
+ // Get user input
+ String gramsString = editTextGrams.getText().toString();
+ String mineralType = spinnerMineralType.getSelectedItem().toString();
+
+ if (!gramsString.isEmpty()) {
+ double grams = Double.parseDouble(gramsString);
+
+ if (mineralDiscountMap.containsKey(mineralType)) {
+ double discountRate = mineralDiscountMap.get(mineralType);
+ double discount = grams / discountRate;
+
+ // Display the discount result
+ String resultMessage = String.format("Desconto: %.2f%%", discount);
+ textViewDiscountResult.setText(resultMessage);
+
+ // Generate and display a discount coupon
+ String couponMessage = String.format("Cupom de desconto: %s%.2f",
+ mineralType.substring(0, 3), discount);
+ // You may want to save this coupon for later use or display it to the user.
+ // For simplicity, we are just displaying it in the TextView.
+ textViewDiscountResult.append("\n" + couponMessage);
+ } else {
+ textViewDiscountResult.setText("Tipo de mineral inválido.");
+ }
+ } else {
+ textViewDiscountResult.setText("Digite a quantidade em gramas.");
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/DetailedActivity.java b/app/src/main/java/com/example/myloginapp/activities/DetailedActivity.java
new file mode 100644
index 0000000..4791bec
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/DetailedActivity.java
@@ -0,0 +1,217 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.bumptech.glide.Glide;
+import com.example.myloginapp.R;
+import com.example.myloginapp.adapters.NewProductsAdapter;
+import com.example.myloginapp.models.NewProductsModel;
+import com.example.myloginapp.models.PopularProductsModel;
+import com.example.myloginapp.models.ShowAllModel;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.firestore.DocumentReference;
+import com.google.firebase.firestore.FirebaseFirestore;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.HashMap;
+
+public class DetailedActivity extends AppCompatActivity {
+
+ ImageView detailedImg;
+ TextView rating,name,description,price,quantity;
+ Button addToCart,buyNow;
+ ImageView addItems,removeItems;
+
+ Toolbar toolbar;
+
+ int totalQuantity = 1;
+ int totalPrice = 0;
+
+ NewProductsModel newProductsModel = null;
+
+ PopularProductsModel popularProductsModel = null;
+
+ ShowAllModel showAllModel = null;
+
+FirebaseAuth auth;
+ private FirebaseFirestore firestore;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_detailed);
+
+ toolbar = findViewById(R.id.detailed_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ firestore = FirebaseFirestore.getInstance();
+ auth = FirebaseAuth.getInstance();
+ final Object obj = getIntent().getSerializableExtra("detailed");
+
+ if (obj instanceof NewProductsModel){
+ newProductsModel = (NewProductsModel) obj;
+ }else if (obj instanceof PopularProductsModel) {
+ popularProductsModel = (PopularProductsModel) obj;
+ }else if (obj instanceof ShowAllModel) {
+ showAllModel = (ShowAllModel) obj;
+ }
+
+
+ detailedImg = findViewById(R.id.detailed_img);
+ quantity = findViewById(R.id.quantity);
+ name = findViewById(R.id.detailed_name);
+ rating = findViewById(R.id.rating);
+ description = findViewById(R.id.detailed_desc);
+ price = findViewById(R.id.detailed_price);
+
+ addToCart = findViewById(R.id.add_to_cart);
+ buyNow = findViewById(R.id.buy_now);
+
+ addItems = findViewById(R.id.add_item);
+ removeItems = findViewById(R.id.remove_item);
+
+ //new products
+ if (newProductsModel != null) {
+ Glide.with(getApplicationContext()).load(newProductsModel.getImg_url()).into(detailedImg);
+ name.setText(newProductsModel.getName());
+ rating.setText(newProductsModel.getRating());
+ description.setText(newProductsModel.getDescription());
+ price.setText(String.valueOf(newProductsModel.getPrice()));
+ name.setText(newProductsModel.getName());
+
+ totalPrice = newProductsModel.getPrice() * totalQuantity;
+ }
+ //Popular products
+ if (popularProductsModel != null) {
+ Glide.with(getApplicationContext()).load(popularProductsModel.getImg_url()).into(detailedImg);
+ name.setText(popularProductsModel.getName());
+ rating.setText(popularProductsModel.getRating());
+ description.setText(popularProductsModel.getDescription());
+ price.setText(String.valueOf(popularProductsModel.getPrice()));
+ name.setText(popularProductsModel.getName());
+
+ totalPrice = popularProductsModel.getPrice() * totalQuantity;
+ }
+ //Show All products
+ if (showAllModel != null) {
+ Glide.with(getApplicationContext()).load(showAllModel.getImg_url()).into(detailedImg);
+ name.setText(showAllModel.getName());
+ rating.setText(showAllModel.getRating());
+ description.setText(showAllModel.getDescription());
+ price.setText(String.valueOf(showAllModel.getPrice()));
+ name.setText(showAllModel.getName());
+
+ totalPrice = showAllModel.getPrice() * totalQuantity;
+ }
+
+ //buy now
+ buyNow.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(DetailedActivity.this,AddressActivity.class);
+
+ if (newProductsModel != null){
+ intent.putExtra("item", newProductsModel);
+ }
+ if (popularProductsModel !=null){
+ intent.putExtra("item", popularProductsModel);
+ }
+ if (showAllModel !=null){
+ intent.putExtra("item", showAllModel);
+ }
+ startActivity(intent);
+ }
+ });
+
+ //add to cart
+ addToCart.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ addtoCart();
+ }
+ });
+
+ addItems.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ if (totalQuantity < 10){
+ totalQuantity++;
+ quantity.setText(String.valueOf(totalQuantity));
+
+ if (newProductsModel != null){
+ totalPrice = newProductsModel.getPrice() * totalQuantity;
+ }
+ if (popularProductsModel != null){
+ totalPrice = popularProductsModel.getPrice() * totalQuantity;
+ }if (showAllModel != null){
+ totalPrice = showAllModel.getPrice() * totalQuantity;
+ }
+ }
+ }
+ });
+
+ removeItems.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ if (totalQuantity > 1){
+ totalQuantity--;
+ quantity.setText(String.valueOf(totalQuantity));
+ }
+ }
+ });
+
+ }
+
+ private void addtoCart() {
+ String saveCurrentTime, saveCurrentDate;
+
+ Calendar calForDate = Calendar.getInstance();
+
+ SimpleDateFormat currentDate = new SimpleDateFormat("MM dd, yyyy");
+ saveCurrentDate = currentDate.format(calForDate.getTime());
+
+ SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm:ss a");
+ saveCurrentTime = currentTime.format(calForDate.getTime());
+
+ final HashMap cartMap = new HashMap<>();
+
+ cartMap.put("productName", name.getText().toString());
+ cartMap.put("productPrice", price.getText().toString());
+ cartMap.put("currentTime", saveCurrentTime);
+ cartMap.put("currentDate", saveCurrentDate);
+ cartMap.put("totalQuantity", quantity.getText().toString());
+ cartMap.put("totalPrice", totalPrice);
+
+ firestore.collection("AddToCart").document(auth.getCurrentUser().getUid())
+ .collection("User").add(cartMap).addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ Toast.makeText(DetailedActivity.this, "Added To A Cart", Toast.LENGTH_SHORT).show();
+ finish();
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/LoginActivity.java b/app/src/main/java/com/example/myloginapp/activities/LoginActivity.java
new file mode 100644
index 0000000..7b0a4ea
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/LoginActivity.java
@@ -0,0 +1,70 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.example.myloginapp.R;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.AuthResult;
+import com.google.firebase.auth.FirebaseAuth;
+
+public class LoginActivity extends AppCompatActivity {
+
+ EditText email, senha;
+ private FirebaseAuth auth;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login);
+
+ auth = FirebaseAuth.getInstance();
+ email = findViewById(R.id.email);
+ senha = findViewById(R.id.senha);
+ }
+
+ public void signIn(View view){
+
+ String userEmail = email.getText().toString();
+ String userSenha = senha.getText().toString();
+
+ if (TextUtils.isEmpty(userEmail)) {
+ Toast.makeText(this,"Enter Email Address!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (TextUtils.isEmpty(userSenha)) {
+ Toast.makeText(this,"Enter Senha!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (userSenha.length() < 6) {
+ Toast.makeText(this,"Senha to shot, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ auth.signInWithEmailAndPassword(userEmail,userSenha)
+ .addOnCompleteListener(LoginActivity.this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+
+ if (task.isSuccessful()){
+
+ Toast.makeText(LoginActivity.this, "Login Sucessful", Toast.LENGTH_SHORT).show();
+ startActivity(new Intent(LoginActivity.this,MainActivity.class));
+ }else{
+ Toast.makeText(LoginActivity.this, "Error"+task.getException(), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+ }
+ public void singUp(View view){
+ startActivity(new Intent(LoginActivity.this,RegistrationActivity.class));
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/MainActivity.java b/app/src/main/java/com/example/myloginapp/activities/MainActivity.java
new file mode 100644
index 0000000..d578b2f
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/MainActivity.java
@@ -0,0 +1,71 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.fragments.HomeFragment;
+import com.google.firebase.auth.FirebaseAuth;
+
+
+public class MainActivity extends AppCompatActivity {
+
+ Fragment homeFragment;
+ FirebaseAuth auth;
+ Toolbar toolbar;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ auth = FirebaseAuth.getInstance();
+
+ toolbar = findViewById(R.id.home_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_baseline_menu_24);
+
+ homeFragment = new HomeFragment();
+ loadFragment(homeFragment);
+
+ }
+
+ private void loadFragment (Fragment homeFragment) {
+
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ transaction.replace(R.id.home_container, homeFragment);
+ transaction.commit();
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.main_menu,menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ int id = item.getItemId();
+
+ if (id == R.id.menu_logout){
+
+ auth.signOut();
+ startActivity(new Intent(MainActivity.this,LoginActivity.class));
+ finish();
+
+ }else if (id == R.id.menu_my_cart){
+ startActivity(new Intent(MainActivity.this,CartActivity.class));
+ }
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/OnBoardingActivity.java b/app/src/main/java/com/example/myloginapp/activities/OnBoardingActivity.java
new file mode 100644
index 0000000..6808ce7
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/OnBoardingActivity.java
@@ -0,0 +1,95 @@
+package com.example.myloginapp.activities;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.viewpager.widget.ViewPager;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Html;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.adapters.SliderAdapter;
+
+public class OnBoardingActivity extends AppCompatActivity {
+
+ ViewPager viewPager;
+ LinearLayout dotsLayout;
+ Button btn;
+ SliderAdapter sliderAdapter;
+ TextView[] dots;
+ Animation animation;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ setContentView(R.layout.activity_on_boarding);
+
+
+ viewPager = findViewById(R.id.slider);
+ dotsLayout = findViewById(R.id.dots);
+ btn = findViewById(R.id.get_started_btn);
+ addDots(0);
+
+ viewPager.addOnPageChangeListener(changeListener);
+
+ sliderAdapter = new SliderAdapter(this);
+ viewPager.setAdapter(sliderAdapter);
+ btn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(OnBoardingActivity.this,LoginActivity.class));
+ finish();
+ }
+ });
+ }
+ private void addDots(int position){
+ dots = new TextView[3];
+ dotsLayout.removeAllViews();
+ for (int i = 0; i < dots.length; i++) {
+ dots[i] = new TextView(this);
+ dots[i].setText(Html.fromHtml("•"));
+ dots[i].setTextSize(35);
+ dotsLayout.addView(dots[i]);
+ }
+ if (dots.length > 0) {
+ dots[position].setTextColor(getResources().getColor(R.color.pink));
+ }
+ }
+ ViewPager.OnPageChangeListener changeListener = new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+
+ addDots(position);
+
+ if (position == 0){
+ btn.setVisibility(View.INVISIBLE);
+ }else if (position == 1){
+ btn.setVisibility(View.INVISIBLE);
+ }else{
+ animation = AnimationUtils.loadAnimation(OnBoardingActivity.this,R.anim.slider_animation);
+ btn.setAnimation(animation);
+ btn.setVisibility(View.VISIBLE);
+ }
+
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ };
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/PaymentActivity.java b/app/src/main/java/com/example/myloginapp/activities/PaymentActivity.java
new file mode 100644
index 0000000..8f9d272
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/PaymentActivity.java
@@ -0,0 +1,117 @@
+package com.example.myloginapp.activities;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
+import android.widget.TextView;
+import com.example.myloginapp.R;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+
+public class PaymentActivity extends AppCompatActivity {
+
+ Toolbar toolbar;
+ TextView subTotal, discount, shipping, total;
+ Spinner couponSpinner;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_payment);
+
+
+ // Toolbar
+ toolbar = findViewById(R.id.payment_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ // Obter o valor do subtotal do Intent
+ double amount = getIntent().getDoubleExtra("amount", 0.0);
+
+ // Referências às TextViews
+ subTotal = findViewById(R.id.sub_total);
+ discount = findViewById(R.id.textView17);
+ shipping = findViewById(R.id.textView18);
+ total = findViewById(R.id.total_amt);
+
+ // Spinner para escolher o tipo de cupom
+ couponSpinner = findViewById(R.id.coupon_spinner);
+
+ // Popula o Spinner com tipos de cupom
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(
+ this, R.array.coupon_types, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ couponSpinner.setAdapter(adapter);
+
+ // Listener para calcular desconto quando um item do Spinner é selecionado
+ couponSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parentView, View selectedItemView, int position, long id) {
+ // Obtém o tipo de cupom selecionado
+ String couponType = parentView.getItemAtPosition(position).toString();
+
+ // Calcula o desconto com base no tipo de cupom
+ double discountAmount = calculateDiscount(amount, couponType);
+
+ // Atualiza as TextViews
+ updateTextViews(amount, discountAmount);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parentView) {
+ // Nada a fazer aqui
+ }
+ });
+
+ // Exibe o valor do subtotal
+ subTotal.setText(String.format("%.2f$", amount));
+ }
+
+ private double calculateDiscount(double subtotal, String couponType) {
+ // Implementa a lógica de cálculo de desconto com base no tipo de cupom
+ switch (couponType) {
+ case "Cupom1":
+ return subtotal * 0.05; // 5% de desconto
+ case "Cupom2":
+ return subtotal * 0.1; // 10% de desconto
+ case "Cupom3":
+ return subtotal * 0.15; // 15% de desconto
+ case "Cupom4":
+ return subtotal * 0.2; // 20% de desconto
+ case "Cupom5":
+ return subtotal * 0.25; // 25% de desconto
+ default:
+ return 0.0; // Sem desconto
+ }
+ }
+
+ private void updateTextViews(double subtotal, double discountAmount) {
+ // Exibe os valores nas TextViews
+ discount.setText(String.format("%.2f$", discountAmount));
+ // Adicione lógica para custos de envio ou outros cálculos se necessário
+ // ...
+ double totalAmount = subtotal - discountAmount; // Subtrai o desconto do subtotal
+ total.setText(String.format("%.2f$", totalAmount));
+ }
+}
+
+
diff --git a/app/src/main/java/com/example/myloginapp/activities/RegistrationActivity.java b/app/src/main/java/com/example/myloginapp/activities/RegistrationActivity.java
new file mode 100644
index 0000000..ea46eca
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/RegistrationActivity.java
@@ -0,0 +1,102 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.example.myloginapp.R;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.AuthResult;
+import com.google.firebase.auth.FirebaseAuth;
+
+public class RegistrationActivity extends AppCompatActivity {
+
+ EditText name, email, senha;
+ private FirebaseAuth auth;
+ SharedPreferences sharedPreferences;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_registration);
+
+ auth = FirebaseAuth.getInstance();
+
+ if (auth.getCurrentUser() != null){
+
+ startActivity(new Intent(RegistrationActivity.this,MainActivity.class));
+ finish();
+ }
+
+ name = findViewById(R.id.name);
+ email = findViewById(R.id.email);
+ senha = findViewById(R.id.senha);
+
+ sharedPreferences = getSharedPreferences("onBoardingScreen", MODE_PRIVATE);
+
+ boolean isFirstTime = sharedPreferences.getBoolean("firstTime",true);
+
+ if (isFirstTime) {
+
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putBoolean("firstTime", false);
+ editor.commit();
+ Intent intent = new Intent(RegistrationActivity.this,OnBoardingActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ }
+ public void signup(View view){
+
+ String userName = name.getText().toString();
+ String userEmail = email.getText().toString();
+ String userSenha = senha.getText().toString();
+
+ if (TextUtils.isEmpty(userName)) {
+ Toast.makeText(this,"Enter Name!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (TextUtils.isEmpty(userEmail)) {
+ Toast.makeText(this,"Enter Email Address!", Toast.LENGTH_SHORT).show();
+ return;
+
+ }
+ if (TextUtils.isEmpty(userSenha)) {
+ Toast.makeText(this,"Enter Senha!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (userSenha.length() < 6) {
+ Toast.makeText(this,"Senha to shot, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ auth.createUserWithEmailAndPassword(userEmail,userSenha)
+ .addOnCompleteListener(RegistrationActivity.this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+
+ if (task.isSuccessful()){
+ Toast.makeText(RegistrationActivity.this, "Successfully Register", Toast.LENGTH_SHORT).show();
+ startActivity(new Intent(RegistrationActivity.this,MainActivity.class));
+ }else{
+ Toast.makeText(RegistrationActivity.this, "Redistration Failed"+task.getException(), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ //startActivity(new Intent(RegistrationActivity.this,MainActivity.class));
+ }
+
+
+ public void singin(View view){
+ startActivity(new Intent(RegistrationActivity.this,LoginActivity.class));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/activities/ShowAllActivity.java b/app/src/main/java/com/example/myloginapp/activities/ShowAllActivity.java
new file mode 100644
index 0000000..37d87b9
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/activities/ShowAllActivity.java
@@ -0,0 +1,96 @@
+package com.example.myloginapp.activities;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.adapters.ShowAllAdapter;
+import com.example.myloginapp.models.ShowAllModel;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.firestore.DocumentSnapshot;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.QuerySnapshot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ShowAllActivity extends AppCompatActivity {
+
+ RecyclerView recyclerView;
+ ShowAllAdapter showAllAdapter;
+ List showAllModelList;
+
+ Toolbar toolbar;
+
+ FirebaseFirestore firestore;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_show_all);
+
+ toolbar = findViewById(R.id.show_all_toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ String type = getIntent().getStringExtra("type");
+
+ firestore =FirebaseFirestore.getInstance();
+ recyclerView = findViewById(R.id.show_all_rec);
+ recyclerView.setLayoutManager(new GridLayoutManager(this,2));
+ showAllModelList = new ArrayList<>();
+ showAllAdapter = new ShowAllAdapter(this,showAllModelList);
+ recyclerView.setAdapter(showAllAdapter);
+
+
+ if (type == null || type.isEmpty()){
+ firestore.collection("ShowAll")
+ .get()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete (@NonNull Task task) {
+ if (task.isSuccessful()) {
+ for (DocumentSnapshot doc : task.getResult().getDocuments()) {
+ ShowAllModel showAllModel = doc.toObject(ShowAllModel.class);
+ showAllModelList.add(showAllModel);
+ showAllAdapter.notifyDataSetChanged();
+ }
+ }
+ }
+ });
+ }
+
+ if (type != null && type.equalsIgnoreCase("celular"));{
+ firestore.collection("ShowAll").whereEqualTo("type","men")
+ .get()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete (@NonNull Task task) {
+
+ if (task.isSuccessful()) {
+ for (DocumentSnapshot doc : task.getResult().getDocuments()) {
+
+ ShowAllModel showAllModel = doc.toObject(ShowAllModel.class);
+ showAllModelList.add(showAllModel);
+ showAllAdapter.notifyDataSetChanged();
+ }
+ }
+ }
+ });
+ }
+ }
+ }
diff --git a/app/src/main/java/com/example/myloginapp/adapters/AddressAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/AddressAdapter.java
new file mode 100644
index 0000000..fa77d42
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/AddressAdapter.java
@@ -0,0 +1,78 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.RadioButton;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.models.AddressModel;
+
+import java.util.List;
+
+public class AddressAdapter extends RecyclerView.Adapter {
+
+ Context context;
+ List addressModelList;
+ SelectedAddress selectedAddress;
+
+ private RadioButton selectedRadioBtn;
+
+ public AddressAdapter(Context context, List addressModelsList, SelectedAddress selectedAddress) {
+ this.context = context;
+ this.addressModelList = addressModelsList;
+ this.selectedAddress = selectedAddress;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.address_item,parent,false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+
+ holder.address.setText(addressModelList.get(position).getUserAddress());
+ holder.radioButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ for(AddressModel address:addressModelList){
+ address.setSelected(false);
+ }
+ addressModelList.get(position).setSelected(true);
+ if(selectedRadioBtn!=null){
+ selectedRadioBtn.setChecked(false);
+ }
+ selectedRadioBtn = (RadioButton) v;
+ selectedRadioBtn.setChecked(true);
+ selectedAddress.setAddress(addressModelList.get(position).getUserAddress());
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return addressModelList.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ TextView address;
+ RadioButton radioButton;
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ address = itemView.findViewById(R.id.address_add);
+ radioButton = itemView.findViewById(R.id.select_address);
+ }
+ }
+
+ public interface SelectedAddress {
+ void setAddress(String address);
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/CategoryAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/CategoryAdapter.java
new file mode 100644
index 0000000..5c5ae14
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/CategoryAdapter.java
@@ -0,0 +1,73 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.example.myloginapp.R;
+import com.example.myloginapp.activities.DescontoActivity;
+import com.example.myloginapp.activities.ShowAllActivity;
+import com.example.myloginapp.models.CategoryModel;
+
+import java.util.List;
+
+public class CategoryAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ private List list;
+
+ public CategoryAdapter(Context context, List list) {
+ this.context = context;
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.category_list,parent,false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+
+ Glide.with(context).load(list.get(position).getImg_url()).into(holder.catImg);
+ holder.catName.setText(list.get(position).getName());
+
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(context, DescontoActivity.class);
+ intent.putExtra("type",list.get(position).getType());
+ context.startActivity(intent);
+ }
+ });
+
+ }
+
+
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView catImg;
+ TextView catName;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ catImg = itemView.findViewById(R.id.cat_img);
+ catName = itemView.findViewById(R.id.cat_name);
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/MyCartAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/MyCartAdapter.java
new file mode 100644
index 0000000..1b88afc
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/MyCartAdapter.java
@@ -0,0 +1,70 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.myloginapp.R;
+import com.example.myloginapp.models.MyCartModel;
+
+import java.util.List;
+
+public class MyCartAdapter extends RecyclerView.Adapter {
+ Context context;
+ List list;
+ int totalAmount = 0;
+
+ public MyCartAdapter(Context context, List list) {
+ this.context = context;
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.my_cart_item, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ holder.date.setText(list.get(position).getCurrentDate());
+ holder.time.setText(list.get(position).getCurrentTime());
+ holder.price.setText(list.get(position).getProductPrice()+"$");
+ holder.name.setText(list.get(position).getProductName());
+ holder.totalPrice.setText(String.valueOf(list.get(position).getTotalPrice()));
+ holder.totalQuantity.setText(list.get(position).getTotalQuantity());
+
+ //Total amount pass to Cart Activity
+ totalAmount = totalAmount + list.get(position).getTotalPrice();
+ Intent intent = new Intent("MyTotalAmount");
+ intent.putExtra("totalAmount", totalAmount);
+
+ LocalBroadcastManager.getInstance(context).sendBroadcast (intent);
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+ TextView name, price, date, time, totalQuantity, totalPrice;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ name = itemView.findViewById(R.id.product_name);
+ price = itemView.findViewById(R.id.product_price);
+ date = itemView.findViewById(R.id.current_date);
+ time = itemView.findViewById(R.id.current_time);
+ totalQuantity = itemView.findViewById(R.id.total_quantity);
+ totalPrice = itemView.findViewById(R.id.total_price);
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/NewProductsAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/NewProductsAdapter.java
new file mode 100644
index 0000000..96d39a9
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/NewProductsAdapter.java
@@ -0,0 +1,73 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.example.myloginapp.R;
+import com.example.myloginapp.activities.DetailedActivity;
+import com.example.myloginapp.models.NewProductsModel;
+
+import java.util.List;
+
+public class NewProductsAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ private List list;
+
+ public NewProductsAdapter(Context context, List list) {
+ this.context = context;
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.new_products,parent,false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+
+ Glide.with(context).load(list.get(position).getImg_url()).into(holder.newImg);
+ holder.newName.setText(list.get(position).getName());
+ holder.newPrice.setText(String.valueOf(list.get(position).getPrice()));
+
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(context, DetailedActivity.class);
+ intent.putExtra("detailed",list.get(position));
+ context.startActivity(intent);
+ }
+ });
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView newImg;
+ TextView newName,newPrice;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ newImg = itemView.findViewById(R.id.new_img);
+ newName = itemView.findViewById(R.id.new_product_name);
+ newPrice = itemView.findViewById(R.id.new_price);
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/PopularProductsAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/PopularProductsAdapter.java
new file mode 100644
index 0000000..1cd2c1b
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/PopularProductsAdapter.java
@@ -0,0 +1,75 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.example.myloginapp.R;
+import com.example.myloginapp.activities.DetailedActivity;
+import com.example.myloginapp.models.PopularProductsModel;
+
+import org.w3c.dom.Text;
+
+import java.util.List;
+
+public class PopularProductsAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ private List popularProductsModelList;
+
+ public PopularProductsAdapter(Context context, List popularProductsModelList) {
+ this.context = context;
+ this.popularProductsModelList = popularProductsModelList;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.popular_items,parent,false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+
+ Glide.with(context).load(popularProductsModelList.get(position).getImg_url()).into(holder.imageView);
+ holder.name.setText(popularProductsModelList.get(position).getName());
+ holder.price.setText(String.valueOf(popularProductsModelList.get(position).getPrice()));
+
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(context, DetailedActivity.class);
+ intent.putExtra("detailed",popularProductsModelList.get(position));
+ context.startActivity(intent);
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return popularProductsModelList.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView imageView;
+ TextView name,price;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ imageView = itemView.findViewById(R.id.all_img);
+ name = itemView.findViewById(R.id.all_product_name);
+ price = itemView.findViewById(R.id.all_price);
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/ShowAllAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/ShowAllAdapter.java
new file mode 100644
index 0000000..91c1386
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/ShowAllAdapter.java
@@ -0,0 +1,77 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.example.myloginapp.R;
+import com.example.myloginapp.activities.DetailedActivity;
+import com.example.myloginapp.activities.ShowAllActivity;
+import com.example.myloginapp.models.ShowAllModel;
+
+import org.w3c.dom.Text;
+
+import java.util.List;
+
+public class ShowAllAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ private List list;
+
+ public ShowAllAdapter(Context context, List list) {
+ this.context = context;
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.show_all_item,parent,false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+
+ Glide.with(context).load(list.get(position).getImg_url()).into(holder.mItemImage);
+ holder.mCost.setText("$"+list.get(position).getPrice());
+ holder.mName.setText(list.get(position).getName());
+
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(context, DetailedActivity.class);
+ intent.putExtra("detailed",list.get(position));
+ context.startActivity(intent);
+ }
+ });
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ private ImageView mItemImage;
+ private TextView mCost;
+ private TextView mName;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ mItemImage = itemView.findViewById(R.id.item_image);
+ mCost = itemView.findViewById(R.id.item_cost);
+ mName = itemView.findViewById(R.id.item_nam);
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/adapters/SliderAdapter.java b/app/src/main/java/com/example/myloginapp/adapters/SliderAdapter.java
new file mode 100644
index 0000000..380da51
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/adapters/SliderAdapter.java
@@ -0,0 +1,78 @@
+package com.example.myloginapp.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation. NonNull;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.viewpager.widget.PagerAdapter;
+
+import com.example.myloginapp.R;
+
+public class SliderAdapter extends PagerAdapter {
+ Context context;
+ LayoutInflater layoutInflater;
+
+ public SliderAdapter(Context context) {
+ this.context = context;
+ }
+
+ int imagesArray[] ={
+ R.drawable.onboardscreen1,
+ R.drawable.onboardscreen2,
+ R.drawable.onboardscreen3
+
+ };
+
+ int headingArray [] ={
+ R.string.first_slide,
+ R.string.second_slide,
+ R.string.third_slide
+ };
+
+ int descriptionArray [] ={
+ R.string.description,
+ R.string.description2,
+ R.string.description3
+ };
+
+
+ @Override
+ public int getCount() {
+ return headingArray.length;
+ }
+
+ @Override
+ public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
+ return view == (ConstraintLayout) object;
+ }
+
+ @NonNull
+ @Override
+ public Object instantiateItem(@NonNull ViewGroup container, int position) {
+
+ layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
+ View view = layoutInflater.inflate(R.layout.sliding_layout,container,false);
+
+ ImageView imageView = view.findViewById(R.id.slider_img);
+ TextView heading = view.findViewById(R.id.heading);
+ TextView description = view.findViewById(R.id.description);
+
+ imageView.setImageResource(imagesArray[position]);
+ heading.setText(headingArray[position]);
+ description.setText(descriptionArray[position]);
+
+ container.addView(view);
+
+ return view;
+ }
+
+ @Override
+ public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
+ container.removeView((ConstraintLayout)object);
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/fragments/HomeFragment.java b/app/src/main/java/com/example/myloginapp/fragments/HomeFragment.java
new file mode 100644
index 0000000..b32cc77
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/fragments/HomeFragment.java
@@ -0,0 +1,201 @@
+package com.example.myloginapp.fragments;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.denzcoskun.imageslider.ImageSlider;
+import com.denzcoskun.imageslider.constants.ScaleTypes;
+import com.denzcoskun.imageslider.models.SlideModel;
+import com.example.myloginapp.R;
+import com.example.myloginapp.activities.ShowAllActivity;
+import com.example.myloginapp.adapters.CategoryAdapter;
+import com.example.myloginapp.adapters.NewProductsAdapter;
+import com.example.myloginapp.adapters.PopularProductsAdapter;
+import com.example.myloginapp.models.CategoryModel;
+import com.example.myloginapp.models.NewProductsModel;
+import com.example.myloginapp.models.PopularProductsModel;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.firestore.FirebaseFirestore;
+import com.google.firebase.firestore.QueryDocumentSnapshot;
+import com.google.firebase.firestore.QuerySnapshot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class HomeFragment extends Fragment {
+
+ TextView catShowAll,popularShowAll,newProductShowAll;
+
+ LinearLayout linearLayout;
+ ProgressDialog progressDialog;
+ RecyclerView catRecyclerview,newProductRecyclerview,popularRecyclerview;
+
+ //Category recyclerview
+ CategoryAdapter categoryAdapter;
+ List categoryModelList;
+
+ //new product recyclerview
+ NewProductsAdapter newProductsAdapter;
+ List newProductsModelList;
+
+ //popular products
+ PopularProductsAdapter popularProductsAdapter;
+ List popularProductsModelList;
+
+ FirebaseFirestore db;
+
+ public HomeFragment() {
+ // Required empty public constructor
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View root = inflater.inflate(R.layout.fragment_home, container, false);
+
+ db = FirebaseFirestore.getInstance();
+
+ progressDialog = new ProgressDialog(getActivity());
+ catRecyclerview = root.findViewById(R.id.rec_category);
+ newProductRecyclerview = root.findViewById(R.id.new_product_rec);
+ popularRecyclerview = root.findViewById(R.id.popular_rec);
+
+ catShowAll = root.findViewById(R.id.category_see_all);
+ popularShowAll = root.findViewById(R.id.popular_see_all);
+ newProductShowAll = root.findViewById(R.id.newProducts_see_all);
+
+ catShowAll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getContext(), ShowAllActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ newProductShowAll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getContext(), ShowAllActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ popularShowAll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getContext(), ShowAllActivity.class);
+ startActivity(intent);
+ }
+ });
+
+
+ linearLayout = root.findViewById(R.id.home_layout);
+ linearLayout.setVisibility(View.GONE);
+
+ ImageSlider imageSlider = root.findViewById(R.id.image_slider);
+ List slideModels = new ArrayList<>();
+
+ slideModels.add(new SlideModel(R.drawable.banner1,"Desconto em itens eletronicos", ScaleTypes.CENTER_CROP));
+ slideModels.add(new SlideModel(R.drawable.banner2,"Desconto em hardware", ScaleTypes.CENTER_CROP));
+ slideModels.add(new SlideModel(R.drawable.banner3,"20% ATE DE DESCONTO", ScaleTypes.CENTER_CROP));
+
+ imageSlider.setImageList(slideModels);
+ progressDialog.setTitle("Bem-vindo ao meu aplicativo de comércio eletrônico");
+ progressDialog.setMessage("please wait....");
+ progressDialog.setCanceledOnTouchOutside(false);
+ progressDialog.show();
+
+ //category
+ catRecyclerview.setLayoutManager(new LinearLayoutManager(getActivity(),RecyclerView.HORIZONTAL,false));
+ categoryModelList = new ArrayList<>();
+ categoryAdapter = new CategoryAdapter(getContext(),categoryModelList);
+ catRecyclerview.setAdapter(categoryAdapter);
+
+ db.collection( "Category")
+ .get()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete (@NonNull Task task) {
+ if (task.isSuccessful()) {
+ for (QueryDocumentSnapshot document : task.getResult()) {
+
+ CategoryModel categoryModel = document.toObject(CategoryModel.class);
+ categoryModelList.add(categoryModel);
+ categoryAdapter.notifyDataSetChanged();
+ linearLayout.setVisibility(View.VISIBLE);
+ progressDialog.dismiss();
+ }
+ } else{
+ Toast.makeText(getActivity(), ""+task.getException(), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ newProductRecyclerview.setLayoutManager(new LinearLayoutManager(getActivity(),RecyclerView.HORIZONTAL,false));
+ newProductsModelList = new ArrayList<>();
+ newProductsAdapter = new NewProductsAdapter(getContext(),newProductsModelList);
+ newProductRecyclerview.setAdapter(newProductsAdapter);
+
+ db.collection( "NewProducts")
+ .get()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete (@NonNull Task task) {
+ if (task.isSuccessful()) {
+ for (QueryDocumentSnapshot document : task.getResult()) {
+
+ NewProductsModel newProductsModel = document.toObject(NewProductsModel.class);
+ newProductsModelList.add(newProductsModel);
+ newProductsAdapter.notifyDataSetChanged();
+ }
+ } else{
+
+ Toast.makeText(getActivity(), ""+task.getException(), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ //popular products
+ popularRecyclerview.setLayoutManager(new GridLayoutManager(getActivity(),2));
+ popularProductsModelList = new ArrayList<>();
+ popularProductsAdapter = new PopularProductsAdapter(getContext(),popularProductsModelList);
+ popularRecyclerview.setAdapter(popularProductsAdapter);
+
+ db.collection( "AllProducts")
+ .get()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete (@NonNull Task task) {
+ if (task.isSuccessful()) {
+ for (QueryDocumentSnapshot document : task.getResult()) {
+
+ PopularProductsModel popularProductsModel = document.toObject(PopularProductsModel.class);
+ popularProductsModelList.add(popularProductsModel);
+ popularProductsAdapter.notifyDataSetChanged();
+ }
+ } else{
+
+ Toast.makeText(getActivity(), ""+task.getException(), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+ return root;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myloginapp/models/AddressModel.java b/app/src/main/java/com/example/myloginapp/models/AddressModel.java
new file mode 100644
index 0000000..0777c9b
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/AddressModel.java
@@ -0,0 +1,26 @@
+package com.example.myloginapp.models;
+
+public class AddressModel {
+
+ String userAddress;
+ boolean isSelected;
+
+ public AddressModel() {
+ }
+
+ public String getUserAddress() {
+ return userAddress;
+ }
+
+ public void setUserAddress(String userAddress) {
+ this.userAddress = userAddress;
+ }
+
+ public boolean isSelected() {
+ return isSelected;
+ }
+
+ public void setSelected(boolean selected) {
+ isSelected = selected;
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/models/CategoryModel.java b/app/src/main/java/com/example/myloginapp/models/CategoryModel.java
new file mode 100644
index 0000000..66b2ca4
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/CategoryModel.java
@@ -0,0 +1,41 @@
+package com.example.myloginapp.models;
+
+public class CategoryModel {
+
+ String img_url;
+ String name;
+ String type;
+
+ public CategoryModel() {
+ }
+
+ public CategoryModel(String img_url, String name, String type) {
+ this.img_url = img_url;
+ this.name = name;
+ this.type = type;
+ }
+
+ public String getImg_url() {
+ return img_url;
+ }
+
+ public void setImg_url(String img_url) {
+ this.img_url = img_url;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/models/MyCartModel.java b/app/src/main/java/com/example/myloginapp/models/MyCartModel.java
new file mode 100644
index 0000000..832e0ea
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/MyCartModel.java
@@ -0,0 +1,71 @@
+package com.example.myloginapp.models;
+
+public class MyCartModel {
+
+ String currentTime;
+ String currentDate;
+ String productName;
+ String productPrice;
+ String totalQuantity;
+ int totalPrice;
+
+ public MyCartModel() {
+ }
+
+ public MyCartModel(String currentTime, String currentDate, String productName, String productPrice, String totalQuantity, int totalPrice) {
+ this.currentTime = currentTime;
+ this.currentDate = currentDate;
+ this.productName = productName;
+ this.productPrice = productPrice;
+ this.totalQuantity = totalQuantity;
+ this.totalPrice = totalPrice;
+ }
+
+ public String getCurrentTime() {
+ return currentTime;
+ }
+
+ public void setCurrentTime(String currentTime) {
+ this.currentTime = currentTime;
+ }
+
+ public String getCurrentDate() {
+ return currentDate;
+ }
+
+ public void setCurrentDate(String currentDate) {
+ this.currentDate = currentDate;
+ }
+
+ public String getProductName() {
+ return productName;
+ }
+
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+
+ public String getProductPrice() {
+ return productPrice;
+ }
+
+ public void setProductPrice(String productPrice) {
+ this.productPrice = productPrice;
+ }
+
+ public String getTotalQuantity() {
+ return totalQuantity;
+ }
+
+ public void setTotalQuantity(String totalQuantity) {
+ this.totalQuantity = totalQuantity;
+ }
+
+ public int getTotalPrice() {
+ return totalPrice;
+ }
+
+ public void setTotalPrice(int totalPrice) {
+ this.totalPrice = totalPrice;
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/models/NewProductsModel.java b/app/src/main/java/com/example/myloginapp/models/NewProductsModel.java
new file mode 100644
index 0000000..20f2cc2
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/NewProductsModel.java
@@ -0,0 +1,65 @@
+package com.example.myloginapp.models;
+
+import java.io.Serializable;
+
+public class NewProductsModel implements Serializable {
+
+ String description;
+ String name;
+ String rating;
+ int price;
+ String img_url;
+
+ public NewProductsModel() {
+ }
+
+ public NewProductsModel(String description, String name, String rating, int price, String img_url) {
+ this.description = description;
+ this.name = name;
+ this.rating = rating;
+ this.price = price;
+ this.img_url = img_url;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+
+ this.name = name;
+ }
+
+ public String getRating() {
+ return rating;
+ }
+
+ public void setRating(String rating) {
+
+ this.rating = rating;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public String getImg_url() {
+ return img_url;
+ }
+
+ public void setImg_url(String img_url) {
+ this.img_url = img_url;
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/models/PopularProductsModel.java b/app/src/main/java/com/example/myloginapp/models/PopularProductsModel.java
new file mode 100644
index 0000000..319f647
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/PopularProductsModel.java
@@ -0,0 +1,62 @@
+package com.example.myloginapp.models;
+
+import java.io.Serializable;
+
+public class PopularProductsModel implements Serializable {
+ String description;
+ String name;
+ String rating;
+ int price;
+ String img_url;
+
+ public PopularProductsModel() {
+ }
+
+ public PopularProductsModel(String description, String name, String rating, int price, String img_url) {
+ this.description = description;
+ this.name = name;
+ this.rating = rating;
+ this.price = price;
+ this.img_url = img_url;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getRating() {
+ return rating;
+ }
+
+ public void setRating(String rating) {
+ this.rating = rating;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public String getImg_url() {
+ return img_url;
+ }
+
+ public void setImg_url(String img_url) {
+ this.img_url = img_url;
+ }
+}
diff --git a/app/src/main/java/com/example/myloginapp/models/ShowAllModel.java b/app/src/main/java/com/example/myloginapp/models/ShowAllModel.java
new file mode 100644
index 0000000..40d4288
--- /dev/null
+++ b/app/src/main/java/com/example/myloginapp/models/ShowAllModel.java
@@ -0,0 +1,72 @@
+package com.example.myloginapp.models;
+
+import java.io.Serializable;
+
+public class ShowAllModel implements Serializable {
+ String description;
+ String name;
+ String rating;
+ int price;
+ String img_url;
+ String type;
+
+ public ShowAllModel() {
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getRating() {
+ return rating;
+ }
+
+ public void setRating(String rating) {
+ this.rating = rating;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public String getImg_url() {
+ return img_url;
+ }
+
+ public void setImg_url(String img_url) {
+ this.img_url = img_url;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public ShowAllModel(String description, String name, String rating, int price, String img_url, String type) {
+ this.description = description;
+ this.name = name;
+ this.rating = rating;
+ this.price = price;
+ this.img_url = img_url;
+ this.type = type;
+ }
+}
diff --git a/app/src/main/res/anim/slider_animation.xml b/app/src/main/res/anim/slider_animation.xml
new file mode 100644
index 0000000..a3ebc01
--- /dev/null
+++ b/app/src/main/res/anim/slider_animation.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/background.png b/app/src/main/res/drawable-v24/background.png
deleted file mode 100644
index 3bc740c..0000000
Binary files a/app/src/main/res/drawable-v24/background.png and /dev/null differ
diff --git a/app/src/main/res/drawable/backgroud.jpg b/app/src/main/res/drawable/backgroud.jpg
new file mode 100644
index 0000000..b14bcc7
Binary files /dev/null and b/app/src/main/res/drawable/backgroud.jpg differ
diff --git a/app/src/main/res/drawable/banner1.jpg b/app/src/main/res/drawable/banner1.jpg
new file mode 100644
index 0000000..d3f4d56
Binary files /dev/null and b/app/src/main/res/drawable/banner1.jpg differ
diff --git a/app/src/main/res/drawable/banner2.jpg b/app/src/main/res/drawable/banner2.jpg
new file mode 100644
index 0000000..2fbbb8d
Binary files /dev/null and b/app/src/main/res/drawable/banner2.jpg differ
diff --git a/app/src/main/res/drawable/banner3.jpg b/app/src/main/res/drawable/banner3.jpg
new file mode 100644
index 0000000..988f75b
Binary files /dev/null and b/app/src/main/res/drawable/banner3.jpg differ
diff --git a/app/src/main/res/drawable/bggg.jpg b/app/src/main/res/drawable/bggg.jpg
new file mode 100644
index 0000000..80f12b8
Binary files /dev/null and b/app/src/main/res/drawable/bggg.jpg differ
diff --git a/app/src/main/res/drawable/button.xml b/app/src/main/res/drawable/button.xml
new file mode 100644
index 0000000..6c61f69
--- /dev/null
+++ b/app/src/main/res/drawable/button.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/card_prev.png b/app/src/main/res/drawable/card_prev.png
new file mode 100644
index 0000000..3a75024
Binary files /dev/null and b/app/src/main/res/drawable/card_prev.png differ
diff --git a/app/src/main/res/drawable/cloud_download.xml b/app/src/main/res/drawable/cloud_download.xml
new file mode 100644
index 0000000..4a500c4
--- /dev/null
+++ b/app/src/main/res/drawable/cloud_download.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/container_components.xml b/app/src/main/res/drawable/container_components.xml
new file mode 100644
index 0000000..afaf2fa
--- /dev/null
+++ b/app/src/main/res/drawable/container_components.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/conteiner_user.xml b/app/src/main/res/drawable/conteiner_user.xml
new file mode 100644
index 0000000..c0398ea
--- /dev/null
+++ b/app/src/main/res/drawable/conteiner_user.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/designlogin2.jpg b/app/src/main/res/drawable/designlogin2.jpg
new file mode 100644
index 0000000..2217289
Binary files /dev/null and b/app/src/main/res/drawable/designlogin2.jpg differ
diff --git a/app/src/main/res/drawable/edit_text.xml b/app/src/main/res/drawable/edit_text.xml
new file mode 100644
index 0000000..bbd904f
--- /dev/null
+++ b/app/src/main/res/drawable/edit_text.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/edit_text_bg.xml b/app/src/main/res/drawable/edit_text_bg.xml
new file mode 100644
index 0000000..0a75a8d
--- /dev/null
+++ b/app/src/main/res/drawable/edit_text_bg.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/edittext_bg.xml b/app/src/main/res/drawable/edittext_bg.xml
new file mode 100644
index 0000000..8cd01e9
--- /dev/null
+++ b/app/src/main/res/drawable/edittext_bg.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_baseline_account_circle.xml b/app/src/main/res/drawable/ic_baseline_account_circle.xml
new file mode 100644
index 0000000..acf8630
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_account_circle.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_arrow_forward_ios_24.xml b/app/src/main/res/drawable/ic_baseline_arrow_forward_ios_24.xml
new file mode 100644
index 0000000..d7c08d9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_arrow_forward_ios_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_loginout.xml b/app/src/main/res/drawable/ic_baseline_loginout.xml
new file mode 100644
index 0000000..2e345c1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_loginout.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_menu_24.xml b/app/src/main/res/drawable/ic_baseline_menu_24.xml
new file mode 100644
index 0000000..0b6ca72
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_menu_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_person_24.xml b/app/src/main/res/drawable/ic_baseline_person_24.xml
new file mode 100644
index 0000000..1671f6f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_person_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_shopping_cart_24.xml b/app/src/main/res/drawable/ic_baseline_shopping_cart_24.xml
new file mode 100644
index 0000000..432fc96
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_shopping_cart_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_vpn_key_24.xml b/app/src/main/res/drawable/ic_baseline_vpn_key_24.xml
new file mode 100644
index 0000000..317f4d5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_vpn_key_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_email.xml b/app/src/main/res/drawable/ic_email.xml
new file mode 100644
index 0000000..f0abc2d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_email.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_eye.xml b/app/src/main/res/drawable/ic_eye.xml
new file mode 100644
index 0000000..dca893e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_eye.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_backgroud.xml b/app/src/main/res/drawable/ic_launcher_backgroud.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_backgroud.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_user.xml b/app/src/main/res/drawable/ic_user.xml
new file mode 100644
index 0000000..8394a20
--- /dev/null
+++ b/app/src/main/res/drawable/ic_user.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_usuari.xml b/app/src/main/res/drawable/ic_usuari.xml
new file mode 100644
index 0000000..8394a20
--- /dev/null
+++ b/app/src/main/res/drawable/ic_usuari.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/iconminus.png b/app/src/main/res/drawable/iconminus.png
new file mode 100644
index 0000000..f4e4423
Binary files /dev/null and b/app/src/main/res/drawable/iconminus.png differ
diff --git a/app/src/main/res/drawable/menu_shopping.xml b/app/src/main/res/drawable/menu_shopping.xml
new file mode 100644
index 0000000..a13ee15
--- /dev/null
+++ b/app/src/main/res/drawable/menu_shopping.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/milk.png b/app/src/main/res/drawable/milk.png
new file mode 100644
index 0000000..f0f45ce
Binary files /dev/null and b/app/src/main/res/drawable/milk.png differ
diff --git a/app/src/main/res/drawable/mycart.xml b/app/src/main/res/drawable/mycart.xml
new file mode 100644
index 0000000..01eb749
--- /dev/null
+++ b/app/src/main/res/drawable/mycart.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/onboardscreen1.jpg b/app/src/main/res/drawable/onboardscreen1.jpg
new file mode 100644
index 0000000..98e9cec
Binary files /dev/null and b/app/src/main/res/drawable/onboardscreen1.jpg differ
diff --git a/app/src/main/res/drawable/onboardscreen2.jpg b/app/src/main/res/drawable/onboardscreen2.jpg
new file mode 100644
index 0000000..85d99f7
Binary files /dev/null and b/app/src/main/res/drawable/onboardscreen2.jpg differ
diff --git a/app/src/main/res/drawable/onboardscreen3.jpg b/app/src/main/res/drawable/onboardscreen3.jpg
new file mode 100644
index 0000000..178dbbf
Binary files /dev/null and b/app/src/main/res/drawable/onboardscreen3.jpg differ
diff --git a/app/src/main/res/drawable/plusicon.png b/app/src/main/res/drawable/plusicon.png
new file mode 100644
index 0000000..73c22e3
Binary files /dev/null and b/app/src/main/res/drawable/plusicon.png differ
diff --git a/app/src/main/res/drawable/progress_animation.xml b/app/src/main/res/drawable/progress_animation.xml
new file mode 100644
index 0000000..1a04622
--- /dev/null
+++ b/app/src/main/res/drawable/progress_animation.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/font/aclonica.xml b/app/src/main/res/font/aclonica.xml
new file mode 100644
index 0000000..a88a968
--- /dev/null
+++ b/app/src/main/res/font/aclonica.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/app/src/main/res/font/amethysta.xml b/app/src/main/res/font/amethysta.xml
new file mode 100644
index 0000000..1b546a6
--- /dev/null
+++ b/app/src/main/res/font/amethysta.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_add_address.xml b/app/src/main/res/layout/activity_add_address.xml
new file mode 100644
index 0000000..1bc3483
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_address.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_address.xml b/app/src/main/res/layout/activity_address.xml
new file mode 100644
index 0000000..a599d3b
--- /dev/null
+++ b/app/src/main/res/layout/activity_address.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_cart.xml b/app/src/main/res/layout/activity_cart.xml
new file mode 100644
index 0000000..11bfeb8
--- /dev/null
+++ b/app/src/main/res/layout/activity_cart.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_desconto.xml b/app/src/main/res/layout/activity_desconto.xml
new file mode 100644
index 0000000..c52e35e
--- /dev/null
+++ b/app/src/main/res/layout/activity_desconto.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_detailed.xml b/app/src/main/res/layout/activity_detailed.xml
new file mode 100644
index 0000000..66ec781
--- /dev/null
+++ b/app/src/main/res/layout/activity_detailed.xml
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
new file mode 100644
index 0000000..5007a11
--- /dev/null
+++ b/app/src/main/res/layout/activity_login.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index df3c82f..f488c87 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,107 +1,28 @@
-
+ tools:context=".activities.MainActivity">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ android:background="#8ff7fd"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_on_boarding.xml b/app/src/main/res/layout/activity_on_boarding.xml
new file mode 100644
index 0000000..f3c803a
--- /dev/null
+++ b/app/src/main/res/layout/activity_on_boarding.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_payment.xml b/app/src/main/res/layout/activity_payment.xml
new file mode 100644
index 0000000..564491a
--- /dev/null
+++ b/app/src/main/res/layout/activity_payment.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_registration.xml b/app/src/main/res/layout/activity_registration.xml
new file mode 100644
index 0000000..5672efa
--- /dev/null
+++ b/app/src/main/res/layout/activity_registration.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_show_all.xml b/app/src/main/res/layout/activity_show_all.xml
new file mode 100644
index 0000000..e25335b
--- /dev/null
+++ b/app/src/main/res/layout/activity_show_all.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/address_item.xml b/app/src/main/res/layout/address_item.xml
new file mode 100644
index 0000000..f73bed3
--- /dev/null
+++ b/app/src/main/res/layout/address_item.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/category_list.xml b/app/src/main/res/layout/category_list.xml
new file mode 100644
index 0000000..51ad3cc
--- /dev/null
+++ b/app/src/main/res/layout/category_list.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 0000000..3dad513
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/my_cart_item.xml b/app/src/main/res/layout/my_cart_item.xml
new file mode 100644
index 0000000..deede5b
--- /dev/null
+++ b/app/src/main/res/layout/my_cart_item.xml
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/new_products.xml b/app/src/main/res/layout/new_products.xml
new file mode 100644
index 0000000..7c72f54
--- /dev/null
+++ b/app/src/main/res/layout/new_products.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/popular_items.xml b/app/src/main/res/layout/popular_items.xml
new file mode 100644
index 0000000..09415dd
--- /dev/null
+++ b/app/src/main/res/layout/popular_items.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/show_all_item.xml b/app/src/main/res/layout/show_all_item.xml
new file mode 100644
index 0000000..7ee453f
--- /dev/null
+++ b/app/src/main/res/layout/show_all_item.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/sliding_layout.xml b/app/src/main/res/layout/sliding_layout.xml
new file mode 100644
index 0000000..2b153d2
--- /dev/null
+++ b/app/src/main/res/layout/sliding_layout.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/main_menu.xml b/app/src/main/res/menu/main_menu.xml
new file mode 100644
index 0000000..48c5d26
--- /dev/null
+++ b/app/src/main/res/menu/main_menu.xml
@@ -0,0 +1,17 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index eca70cf..036d09b 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index eca70cf..036d09b 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index a571e60..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..1351043
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
new file mode 100644
index 0000000..da20193
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index 61da551..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1351043
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index c41dd28..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..8530033
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
new file mode 100644
index 0000000..4dc835f
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index db5080a..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..8530033
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 6dba46d..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..327bf51
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
new file mode 100644
index 0000000..be06a5c
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index da31a87..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..327bf51
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 15ac681..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..198877a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
new file mode 100644
index 0000000..b5d066d
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index b216f2d..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..198877a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index f25a419..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..686ade0
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
new file mode 100644
index 0000000..ca42c0d
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index e96783c..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..686ade0
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..65020f1 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,9 @@
#FF018786
#FF000000
#FFFFFFFF
+
+ #ff5ccb
+ #00f0ff
+ #FFFCFC
+ #008eff
\ No newline at end of file
diff --git a/app/src/main/res/values/font_certs.xml b/app/src/main/res/values/font_certs.xml
new file mode 100644
index 0000000..d2226ac
--- /dev/null
+++ b/app/src/main/res/values/font_certs.xml
@@ -0,0 +1,17 @@
+
+
+
+ - @array/com_google_android_gms_fonts_certs_dev
+ - @array/com_google_android_gms_fonts_certs_prod
+
+
+ -
+ MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
+
+
+
+ -
+ MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK
+
+
+
diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml
new file mode 100644
index 0000000..5e19d67
--- /dev/null
+++ b/app/src/main/res/values/ic_launcher_background.xml
@@ -0,0 +1,4 @@
+
+
+ #E6EAEA
+
\ No newline at end of file
diff --git a/app/src/main/res/values/preloaded_fonts.xml b/app/src/main/res/values/preloaded_fonts.xml
new file mode 100644
index 0000000..fba4a85
--- /dev/null
+++ b/app/src/main/res/values/preloaded_fonts.xml
@@ -0,0 +1,7 @@
+
+
+
+ - @font/aclonica
+ - @font/amethysta
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a9407c1..83f1cc2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,35 @@
- MyLoginApp
+ E-CycleTech
+ Cadastre-se
+
+ Um Pouco Sobre a Empresa
+ Entrega rápida
+ Bom serviço
+ Olá somos a E-Cycle Tech, a nossa empresa nasce da urgência em enfrentar desafios contemporâneos relacionados ao consumo excessivo, descarte inadequado de resíduos e esgotamento dos recursos naturais. Em um mundo onde a produção e consumo de eletrônicos geram resíduos significativos, reconhecemos a necessidade imperativa de abordar essas questões de forma inovadora.
+ Nos oferecemos um serviço ágil para atender às demandas contemporâneas de entrega. Focamos em proporcionar uma experiência de entrega excepcional, destacando-nos pela velocidade, confiabilidade e conveniência.
+ Em um cenário cada vez mais digitalizado, nos oferecemos excelência em serviços de aplicativo é crucial para satisfazer as demandas dos usuários e proporcionar experiências excepcionais. Nossos serviços de aplicativo buscam redefinir padrões, proporcionando não apenas funcionalidade, mas também inovação e satisfação do usuário.
+
+ - SILICIO
+ - ALUMINIO
+ - COBRE
+ - OURO
+ - PRATA
+
+
+
+ - SILICIO
+ - ALUMINIO
+ - COBRE
+ - OURO
+ - PRATA
+
+
+ - Cupom1
+ - Cupom2
+ - Cupom3
+ - Cupom4
+ - Cupom5
+
+
+ Hello blank fragment
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..e23dbc4
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 43c26a0..881324a 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -2,8 +2,8 @@