diff --git a/Material_Components_App_Navigation/.gitignore b/Material_Components_App_Navigation/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/Material_Components_App_Navigation/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/Material_Components_App_Navigation/.idea/.gitignore b/Material_Components_App_Navigation/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Material_Components_App_Navigation/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Material_Components_App_Navigation/.idea/.name b/Material_Components_App_Navigation/.idea/.name new file mode 100644 index 0000000..623bfbf --- /dev/null +++ b/Material_Components_App_Navigation/.idea/.name @@ -0,0 +1 @@ +MD Postres \ No newline at end of file diff --git a/Material_Components_App_Navigation/.idea/compiler.xml b/Material_Components_App_Navigation/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/Material_Components_App_Navigation/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/.idea/gradle.xml b/Material_Components_App_Navigation/.idea/gradle.xml new file mode 100644 index 0000000..4e3844e --- /dev/null +++ b/Material_Components_App_Navigation/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/.idea/misc.xml b/Material_Components_App_Navigation/.idea/misc.xml new file mode 100644 index 0000000..f4dc47d --- /dev/null +++ b/Material_Components_App_Navigation/.idea/misc.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/.idea/vcs.xml b/Material_Components_App_Navigation/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/Material_Components_App_Navigation/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/.gitignore b/Material_Components_App_Navigation/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/Material_Components_App_Navigation/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/build.gradle b/Material_Components_App_Navigation/app/build.gradle new file mode 100644 index 0000000..976bcfe --- /dev/null +++ b/Material_Components_App_Navigation/app/build.gradle @@ -0,0 +1,45 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdk 31 + + defaultConfig { + applicationId "com.barryzeha.mdpostres" + minSdk 21 + targetSdk 31 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + buildFeatures{ + viewBinding true + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'androidx.navigation:navigation-fragment:2.3.5' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.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/Material_Components_App_Navigation/app/proguard-rules.pro b/Material_Components_App_Navigation/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/Material_Components_App_Navigation/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/androidTest/java/com/barryzeha/mdpostres/ExampleInstrumentedTest.java b/Material_Components_App_Navigation/app/src/androidTest/java/com/barryzeha/mdpostres/ExampleInstrumentedTest.java new file mode 100644 index 0000000..ae70b35 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/androidTest/java/com/barryzeha/mdpostres/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.barryzeha.mdpostres; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.barryzeha.mdpostres", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/AndroidManifest.xml b/Material_Components_App_Navigation/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7259c9f --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/CarFragment.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/CarFragment.java new file mode 100644 index 0000000..c2a0a6f --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/CarFragment.java @@ -0,0 +1,64 @@ +package com.barryzeha.mdpostres; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link CarFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class CarFragment extends Fragment { + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public CarFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment CarFragment. + */ + // TODO: Rename and change types and number of parameters + public static CarFragment newInstance(String param1, String param2) { + CarFragment fragment = new CarFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_car, container, false); + } +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/MainActivity.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/MainActivity.java new file mode 100644 index 0000000..88cc4c9 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/MainActivity.java @@ -0,0 +1,14 @@ +package com.barryzeha.mdpostres; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/Product.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/Product.java new file mode 100644 index 0000000..2d98226 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/Product.java @@ -0,0 +1,51 @@ +package com.barryzeha.mdpostres; + +import java.util.Objects; + +public class Product { + private String name; + private String url; + private boolean selected; + + public Product(String name, String url) { + this.name = name; + this.url = url; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public boolean isSelected() { + return selected; + } + + public void setSelected(boolean selected) { + this.selected = selected; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Product product = (Product) o; + return selected == product.selected && Objects.equals(name, product.name) && Objects.equals(url, product.url); + } + + @Override + public int hashCode() { + return Objects.hash(name, url, selected); + } +} diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductAdapter.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductAdapter.java new file mode 100644 index 0000000..03a2a2c --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductAdapter.java @@ -0,0 +1,74 @@ +package com.barryzeha.mdpostres; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.barryzeha.mdpostres.databinding.ItemProductBinding; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.card.MaterialCardView; + +import java.util.List; + +public class ProductAdapter extends RecyclerView.Adapter{ + + private List products; + private onClickProduct listener; + private Context context; + + public ProductAdapter(List products, onClickProduct listener) { + this.products = products; + this.listener = listener; + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + context=parent.getContext(); + ItemProductBinding bind= ItemProductBinding.inflate(LayoutInflater.from(context),parent, false); + return new ViewHolder(bind); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + Product product= products.get(position); + holder.setListener(product,listener); + holder.bind.tvNameProduct.setText(product.getName()); + Glide.with(context) + .load(product.getUrl()) + .apply(new RequestOptions().centerCrop()) + .into(holder.bind.ivProduct); + + } + + @Override + public int getItemCount() { + return products.size(); + } + + static class ViewHolder extends RecyclerView.ViewHolder{ + protected ItemProductBinding bind; + + public ViewHolder(@NonNull ItemProductBinding itemView) { + super(itemView.getRoot()); + bind=itemView; + + + } + protected void setListener(Product product, onClickProduct listener){ + itemView.setOnClickListener(view->{ + product.setSelected(!product.isSelected()); + + bind.getRoot().setChecked(product.isSelected()); + + listener.onclick(product); + }); + } + } +} diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductFragment.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductFragment.java new file mode 100644 index 0000000..e2feebe --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/ProductFragment.java @@ -0,0 +1,72 @@ +package com.barryzeha.mdpostres; + +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import com.barryzeha.mdpostres.databinding.FragmentProductBinding; + +import java.util.ArrayList; +import java.util.List; + + +public class ProductFragment extends Fragment implements onClickProduct { + private FragmentProductBinding bind; + private List selectedProduct= new ArrayList<>(); + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + bind=FragmentProductBinding.inflate(inflater, container, false); + + return bind.getRoot(); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + ProductAdapter adapter= new ProductAdapter(getProducts(), this); + bind.recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2)); + bind.recyclerView.setHasFixedSize(true); + bind.recyclerView.setAdapter(adapter); + } + + private List getProducts() { + List products= new ArrayList<>(); + products.add(new Product("Classic","https://upload.wikimedia.org/wikipedia/commons/4/48/Dona_sencilla_mexicana.jpg")); + products.add(new Product("Glazed","https://p0.pikist.com/photos/921/203/donut-mini-donut-small-round-cake-torus-" + + "glaze-fat-sugar-mixture-schokoplaettchen.jpg")); + products.add(new Product("Chocolate","https://cdn.pixabay.com/photo/2017/04/13/23/35/dona-2228986__340.jpg")); + products.add(new Product("Blue Berry","https://cdn.pixabay.com/photo/2017/11/22/00/18/donuts-2969490_1280.jpg")); + products.add(new Product("Dark Chocolate","https://cdn.pixabay.com/photo/2017/04/12/21/18/dona-2225812_1280.jpg")); + products.add(new Product("Strawberry","https://live.staticflickr.com/1338/1036945312_8e12c26d99_b.jpg")); + products.add(new Product("Caramel","https://p0.pxfuel.com/preview/187/392/25/cute-sweet-tasty-delicious.jpg")); + products.add(new Product("Wine","https://cdn.pixabay.com/photo/2017/08/11/21/46/donuts-2632878__340.jpg")); + products.add(new Product("Penaut","https://cdn.pixabay.com/photo/2014/02/17/17/26/donuts-268388__340.jpg")); + products.add(new Product("Apple","https://cdn.pixabay.com/photo/2020/10/12/15/58/donuts-5649218__340.jpg")); + products.add(new Product("Special","https://live.staticflickr.com/3356/3282189390_4ba32754b6_b.jpg")); + + + + return products; + } + + @Override + public void onclick(Product product) { + + } +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/onClickProduct.java b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/onClickProduct.java new file mode 100644 index 0000000..6c4a9e3 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/java/com/barryzeha/mdpostres/onClickProduct.java @@ -0,0 +1,5 @@ +package com.barryzeha.mdpostres; + +public interface onClickProduct { + void onclick(Product product); +} diff --git a/Material_Components_App_Navigation/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Material_Components_App_Navigation/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/drawable/ic_add_shopping_cart.xml b/Material_Components_App_Navigation/app/src/main/res/drawable/ic_add_shopping_cart.xml new file mode 100644 index 0000000..2f8406c --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/drawable/ic_add_shopping_cart.xml @@ -0,0 +1,10 @@ + + + diff --git a/Material_Components_App_Navigation/app/src/main/res/drawable/ic_launcher_background.xml b/Material_Components_App_Navigation/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/activity_main.xml b/Material_Components_App_Navigation/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..451df9f --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,25 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/content_main.xml b/Material_Components_App_Navigation/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..269949a --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/content_main.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/fragment_car.xml b/Material_Components_App_Navigation/app/src/main/res/layout/fragment_car.xml new file mode 100644 index 0000000..52ec3eb --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/fragment_car.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/fragment_product.xml b/Material_Components_App_Navigation/app/src/main/res/layout/fragment_product.xml new file mode 100644 index 0000000..ac4816f --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/fragment_product.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/item_car.xml b/Material_Components_App_Navigation/app/src/main/res/layout/item_car.xml new file mode 100644 index 0000000..479278e --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/item_car.xml @@ -0,0 +1,33 @@ + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/layout/item_product.xml b/Material_Components_App_Navigation/app/src/main/res/layout/item_product.xml new file mode 100644 index 0000000..12f336c --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/layout/item_product.xml @@ -0,0 +1,43 @@ + + + + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/Material_Components_App_Navigation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/Material_Components_App_Navigation/app/src/main/res/navigation/nav_graph.xml b/Material_Components_App_Navigation/app/src/main/res/navigation/nav_graph.xml new file mode 100644 index 0000000..246a268 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/navigation/nav_graph.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/values-night/themes.xml b/Material_Components_App_Navigation/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..a552ad8 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/values/colors.xml b/Material_Components_App_Navigation/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/values/dimens.xml b/Material_Components_App_Navigation/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..dc59c43 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ + + + 4dp + 180dp + 16dp + 8dp + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/values/strings.xml b/Material_Components_App_Navigation/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..06b8341 --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/values/strings.xml @@ -0,0 +1,10 @@ + + MD Postres + + Hello blank fragment + Productos + Imagen del producto + Nombre del producto + AƱadir + Nombre del producto + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/main/res/values/themes.xml b/Material_Components_App_Navigation/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..eb6c70f --- /dev/null +++ b/Material_Components_App_Navigation/app/src/main/res/values/themes.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/Material_Components_App_Navigation/app/src/test/java/com/barryzeha/mdpostres/ExampleUnitTest.java b/Material_Components_App_Navigation/app/src/test/java/com/barryzeha/mdpostres/ExampleUnitTest.java new file mode 100644 index 0000000..7865b1c --- /dev/null +++ b/Material_Components_App_Navigation/app/src/test/java/com/barryzeha/mdpostres/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.barryzeha.mdpostres; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/build.gradle b/Material_Components_App_Navigation/build.gradle new file mode 100644 index 0000000..9eb1ea6 --- /dev/null +++ b/Material_Components_App_Navigation/build.gradle @@ -0,0 +1,17 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath "com.android.tools.build:gradle:7.0.1" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/Material_Components_App_Navigation/gradle.properties b/Material_Components_App_Navigation/gradle.properties new file mode 100644 index 0000000..52f5917 --- /dev/null +++ b/Material_Components_App_Navigation/gradle.properties @@ -0,0 +1,19 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true \ No newline at end of file diff --git a/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.jar b/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.properties b/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..76055be --- /dev/null +++ b/Material_Components_App_Navigation/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Jan 26 11:20:24 PET 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/Material_Components_App_Navigation/gradlew b/Material_Components_App_Navigation/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/Material_Components_App_Navigation/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/Material_Components_App_Navigation/gradlew.bat b/Material_Components_App_Navigation/gradlew.bat new file mode 100644 index 0000000..ac1b06f --- /dev/null +++ b/Material_Components_App_Navigation/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Material_Components_App_Navigation/settings.gradle b/Material_Components_App_Navigation/settings.gradle new file mode 100644 index 0000000..85d2152 --- /dev/null +++ b/Material_Components_App_Navigation/settings.gradle @@ -0,0 +1,10 @@ +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + jcenter() // Warning: this repository is going to shut down soon + } +} +rootProject.name = "MD Postres" +include ':app'