From 42fb7311bd686dcf3fbb082aeb5cf2d949c83efc Mon Sep 17 00:00:00 2001 From: afohrman Date: Wed, 22 Mar 2017 21:26:03 +0000 Subject: [PATCH] Add Shrine demo app to material_components. This builds on Bazel - Gradle setup to come in a future commit. PiperOrigin-RevId: 150927644 --- .../material/demo/shrine/AndroidManifest.xml | 35 +++ .../demo/shrine/filters/AndroidManifest.xml | 32 +++ .../demo/shrine/filters/FiltersActivity.java | 40 ++++ .../res/layout/shrine_filters_activity.xml | 128 +++++++++++ .../demo/shrine/filters/res/values/dimens.xml | 21 ++ .../shrine/filters/res/values/strings.xml | 28 +++ .../demo/shrine/filters/res/values/styles.xml | 68 ++++++ .../demo/shrine/products/AndroidManifest.xml | 39 ++++ .../demo/shrine/products/ImageRequester.java | 89 ++++++++ .../demo/shrine/products/ItemActivity.java | 113 ++++++++++ .../demo/shrine/products/ProductEntry.java | 37 ++++ .../shrine/products/ProductListActivity.java | 205 ++++++++++++++++++ .../ic_add_shopping_cart_vd_theme_24.xml | 25 +++ .../ic_arrow_drop_down_vd_theme_24.xml | 25 +++ .../res/drawable/ic_favorite_vd_theme_24.xml | 25 +++ .../drawable/ic_filter_list_vd_theme_24.xml | 25 +++ .../res/drawable/ic_search_vd_theme_24.xml | 25 +++ .../drawable/ic_shopping_cart_vd_theme_24.xml | 25 +++ .../res/drawable/ic_shrine_vd_theme_24.xml | 25 +++ .../res/drawable/shrine_spinner_border.xml | 23 ++ .../res/layout/shrine_item_activity.xml | 109 ++++++++++ .../res/layout/shrine_product_activity.xml | 96 ++++++++ .../res/layout/shrine_product_entry.xml | 51 +++++ .../res/layout/shrine_spinner_dropdown.xml | 18 ++ .../res/layout/shrine_spinner_item.xml | 20 ++ .../res/menu/shrine_bottom_nav_view_menu.xml | 37 ++++ .../products/res/menu/shrine_toolbar_menu.xml | 29 +++ .../shrine/products/res/raw/products.json | 74 +++++++ .../shrine/products/res/values/colors.xml | 21 ++ .../shrine/products/res/values/dimens.xml | 34 +++ .../shrine/products/res/values/strings.xml | 37 ++++ .../shrine/products/res/values/styles.xml | 37 ++++ .../demo/shrine/res/values/strings.xml | 19 ++ .../demo/shrine/theme/AndroidManifest.xml | 26 +++ .../product_logo_shrine_color_144.png | Bin 0 -> 7173 bytes .../product_logo_shrine_color_192.png | Bin 0 -> 9854 bytes .../product_logo_shrine_color_144.png | Bin 0 -> 4648 bytes .../product_logo_shrine_color_192.png | Bin 0 -> 6245 bytes .../res/drawable-sw600dp/launch_screen.xml | 27 +++ .../product_logo_shrine_color_144.png | Bin 0 -> 9854 bytes .../product_logo_shrine_color_192.png | Bin 0 -> 13860 bytes .../product_logo_shrine_color_144.png | Bin 0 -> 15752 bytes .../product_logo_shrine_color_192.png | Bin 0 -> 22157 bytes .../product_logo_shrine_color_144.png | Bin 0 -> 22157 bytes .../product_logo_shrine_color_192.png | Bin 0 -> 31364 bytes .../theme/res/drawable/launch_screen.xml | 27 +++ .../product_logo_shrine_launcher_color_48.png | Bin 0 -> 3029 bytes .../product_logo_shrine_launcher_color_48.png | Bin 0 -> 1895 bytes .../product_logo_shrine_launcher_color_48.png | Bin 0 -> 4171 bytes .../product_logo_shrine_launcher_color_48.png | Bin 0 -> 6757 bytes .../product_logo_shrine_launcher_color_48.png | Bin 0 -> 9379 bytes .../shrine/theme/res/values-land/dimens.xml | 20 ++ .../theme/res/values-port-v21/dimens.xml | 20 ++ .../res/values-sw600dp-land-v21/dimens.xml | 20 ++ .../theme/res/values-sw600dp-land/dimens.xml | 20 ++ .../res/values-sw600dp-port-v21/dimens.xml | 20 ++ .../theme/res/values-sw600dp/dimens.xml | 19 ++ .../demo/shrine/theme/res/values/colors.xml | 23 ++ .../demo/shrine/theme/res/values/dimens.xml | 26 +++ .../demo/shrine/theme/res/values/styles.xml | 65 ++++++ .../products/ProductListActivityTest.java | 56 +++++ 61 files changed, 1984 insertions(+) create mode 100644 demos/java/io/material/demo/shrine/AndroidManifest.xml create mode 100644 demos/java/io/material/demo/shrine/filters/AndroidManifest.xml create mode 100644 demos/java/io/material/demo/shrine/filters/FiltersActivity.java create mode 100644 demos/java/io/material/demo/shrine/filters/res/layout/shrine_filters_activity.xml create mode 100644 demos/java/io/material/demo/shrine/filters/res/values/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/filters/res/values/strings.xml create mode 100644 demos/java/io/material/demo/shrine/filters/res/values/styles.xml create mode 100644 demos/java/io/material/demo/shrine/products/AndroidManifest.xml create mode 100644 demos/java/io/material/demo/shrine/products/ImageRequester.java create mode 100644 demos/java/io/material/demo/shrine/products/ItemActivity.java create mode 100644 demos/java/io/material/demo/shrine/products/ProductEntry.java create mode 100644 demos/java/io/material/demo/shrine/products/ProductListActivity.java create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_add_shopping_cart_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_arrow_drop_down_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_favorite_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_filter_list_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_search_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_shopping_cart_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/ic_shrine_vd_theme_24.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/drawable/shrine_spinner_border.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/layout/shrine_item_activity.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/layout/shrine_product_activity.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/layout/shrine_product_entry.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_dropdown.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_item.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/menu/shrine_bottom_nav_view_menu.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/menu/shrine_toolbar_menu.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/raw/products.json create mode 100644 demos/java/io/material/demo/shrine/products/res/values/colors.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/values/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/values/strings.xml create mode 100644 demos/java/io/material/demo/shrine/products/res/values/styles.xml create mode 100644 demos/java/io/material/demo/shrine/res/values/strings.xml create mode 100644 demos/java/io/material/demo/shrine/theme/AndroidManifest.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-hdpi/product_logo_shrine_color_144.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-hdpi/product_logo_shrine_color_192.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-mdpi/product_logo_shrine_color_144.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-mdpi/product_logo_shrine_color_192.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-sw600dp/launch_screen.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_144.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_192.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_144.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_192.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xxxhdpi/product_logo_shrine_color_144.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable-xxxhdpi/product_logo_shrine_color_192.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/drawable/launch_screen.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/mipmap-hdpi/product_logo_shrine_launcher_color_48.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/mipmap-mdpi/product_logo_shrine_launcher_color_48.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/mipmap-xhdpi/product_logo_shrine_launcher_color_48.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/mipmap-xxhdpi/product_logo_shrine_launcher_color_48.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/mipmap-xxxhdpi/product_logo_shrine_launcher_color_48.png create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-land/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-port-v21/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land-v21/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-sw600dp-port-v21/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values-sw600dp/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values/colors.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values/dimens.xml create mode 100644 demos/java/io/material/demo/shrine/theme/res/values/styles.xml create mode 100644 demos/javatests/io/material/demo/shrine/products/ProductListActivityTest.java diff --git a/demos/java/io/material/demo/shrine/AndroidManifest.xml b/demos/java/io/material/demo/shrine/AndroidManifest.xml new file mode 100644 index 000000000..539b8dba5 --- /dev/null +++ b/demos/java/io/material/demo/shrine/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/filters/AndroidManifest.xml b/demos/java/io/material/demo/shrine/filters/AndroidManifest.xml new file mode 100644 index 000000000..748468c03 --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/filters/FiltersActivity.java b/demos/java/io/material/demo/shrine/filters/FiltersActivity.java new file mode 100644 index 000000000..52401ef9b --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/FiltersActivity.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.filters; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; + +/** + * Activity that displays a list of filters the user can set to refine the list of products. + */ +public class FiltersActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.shrine_filters_activity); + initToolbar(); + } + + private void initToolbar() { + Toolbar toolbar = (Toolbar) findViewById(R.id.AppBar); + setSupportActionBar(toolbar); + getSupportActionBar().setTitle(getString(R.string.shrine_filter_page_title)); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } +} diff --git a/demos/java/io/material/demo/shrine/filters/res/layout/shrine_filters_activity.xml b/demos/java/io/material/demo/shrine/filters/res/layout/shrine_filters_activity.xml new file mode 100644 index 000000000..7e245f859 --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/res/layout/shrine_filters_activity.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/filters/res/values/dimens.xml b/demos/java/io/material/demo/shrine/filters/res/values/dimens.xml new file mode 100644 index 000000000..7135b50a0 --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/res/values/dimens.xml @@ -0,0 +1,21 @@ + + + + 4dp + 16sp + 12dp + diff --git a/demos/java/io/material/demo/shrine/filters/res/values/strings.xml b/demos/java/io/material/demo/shrine/filters/res/values/strings.xml new file mode 100644 index 000000000..ea1bcc10d --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/res/values/strings.xml @@ -0,0 +1,28 @@ + + + + Filters + Price Range + $1000+ + International Shipping + Personalized Feeds + Item Type + Women + Men + Girls + Boys + diff --git a/demos/java/io/material/demo/shrine/filters/res/values/styles.xml b/demos/java/io/material/demo/shrine/filters/res/values/styles.xml new file mode 100644 index 000000000..91c335227 --- /dev/null +++ b/demos/java/io/material/demo/shrine/filters/res/values/styles.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/AndroidManifest.xml b/demos/java/io/material/demo/shrine/products/AndroidManifest.xml new file mode 100644 index 000000000..d48491fdc --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/ImageRequester.java b/demos/java/io/material/demo/shrine/products/ImageRequester.java new file mode 100644 index 000000000..5315d2a47 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/ImageRequester.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.products; + +import android.content.Context; +import android.graphics.Bitmap; +import android.util.DisplayMetrics; +import android.util.LruCache; +import com.android.volley.RequestQueue; +import com.android.volley.toolbox.ImageLoader; +import com.android.volley.toolbox.NetworkImageView; +import com.android.volley.toolbox.Volley; + +/** Singleton class that handles image requests using Volley. */ +public class ImageRequester { + private static Context ctx; + private static ImageRequester instance; + private final RequestQueue requestQueue; + private final ImageLoader imageLoader; + private final int maxByteSize; + + private ImageRequester(Context context) { + ctx = context; + this.requestQueue = Volley.newRequestQueue(ctx.getApplicationContext()); + this.requestQueue.start(); + this.maxByteSize = calculateMaxByteSize(); + this.imageLoader = + new ImageLoader( + requestQueue, + new ImageLoader.ImageCache() { + private final LruCache lruCache = + new LruCache(maxByteSize) { + @Override + protected int sizeOf(String url, Bitmap bitmap) { + return bitmap.getByteCount(); + } + }; + + @Override + public synchronized Bitmap getBitmap(String url) { + return lruCache.get(url); + } + + @Override + public synchronized void putBitmap(String url, Bitmap bitmap) { + lruCache.put(url, bitmap); + } + }); + instance = this; + } + + private static int calculateMaxByteSize() { + DisplayMetrics displayMetrics = ctx.getResources().getDisplayMetrics(); + final int screenBytes = displayMetrics.widthPixels * displayMetrics.heightPixels * 4; + return screenBytes * 3; + } + + /** + * Returns the existing ImageRequester instantiated, or a new instance if there is not yet an + * instance. + * + * @param context Of the calling activity. + * @return ImageRequester + */ + public static synchronized ImageRequester getInstance(Context context) { + if (instance == null) { + instance = new ImageRequester(context); + } + return instance; + } + + public void setImageFromUrl(NetworkImageView networkImageView, String url) { + networkImageView.setImageUrl(url, imageLoader); + } +} diff --git a/demos/java/io/material/demo/shrine/products/ItemActivity.java b/demos/java/io/material/demo/shrine/products/ItemActivity.java new file mode 100644 index 000000000..8c1d9e379 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/ItemActivity.java @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.products; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.Menu; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ArrayAdapter; +import android.widget.Spinner; +import android.widget.TextView; +import com.android.volley.toolbox.NetworkImageView; + +/** + * Activity that displays an individual product, including an image, name, and a short description. + */ +public class ItemActivity extends AppCompatActivity { + private static final String PRODUCT_TITLE = "title"; + private static final String PRODUCT_URL = "url"; + private static final String PRODUCT_DESCRIPTION = "description"; + private static final String TAG = ItemActivity.class.getSimpleName(); + private String fabMessage; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.shrine_item_activity); + initToolbar(); + populateProductViews(); + initFab(fabMessage); + } + + public static void createItemActivityIntent(Context context, ProductEntry productEntry) { + Intent intent = new Intent(context, ItemActivity.class); + intent.putExtra(PRODUCT_TITLE, productEntry.title); + intent.putExtra(PRODUCT_URL, productEntry.url); + intent.putExtra(PRODUCT_DESCRIPTION, productEntry.description); + context.startActivity(intent); + } + + private void populateProductViews() { + Bundle bundle = getIntent().getExtras(); + if (bundle == null) { + String error = "Error retrieving product information."; + Log.e(TAG, error); + Snackbar.make(findViewById(R.id.ProductTitle), error, Snackbar.LENGTH_SHORT).show(); + fabMessage = error; + } else { + TextView productTitle = (TextView) findViewById(R.id.ProductTitle); + productTitle.setText(bundle.getString(PRODUCT_TITLE)); + TextView productDescription = (TextView) findViewById(R.id.ProductDescription); + productDescription.setText(bundle.getString(PRODUCT_DESCRIPTION)); + initSpinner(); + NetworkImageView productImage = (NetworkImageView) findViewById(R.id.ProductImage); + ImageRequester.getInstance(this).setImageFromUrl(productImage, bundle.getString(PRODUCT_URL)); + fabMessage = getString(R.string.shrine_product_added_message); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + getMenuInflater().inflate(R.menu.shrine_toolbar_menu, menu); + menu.findItem(R.id.ShrineToolbarFilterIcon).setVisible(false); + return true; + } + + private void initToolbar() { + Toolbar toolbar = (Toolbar) findViewById(R.id.AppBar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + private void initFab(String fabMessage) { + findViewById(R.id.FloatingActionButton) + .setOnClickListener( + new OnClickListener() { + @Override + public void onClick(View v) { + Snackbar.make(v, fabMessage, Snackbar.LENGTH_SHORT).show(); + } + }); + } + + private void initSpinner() { + Spinner spinner = (Spinner) findViewById(R.id.QuantitySpinner); + ArrayAdapter adapter = + ArrayAdapter.createFromResource( + this, R.array.product_quantities, R.layout.shrine_spinner_item); + adapter.setDropDownViewResource(R.layout.shrine_spinner_dropdown); + spinner.setAdapter(adapter); + } +} diff --git a/demos/java/io/material/demo/shrine/products/ProductEntry.java b/demos/java/io/material/demo/shrine/products/ProductEntry.java new file mode 100644 index 000000000..4e1a2f6c9 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/ProductEntry.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.products; + +import android.net.Uri; + +/** A product entry in the list of products. */ +public class ProductEntry { + public final String title; + public final Uri dynamicUrl; + public final String url; + public final String price; + public final String description; + + public ProductEntry( + String title, String dynamicUrl, String url, String price, String description) { + this.title = title; + this.dynamicUrl = Uri.parse(dynamicUrl); + this.url = url; + this.price = price; + this.description = description; + } +} diff --git a/demos/java/io/material/demo/shrine/products/ProductListActivity.java b/demos/java/io/material/demo/shrine/products/ProductListActivity.java new file mode 100644 index 000000000..87f58fd66 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/ProductListActivity.java @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.products; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.graphics.Point; +import android.os.Bundle; +import android.support.design.widget.CollapsingToolbarLayout; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.CardView; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.RecyclerView.Adapter; +import android.support.v7.widget.RecyclerView.ViewHolder; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.TextView; +import com.android.volley.toolbox.NetworkImageView; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import io.material.demo.shrine.filters.FiltersActivity; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringWriter; +import java.io.Writer; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +/** Activity that displays a list of products. */ +public class ProductListActivity extends AppCompatActivity { + private static final String TAG = ProductListActivity.class.getSimpleName(); + private ImageRequester imageRequester; + private List productEntryList; + + @Override + public void onCreate(Bundle savedInstanceState) { + setTheme(R.style.Theme_Shrine); + super.onCreate(savedInstanceState); + setContentView(R.layout.shrine_product_activity); + imageRequester = ImageRequester.getInstance(this); + initProductEntryList(); + initCollapsingToolbar(); + initItemGrid(); + } + + private void initProductEntryList() { + InputStream inputStream = getResources().openRawResource(R.raw.products); + Writer writer = new StringWriter(); + char[] buffer = new char[1024]; + try { + Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + int pointer; + while ((pointer = reader.read(buffer)) != -1) { + writer.write(buffer, 0, pointer); + } + } catch (IOException exception) { + Log.e(TAG, "Error writing/reading from the JSON file.", exception); + } finally { + try { + inputStream.close(); + } catch (IOException exception) { + Log.e(TAG, "Error closing the input stream.", exception); + } + } + String jsonProductsString = writer.toString(); + Gson gson = new Gson(); + Type productListType = new TypeToken>() {}.getType(); + this.productEntryList = gson.fromJson(jsonProductsString, productListType); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + getMenuInflater().inflate(R.menu.shrine_toolbar_menu, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + if (menuItem.getItemId() == R.id.ShrineToolbarFilterIcon) { + startActivity(new Intent(this, FiltersActivity.class)); + return true; + } + return false; + } + + private void initCollapsingToolbar() { + Toolbar toolbar = (Toolbar) findViewById(R.id.AppBar); + int collapsingToolbarImageIndex = 6; + int collapsingImageToolbarSize = 1200; + NetworkImageView collapsingToolbarImage = + (NetworkImageView) findViewById(R.id.CollapsingToolbarImage); + StringBuilder collapsingToolbarImageUrl = + new StringBuilder(productEntryList.get(collapsingToolbarImageIndex).url); + collapsingToolbarImageUrl.append("=s"); + collapsingToolbarImageUrl.append(collapsingImageToolbarSize); + setSupportActionBar(toolbar); + CollapsingToolbarLayout collapsingToolbarLayout = + (CollapsingToolbarLayout) findViewById(R.id.CollapsingToolbarLayout); + collapsingToolbarLayout.setTitle(toolbar.getTitle()); + collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.TextAppearance_Shrine_Logo); + collapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.TextAppearance_Shrine_Logo); + imageRequester.setImageFromUrl(collapsingToolbarImage, collapsingToolbarImageUrl.toString()); + Point windowSize = new Point(); + getWindowManager().getDefaultDisplay().getSize(windowSize); + int windowWidth = windowSize.x; + collapsingToolbarImage.setX(collapsingToolbarImage.getX() - windowWidth / 4); + collapsingToolbarLayout.setScrimVisibleHeightTrigger( + (int) getResources().getDimension(R.dimen.shrine_tall_toolbar_height) / 2); + } + + private void initItemGrid() { + RecyclerView recyclerView = (RecyclerView) findViewById(R.id.ProductGrid); + recyclerView.setHasFixedSize(true); + recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + recyclerView.setAdapter(new ProductAdapter(this, productEntryList, imageRequester)); + } + + private static class ProductAdapter extends Adapter { + private final Activity activity; + private final List productEntries; + public ImageRequester imageRequester; + + public ProductAdapter( + Activity activity, List productEntries, ImageRequester imageRequester) { + this.activity = activity; + this.productEntries = productEntries; + this.imageRequester = imageRequester; + } + + @Override + public ProductViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { + return new ProductViewHolder(activity, viewGroup); + } + + @Override + public void onBindViewHolder(ProductViewHolder productViewHolder, int i) { + productViewHolder.bind(activity, productEntries.get(i), imageRequester); + } + + @Override + public int getItemCount() { + return productEntries.size(); + } + } + + private static class ProductViewHolder extends ViewHolder { + private final TextView productPriceView; + private final NetworkImageView productImageView; + private final TextView productShopNameView; + private final CardView productEntryView; + + public ProductViewHolder(Context context, ViewGroup parent) { + super(LayoutInflater.from(context).inflate(R.layout.shrine_product_entry, parent, false)); + ViewGroup.LayoutParams layoutParams = itemView.getLayoutParams(); + itemView.setLayoutParams(layoutParams); + productPriceView = (TextView) itemView.findViewById(R.id.ProductPrice); + productImageView = (NetworkImageView) itemView.findViewById(R.id.ProductImage); + productShopNameView = (TextView) itemView.findViewById(R.id.ProductShopName); + productEntryView = (CardView) itemView.findViewById(R.id.ProductEntry); + productEntryView.setOnClickListener(clickListener); + } + + private final OnClickListener clickListener = + new OnClickListener() { + @Override + public void onClick(View v) { + ItemActivity.createItemActivityIntent(v.getContext(), (ProductEntry) v.getTag()); + } + }; + + public void bind(Context context, ProductEntry productEntry, ImageRequester imageRequester) { + productPriceView.setText(productEntry.price); + imageRequester.setImageFromUrl(productImageView, productEntry.url); + productShopNameView.setText(productEntry.title); + productEntryView.setTag(productEntry); + } + } +} diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_add_shopping_cart_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_add_shopping_cart_vd_theme_24.xml new file mode 100644 index 000000000..a8d439dd1 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_add_shopping_cart_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_arrow_drop_down_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_arrow_drop_down_vd_theme_24.xml new file mode 100644 index 000000000..b3a76d067 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_arrow_drop_down_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_favorite_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_favorite_vd_theme_24.xml new file mode 100644 index 000000000..2f8da7bed --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_favorite_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_filter_list_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_filter_list_vd_theme_24.xml new file mode 100644 index 000000000..88e114552 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_filter_list_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_search_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_search_vd_theme_24.xml new file mode 100644 index 000000000..c88816ee8 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_search_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_shopping_cart_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_shopping_cart_vd_theme_24.xml new file mode 100644 index 000000000..ca19ddc0e --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_shopping_cart_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/ic_shrine_vd_theme_24.xml b/demos/java/io/material/demo/shrine/products/res/drawable/ic_shrine_vd_theme_24.xml new file mode 100644 index 000000000..889b509df --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/ic_shrine_vd_theme_24.xml @@ -0,0 +1,25 @@ + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/drawable/shrine_spinner_border.xml b/demos/java/io/material/demo/shrine/products/res/drawable/shrine_spinner_border.xml new file mode 100644 index 000000000..d92309a33 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/drawable/shrine_spinner_border.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/layout/shrine_item_activity.xml b/demos/java/io/material/demo/shrine/products/res/layout/shrine_item_activity.xml new file mode 100644 index 000000000..8587ebd2b --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/layout/shrine_item_activity.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_activity.xml b/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_activity.xml new file mode 100644 index 000000000..62900548b --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_activity.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_entry.xml b/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_entry.xml new file mode 100644 index 000000000..f301d1807 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/layout/shrine_product_entry.xml @@ -0,0 +1,51 @@ + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_dropdown.xml b/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_dropdown.xml new file mode 100644 index 000000000..d53039de3 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_dropdown.xml @@ -0,0 +1,18 @@ + + + diff --git a/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_item.xml b/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_item.xml new file mode 100644 index 000000000..5ac3b6242 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/layout/shrine_spinner_item.xml @@ -0,0 +1,20 @@ + + + diff --git a/demos/java/io/material/demo/shrine/products/res/menu/shrine_bottom_nav_view_menu.xml b/demos/java/io/material/demo/shrine/products/res/menu/shrine_bottom_nav_view_menu.xml new file mode 100644 index 000000000..7306c5f53 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/menu/shrine_bottom_nav_view_menu.xml @@ -0,0 +1,37 @@ + + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/menu/shrine_toolbar_menu.xml b/demos/java/io/material/demo/shrine/products/res/menu/shrine_toolbar_menu.xml new file mode 100644 index 000000000..7e60667c7 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/menu/shrine_toolbar_menu.xml @@ -0,0 +1,29 @@ + + + + + + diff --git a/demos/java/io/material/demo/shrine/products/res/raw/products.json b/demos/java/io/material/demo/shrine/products/res/raw/products.json new file mode 100644 index 000000000..1c4ed27cc --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/raw/products.json @@ -0,0 +1,74 @@ +[ + { + "title": "Red Popsicle", + "url": "https://lh3.googleusercontent.com/3w0neXbSlI4p6mtkRdwL7SwRH4NKHmmdBm1n58tNvUnV0DwnxZ6MfIwzSz0c7MlE3NZku1TmQAQm-4Tly6geteQpONOniM_m", + "price": "$5", + "description": "Looks can be deceiving. This Red Popsicle comes in a wide variety of flavors, including strawberry, that burst as soon as it hits the mouth. Red Popsicles melt slow, so savor the flavor." + }, + { + "title": "Green Slip-ons", + "url": "https://lh3.googleusercontent.com/7O1nZyD9xwP0nel27kC49ZVfuUlMJrGdcI1j8PHBZxD2J8Gd-q1wQ5Rrn9sDQ_Q7Zi1-SNHDrBRaB5FD5zbtoEto1RpjBkXo", + "price": "$75", + "description": "Feetsy has been making extraordinary slip-ons for decades. With each pair of shoes purchased Feetsy donates a pair to those in need. Buy yourself a pair, buy someone else a pair. Very Comfortable." + }, + { + "title": "Teapot", + "url": "https://lh3.googleusercontent.com/2L6RmCDcdBT_5160bg-rZaybSCGze6TCpEyTYko0Y6GWVp432qttKvXB19w4TgSnTz-Pxes12TPSzdRWT8Gq9dCJm2aF1zPj8g", + "price": "$210", + "description": "Impress your guests with Teapot by Kitchen Stuff. Teapot holds extremely hot liquids and pours them from the spout. Use the handle, shown on the left, so your fingers don’t get burnt while pouring." + }, + { + "title": "Beachball", + "url": "https://lh3.googleusercontent.com/FDlLqxdGjraCR8J0QzcuCh7eRHvnXNyWwP9mOTMviY2IX4WglCbAobxBD8tfYvUk-gZeOwvv02IC5vhbgEAk7F7gV2XwLJpAaw", + "price": "$25", + "description": "Are you at a baseball game and feeling bored? At a pool party and looking for a laugh? Do you need something to take your anger out on? Beachball, by inflatable fun, is the perfect outlet." + }, + { + "title": "Clock", + "url": "https://lh3.googleusercontent.com/RJIsp5e-fQ_oQBWR-OJfJgcvCmfFJ8ZCL5D5_4-P3U4h7Im-WDvVJYqTl_YsCWcKFn5xbLI_9flEzUr0CA1PwCYGqDQDLvKxDA", + "price": "$120", + "description": "Timekeeper Co makes clocks that tell time precisely. Clock is very simple to use, set the time using your phone, hang it, and viola! You’ll never be late again." + }, + { + "title": "Lime Flippers", + "url": "https://lh3.googleusercontent.com/74P9JRtvjF4IIUYLxTZEFp9ffjNrcTFE1pCPduyTLPNjTAldtsRKn0iDx1CmOclJIsYJUWpyCKqXFrJzv3-ebEDe62wLci0R", + "price": "$25", + "description": "Flippers are a nice tool to have when you’re being chased by an oversized sea turtle. Never get caught again with these fast water shoes. You’re like a fish, but more graceful." + }, + { + "title": "Perfect Goldfish \nBowl", + "url": "https://lh3.googleusercontent.com/pfgpUuVo_9zWqn2lI6gAlDK2ceLe_MEzgNtj-RaClJb0w41NvSrOg-xgwMcr5FrYTdC6wJHKDSdP7GiuSbNAdjTSHlOdfXR1", + "price": "$25", + "description": "The Perfect Bowl Co makes the best bowls for just about anything you can think of. This Perfect Goldfish Bowl holds water and fish perfectly. Looks great in living rooms. Keep out of reach from cats." + }, + { + "title": "Surfboard", + "url": "https://lh3.googleusercontent.com/585zsoqfGl58nbCDgM3MXLcVcZCfriN1k4N7KTnHDBULhSmeF9D80HhLAuDixrk0gLp9YdArxCQfZ7Yg-3zlEgkvQBaXzBwYSg", + "price": "$300", + "description": "Who says you can’t walk on water? With Surfboard, by Surfboard Supply, you can fly on water. This beast is fast and handles like a porsche. Hang Ten Bro!" + }, + { + "title": "Backpack", + "url": "https://lh3.googleusercontent.com/KE89imsb_0hMmO2YMxnZ6cQYelrmI3jdpDo06svFeNj_OjHUw9dfHoBj4pN7qqm1khs9-_japkG5As6TWgOmJzTa8Cv_9GcGfg", + "price": "$150", + "description": "This backpack by Bags ‘n’ stuff can hold just about anything: a laptop, a pen, a protractor, notebooks, small animals, plugs for your devices, sunglasses, gym clothes, shoes, gloves, two kittens, and even lunch!" + }, + { + "title": "Sunglasses", + "url": "https://lh3.googleusercontent.com/-0TR98kQUVgeSGyK24T0181IwtNgCWhxfMejw-fEXQF005lfuDERc-B6hxtSPBsPyFEJBxPv8H9FSNb7k3AgjRO2wm8YXeMa", + "price": "$100", + "description": "Be an optimist. Carry Sunglasses with you at all times. All Tints and Shades products come with polarized lenses and super duper UV protection so you can look at the sun for however long you want. Sunglasses make you look cool, wear them." + }, + { + "title": "Red Lipstick Set", + "url": "https://lh3.googleusercontent.com/w7BggGOgZEVuI4_wsSO96PDi-y4kqtHVHqQknCMN7eyraQLIlh58QK5Y1Wc-eTAYDcmn7KmiJNvKsoFLAZBClSAYpI9vyuDRIw", + "price": "$25", + "description": "Trying to find the perfect shade to match your mood? Try no longer. Red Lipstick Set by StickLips has you covered for those nights when you need to get out, or even if you’re just headed to work." + }, + { + "title": "Dipped Brush", + "url": "https://lh3.googleusercontent.com/8dsHE4FwZ5VJOFj_EmhGt48r19ILh7rloMCBC5QPyP2Jrm7-Jz4wVZa1Q3cGFBBbi8OKJzb7nwUnBOqaPVwafMKOthbRtv6Z", + "price": "$15", + "description": "WeDipIt does it again. This handle dipped 4 inch brush is a perfect for painting 4 inch lines, or coloring in big areas with paint. Just be sure you don’t drop it in a bucket of red paint, then it won’t look dipped anymore." + } +] diff --git a/demos/java/io/material/demo/shrine/products/res/values/colors.xml b/demos/java/io/material/demo/shrine/products/res/values/colors.xml new file mode 100644 index 000000000..166eb4ae7 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/values/colors.xml @@ -0,0 +1,21 @@ + + + + #ffb300 + #1f000000 + #0a3142 + diff --git a/demos/java/io/material/demo/shrine/products/res/values/dimens.xml b/demos/java/io/material/demo/shrine/products/res/values/dimens.xml new file mode 100644 index 000000000..8d10ac280 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/values/dimens.xml @@ -0,0 +1,34 @@ + + + + 474dp + 48dp + 124dp + 124dp + 232dp + 124dp + 8dp + 4dp + 12dp + 200dp + 292dp + 30sp + 56dp + 212dp + 48dp + 2dp + diff --git a/demos/java/io/material/demo/shrine/products/res/values/strings.xml b/demos/java/io/material/demo/shrine/products/res/values/strings.xml new file mode 100644 index 000000000..e279b0284 --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/values/strings.xml @@ -0,0 +1,37 @@ + + + + Best Gifts for Teen Girls + + Leave the tunnel and the rain is fallin amazing things happen when you wait + + Product was added to your cart. + + Favorites + Home + Cart + + Search + Filter + + + Quantity 1 + Quantity 2 + Quantity 3 + Quantity 4 + + diff --git a/demos/java/io/material/demo/shrine/products/res/values/styles.xml b/demos/java/io/material/demo/shrine/products/res/values/styles.xml new file mode 100644 index 000000000..1a9f06e1b --- /dev/null +++ b/demos/java/io/material/demo/shrine/products/res/values/styles.xml @@ -0,0 +1,37 @@ + + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/res/values/strings.xml b/demos/java/io/material/demo/shrine/res/values/strings.xml new file mode 100644 index 000000000..bacc315d7 --- /dev/null +++ b/demos/java/io/material/demo/shrine/res/values/strings.xml @@ -0,0 +1,19 @@ + + + + Shrine + diff --git a/demos/java/io/material/demo/shrine/theme/AndroidManifest.xml b/demos/java/io/material/demo/shrine/theme/AndroidManifest.xml new file mode 100644 index 000000000..97244988e --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-hdpi/product_logo_shrine_color_144.png b/demos/java/io/material/demo/shrine/theme/res/drawable-hdpi/product_logo_shrine_color_144.png new file mode 100644 index 0000000000000000000000000000000000000000..28e5a7d7b87f81e2dd78cfef8b414e25474c0138 GIT binary patch literal 7173 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 bL=Qkk+-21v?rQ#jKaHs=X(?7HScd;UuiRlX literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-mdpi/product_logo_shrine_color_144.png b/demos/java/io/material/demo/shrine/theme/res/drawable-mdpi/product_logo_shrine_color_144.png new file mode 100644 index 0000000000000000000000000000000000000000..a56c7f511a5e62879a8ed4a971e02103298efd79 GIT binary patch literal 4648 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 + + + + + + + diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_144.png b/demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_144.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf6ea2397fada1e4dd48736719a222d931df75b GIT binary patch literal 9854 zcmX|n1y~f{_xCP~?9$!cDAL^v(jX-uEgjMzT`MfIl(dqvARy8yAR*li(v1QF0!ugV z`u+W%_dYZ8%yZ7?-V^tnGk4}rw2qbvJ`N2I006*OQ&rRh0Dw&YP6!qN03eH~fB^s; zN@|Mo`u@QEj<;wU0EWE#O8FJz-|hcz_S+2kg-saZh}F4ou8aSUYW10F*TuQ+TbC?t zAZP@-7*FvFMa(3bch4{YDgV8|a9ubXTLc}`^Mnx(35#A#+g4A1;*Zv(nhE1{Ua&eE-mYe@Uc+vw zMzT_texTmn@Vh%tKIQiNAM1_a8!JQjU_Ws3sW=_q2Dgz9IZB$KYZ&sNMUZIU$?Q*{ zG%d!xMokCLAW94(NSx_ec8n7F;=2^>Lv-8=oTL*6y=pgE+!n{LWwp%!75wyM#8EYz zi43a3QTQMZT>!c>Db&X0C7@0sGVkRHjU;bKRICFr3$0+nJX+lzMxr$DHu-tN zlf|K#SSr>;PqXmbtL@>eIzvj={q?bDco-clZ-;rR`?kpV1>{Oh{iO^$l}a`GAW>47)LZ zNz{58tpHzFDDjinQ}lIJSAnMKYV*Lu`w6mLWdu4l&tqR&*+1+nY3>0;M*s5HJ{%~6 ziv@V!WuzTQgNxhF6)}al&Ed;*$ZI14H2XL!+>Q>pFdV*8EG@M6HiI6yD}y6c+6JaW z?q=f(m9`4eAqUG6+^y{EFYsr4V1q)qSS%+p5B;A}p;_*_-$KN=$7HkIEWWjh&6i2j zx|@7!6eb5}aWzl*j=0M@JD4WyXjZ82eTv4M3&yWiE-PFot(o84sng|A5DkZy zV6ILeF#J-cIrI-n6O6(t9XruI?4^-%ruS@?_G4zNa#Xbt6cXzTR4}pyVWu=+6og9! z{K8O&|8T`PEqhSOd|_^^W`=-2~&)gng=$a~i!1x^SF9B$cCd z|NN!Y-#K9ng{`Hg>VKb|R^(;sz}!)}&peQ#{U$6nRbpIAjS^sln$j~hy6g(yW;9uG z_Pi1SvIHgwJKVgBN4&4auswiX`3z;&|HANXl7WW2`LTD_17?(FU=Wdg5CD1&#p%RW zHJgIqdBuyo>1Uq%yM0UH7nK_Ja5tQ=g?OOJZn80>3b=m>c)}N2X~xegyy^S{;;YHT%`j#MgqqmJ-akasUk1_@nEtBuUEP; zA+K*8d=1cDupAT5Yh~juT}&H3xpZS9h#3(NpDGUHbZXpy*Pd1tGyj-n*&?x-u6NQM zm=O0I31B$Q7{m@Y%G9ShkI4sK}X7zBTY9V+*@ z<@4V%LRMLuo`&+TB`gtlK#YrS%J9cuBaDHQ{>nQajyQcF`3fz`WH(AM< z8s7}+FWbWf^$B(Oc>WF7kyCT1{Uv4nCkrX#r7#s%kB~<;+99R0iS}<^NI+HUve2#u zGu-}qAt){fUHkPCJP!=dJ($;^L8X-dufbNezW=P>57=`REGA_->Nuz02Si4PeGENK z*BV3I#m4{_J}>_>j+TeD~hskz%{a0VSBA&wl_jrA5 zY&95|QSVfC1zCkn3IXOGCuL(*#g0$-9y3Q=12GDfl;%pK$(iEq;cYM3p$`=!|I`5m zp5;kNNZ3|^GcMbq0|SGdxy^5aP0aKA;>LfJ5Fv9+hOhZIQizt)ctaj!s84Z;E)Pzf zg2T!Hk&soxFlEQmDbT4_? z^YcyeN(Xqp9MA*e1Ptq(Ilwov>5yY&pU&2M`y@6mure;8=iBh1q7lnSkPXOZO&6z>pNg4}87cY2&5-gd56V?d)gZfOd)8UN-<==gmwMeeR!U z@BY+1iohn?JQHG*RuGjfk8!6}Gk84;VV4kqzSULD-w?bn(&qw&lk3~SZbJJttj;vD)lq#3_F>k;m;3=fEc=1w5%$g zfUp|^!(hwRup7c_#d7LAS1p`z9ufNxEd=6d12ol5l-YsV&qzzjw~hq~GjLMontcqs z4$_0|eXLxY;Z&F`>V0#%cj6Em9%`%k#UcKT$I!C;`rf^5f2q(Qrl%oD^R{`LnsF&@ z12y|a^T?*f9fgSDySs1b=3QpE78265&eIDp>o zwoE&iMNX7M_8S-hqr$7qVw(D0dfhnx9$nL=Rr?i@C$~xU)&f zVP3wY)+SvuBnjL6ds`iM}XN`iV@d5p`zE&G+(Y8ttfwDQBv4i=aaZYJT!;Ertzg1c{? zgTU+?HW;a>GqJL{V(#4h;jn2EH|UAqNK(5l;>*DJ}1jIL`i= zu-hl~yj~ExsH%Ge+nwuXn~BP<PZGm4_ zZX8hTeYp1fGBpsXy6W42{q?f_+pm4pX4&H5Wx$$;W{+B}AT*;uJV?ylY6OKxfZOLn z+=QQT*(d-NU*-O4>Nm6NFiY#6jAiys5L#a#PRJ;Y9Ei{}2EmQ&x!+ z&LScNP$tu`*QFSzSq0b)-dBa!BLL*OMGsO z=}*Ge4;9O00Q`MYg)}?6Ulg_*puY+nvPX80xp|8&k(P!q+1u5e0_q1>C0Mc=Yi3rK zQ*YIJ8H6WGbQ!Z)M3xs%M?(X5gkI(Yd9GT7-q8Z<2%>=nx~VFJb9~J8RYS}W{=TR% z>4YDsU}oV1n>_#PAmbkchMgQPG2>I)DZwa`-_czRo$pJvUK*)f{X$J_o_7)NbphnaeJR zX=L@bX9uykF-{qr)Saw|&-Nx_>tAUvw1pH138LQmGLtg)w|I6eT!6>OK9Er)_wLuQ zK%-P`-iK!NE^y%mVJwfFWCENRkWvy&bJVcqTY{=j#70{NWCfK2f1Wi~?r8()1_JbHV^dan$ zzX@)}jiIl~YxQ^OstmGDE%bEO2SeA>8CDgE>pS(U+u`@{{4bW{a)=If6MSL!H4Pm_ zN6dJTX+zR80iXhUkyGb-hcy#Tc^7ov>x?i{j7A4EJEiBrFts7fS_*3-es5OIRTEZW zZ@acwWhl4$+5`ZH4`d%~m4P?COR0t9C2E9BU+8#}!4LIG=tsQ4&2aBUhRJM{@I zQ)9rHi5^w-r8qx2l@(!zV;MsxcX$ag9nRe&z!J2XcE7CM%!Ufm337~xzh5rir&#R+}JnqO=&V&hl%e+lDR^5ls}&7-~Y z*#ogvmX8sD-=@UKMKn03qu}jhbagVTgJ(x$k8h}@7?L=P-HZ}av)TI+b8r=o0T zJHi3dnnuncEi*1HX~Bq`(}nKhb9#%xe&4s;q>PS~=-@4-4uc)~hdbpF72d{9IJtk8rU7pumwhkG%Fgt*53z(l-+++r(N ze=@}XU@i%gLDPw0C}QOZDa{9(tkmC<1MJlom2GGb_=ZzGu>?q81#rL8jL3z5t6sR_Aac_;U`*aKp z(l}20V`9r1X}?8UAl7f^D~;U?Sr+|}!x|scAVk)m6=03-t!;ANA1vbXT3T*-@>C4X z3V0qr&d>r{`PUNk)E+nJEs+^TF*hwO%bn^D{3XEMQ z9w3^Frs>MhHzrDLrpNsUJD7=>(cuvn{7>4+_G8Oodj7%T;ai`7%7||y#RcO~b)DnW8Us5g#tG(n z4OnDHv579cbIYA)b=Rm$N=r}R4DTB~y1^4s15AGT%E2toMGjq^J+@+ksA@Ur?Im8q z`!wm18688z^R)3UV#*IaJw3DoOiJhVnl6!pG#s~EzaH0+Dk@z7toZWwooD-*RCIMG zO!A^wdFfD^bCxS^9$Sj|qhu#Ai;&`?l0nRVIllVq`IDJN+r$-evN2d8M261OD&ynF zi*0L`OuR{zkK^6I2%`k;vUJ%gGCI;ez-7#qvO@Upl@Na zy8~FSC6h9e4#44t-mJ_kN#jLEM&?3f%skg)8mwvu+CvYeL;Cp*;S^fws)nrSf*=z0 z<1(B)_v_b)uaS4gMf0GY-gsIeI73Ba)yT-mUnZ?VCWd#-E5R|iIQB|AYn-`>Y3Pb< zqBgLs5VJRJEGa8KpFh6G&VVHl7l*y$t3deDY>s3?+fZL$n25IPZODyr(0Mo5FE2kF zqXq%%vhjhLR3+1inn}v?|LsZ$?O%}qELPiD`6tA8&PB?v&x>lgnDve_{qK|IPO-bo z-j&_hb!mx4grAsUZri|hX`6vRpIYvVhKJ^+P#!Onho)xxkxX}zK?*X;D)t|Gv1X(q zE}4N-Tuk6mfif{Em2#oXnw<|LJdMDGL%2Lt|>9nm^i@ zD#9N%hru4$<}9UTJZ>(sfYoxbf%712g{JTg9E#6BRHpc~7g6~PJSHX?Iyqjy&m3|? zuXSk0VOlxm!(U8KC>FA8uYD3Wn%cC{8U@1^QOU-8Y8MAf6B1t)3^{~L+#jN5V7@L( zwsx`^hiWyE+L2b`u{yF)l+wFd(emVCD{>q}Y+BU$e#j0Uq+C^S<)(cuxSimd_f8c~ zKqb8QSeuIxc?n=e9_pFA+wTkdJNT7OvSPe7dz?^H`x>wLlmpZjQ?}k7MZ$d|FXtK@bu{xp-4_&o1$gy6@Ji77bNmRW(wLX!HZRZdLNHzwp$6$7C082^ zJ7oLz>O`#WWwi47A6n`J;-;^iDuO z)(HlYCL5_?J*Sf#9)t<5gse*Fvi|5LT@RePX3UuH-2x>_vRF&p)W++y$)oTq9Hx_c z9E%j=<1}qR;Z|?FG^hCm7}xR#y55;)Xt%~tC%bgiUdGkR)kA*MlC7?V?-CX})MaB^ zt4%|EqCZ*)2<9S0VkwzoJ-i8$afRB(GqKHRxjS1|Gfd`1xIuOi>z(r zK7Zo5XU~*yYe_;WrUq^DEGpus$6(LI{xyP%iZJp=w2?lLOi0B|jBzP=!a6Z%(k8wR z@YN%}5PJPC={3iZFa3T-;tYKjbc)Uftfn-ytN47khl){DU@o&Y%MHCx%El}O5=^>X zb-GkW(%$wPc#enP{`!mBoOHZ7?VPVQ>8{;UJw#b6kn4j2aTonq+7$6y>WbPM6N{6` zK%G_t`-HgES%gOXuHPw82$TIC5SXAvo{Lw<2)oN8p@8s+{dHZjdEX#BQ@{M3lLiZ3 zvBS`e;nq~Xy=$8-?$vzfjss_&xcoZ9qu)pLnq=!0`t!4^b%J^Gq#QL=Ix+k^04F1P`x~ zN-dvrnIK-+J@`0MCVQ1r>_0yX;%rQn(~7<6@mmpkok1+%H0QwyQa7d=PoDQir;>Dh zdLjeM2JIak^Lh?DnHX0!6f2ck%DQEt@pXOm72uRsGE|&j6iHUa&$Qp37I()~qS_6pOlO|(bi8p!1tPG7yPl`A{aLc>Ed_q8?++knU9_6Nu70y_L1 z@9)z_&6*P2C)DHBwG^nB1Gi9W%#JB|3~6d(#}zU<{RzUKRHTILvAvx_grpzJ4f^@! zyjGBr&9t3JDfqkhHi5F-CWKs!%M%2;7RgC$8w!fEc;j)wpjld`35lj@!`o@ESXTYY zFUojJ9gIbMm=yLv0Sb{y4vclv|NJL(z@j3@5Q?Df#mjcgRS33rSU#C7H zrN<=_h+dINAB*OCy`4k@1kzl$K65G&B(#}9bwwp{+uO<#qi0b-l!*#b=eiuoebP}! zJoa>h+!Z2&yg1@fkV(eEbR-kL@5LVw{51p5>xzrx%D{qFhVWr3Wt z4HR80_?AZS!Y%RgCb88ew)EIQ+qRU+?4t3^T zUCZrL%UvJOu}?B`?D~@OYEu2FUuxw|x<3`a^?3FIBq+=nl<4yIoQdUJNY0n~5D&=~ zc_m05%c;xi)O*rFstpYM=9&3Q@GQSDApow9!KDWHjLc2JHt$XHAa>7J?iw^8agg=r zQ2S>2!wq=Sq*!e%$Ei;ORl}Lfu)p+&Y_;jk9g^|mKZu9 zhs@blfUDzhsbMr*cX1gT#QN8J^bXh2YIo;T3)LZBPDf&V&Si$Hll+HR#SdSD92YCK zyw+`YTNnXwX?~b}#7hhdQyDGCj#O zAStKA?BEn`_7B%l1F=V2>V6NUdY63DU1oqwX+o9IdR?`tpr{MU>e!eA%BxbUnNj@%*&Ha^gzTT=Wi< zmyD;rf!)QgG*!)4jpVQ<)#EgZ2cKGMe@mpGl_v^T6N)0lPJ5$+gJG2Jrpn6FRNT)c z%rq4G@J#eXzNSaUsb`3$^w}YHkp(`)fC&1Ss~wIt^*wPvPT=+I2cDI9@Y+M)>ImmN zDt{h>A_q)Tf`sW=Ld~8&@1d~rdDYEPpyMy}2~zL|artIzm^v3|#20w!K6t?GNhlf&&kWc8H?Z3F$#Ns!+akZ|C z1UaZamfBIXAcyj{3y%DmmEADyi?+DS_=)0x6oWM5foXQc7-3bRydk^4uEg5w3M>0C z3KM4wauK66>$mVIy70B$Pk&2XbS-)OM*Z(5T7xb`poSv;x@v1)72uzTUH(z|n&ct} z1&F6a2`ios7I6bc23Q+Yv?=H<#j=>A{1Se18*juo(i(%@u1wwY-m`D4;W9g{<%ucT zQ(4fF)Et>D3DV0lZk)hgl&9Q%)-<(+z$Y) zvBT&+;%7Ro@*h?{g{*Z1P$0K;B0m$QT#lbmznyDbmN)eA*9Grj|8=)#ou=pJX#YF; zLOa(PweC#LZ=xAW+0!?C4mPG=Q!+<<8rKLB|e9wu&lJ|#TgH2ouQg7(@Ch^(L#pmxDRXwZ|H!e_^?3GED2KLt%*i^;`&xi89!M^qO}_`y z$o-ZVLnB1akUvQAXNo)U;(-3k!qk|r6GfRg6=%1l5`}bjF{6^8%~_0%jxH;Xc7gG{ zLTn$q&^KcWBHKi(N1MTHP&o0_!AftT`BVj8c?^xNKg(h3waKSZeaQ@suY#>CcJNx3 zJPlZrO*(s!7(6k7K}PapVf7wwqeso9S>+(bK%DFJa#nQVAMfT=Tth5@*!$2=bL&PY z9PwZCdp(;EGZ>==DL^-0Ym{(o7KMep+^@@g?Yce^P>OWP4Jm3l74aKP`xB<|tY{yp z2@WrKwK!N`#YQ{H*C?zXS7aA$uhoVBwk;?6HK26PZ^qBnAy^UvufQ7Hau1q8En+7>0yOU7M4#+(n+s0yGf31=h&rc!f7CQ|+M0w>zIja3Y1EDH zGoat9`C@CwE@t%WnlT!2g^&w_Ms}M-M z4T-mVYG=}9s@~f=ra+mL;r;u0pQh2xkn!dLD2eX)uWZMUvW?$uY-49Ro#WPJ0gAK0a^v$|Jzw8s6fCG6B z6Dt`ed1lF;;m~{{Pf%@Y*i<)CO=*!T7;N_mZ+E>Xj2@6g6XuoncuCd) z{B4wx+kSp>&FZCO>acDWqWr0mvUmmfVwubQhJ^hf`m!OZOU58{BLMfH8DsB%5{;?K zRO!O#_W-N4Z*-%`q?Ph@;dRE}Y_c4T&*-t!T_t4R2h}VfRUO|R%=I4Ji_`eC`i@a) zuvHe*xkvTM`qonQ+1Mvo#W~m{{-od;cp@n!^%0xd%+g*?2jP(w9ZOSpkS}k?;Ov*M zTz2>jvVD>bD|04hcZaph9T^_n6TuxJYnPyAP;`%KewPgnDq&@m$Ul#8{oe5USt^(f zFeTlNI=H84cGQg%w>s=Y@iH$;;Us5>w6fh> zg7K&l#c1Ny{neM0-MAYv7PStsZba&%ree)s;1Iwa`)067$Z!?KccAxAA%2rW zfYy92C9C{~?rwE06+$}kM008m)8oEZ#oOIuTYg8)mpQj?ZlH$9MO%Ba45x0a;K7g% z*_@FOkZ~jt4T$8DxYETQ3@dH_yhbX$Wht)YBx&6wa672rdstK;4iafmEMX?D2#@8DmA`{7Eds3$?!6%E zz);a25kkS1DxqTiCX{(+FgOtj6Ei#!fX&PXRe&%9NfcDkGzAQ{|7dVb)&FP^?8N_Q bL=Qkk+-21v?rQ#jKaHs=X(?7HScd;UuiRlX literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_192.png b/demos/java/io/material/demo/shrine/theme/res/drawable-xhdpi/product_logo_shrine_color_192.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddb0d2b440a46f7cdb9870bfc4e96a5f8898153 GIT binary patch literal 13860 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 literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_144.png b/demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_144.png new file mode 100644 index 0000000000000000000000000000000000000000..734a8c7196b8e8701087117207d0110a9866bc08 GIT binary patch literal 15752 zcmZ|0bzGD07eBm>?oR1OYJea}hrpx+qy%AfmxQASDBU@bQV~UIB$NRIMuP~_ARQ8t zQc}O0&-aPf^T)$Wal3b}`<&~<`+A>q&$!2WnqTeL&R+~1cd>|kvo<+lrWe>DzOD#gaeV!X048fSJT2{KAc_@3mdGS1g@$G-3skU$ODE~rTYk4=R)A}p?m&9C!^e!mhH9ob4;ak+0?z2hsvsyFZ^oOa*zGv9h8UrO9fwV1 z4u1S~5}xg~Ne}L3;P54-aPJchx{mb7kgjlQ)dL>sAZ}uyLyf;9-aYxKQ_l!>A#{J$ z_@j4l9<$B}QQ6u;!rm=X{*5x1+)jvs5=Z{^!r{}6^c{iJ@fc&xQH(18{4piDK9YB# z+Ry3cVwosck%DcdJwvf+rGvI}u`ajol}bDOoi+0$-Fn7RES$}&NEd3$2;$mIbG#gf zJ?2~%sBUb6fkw8Z&;qin zyCjR6-cv}DrA*f(M|F2)#o9QAi*-9N-g$Grirl=Bp?ruk-v~{(+7ExZo{Cc%xQ{$bn2joZFP;F_Gqq2KGKH$l zw%UadNq!EGs^(N3?gRh)*o5aeapsBbC47z*06Kp2KC}%v6o-gQGu17{Mxmtk5AO z1>A9S`#T!uXgCGRa7tx=usb@2SFk&(Js!o^8F+^)Sr`5} z_B~Z*Civ%5=crtBr+QmsT&ZBp7oxjR$!%9UcVw|68LB~(RI+ZD-cATtDhTt1;S=zY zi}6l;u?886{8g@b#RHJaF&nf1Bw6?L#l1)tXwSePi#UOfi-L!iZk)d?F~e-&T)L*?E_2o?o&1o;G+Ns;V2G* za!KE}fTbl*{u&9Bn>q1mgrjnKE5cBeD&$kvNiQ319J9yfF@!+S!j8k`i2=z|j_VW< zf$#>GW!x8g#{h9IfZdm*qPBsOed~&(H;|Y|Q-0Y+vzTCkvAQC6rW1IVPZf?aU(%~nmvxBbvgMJX5L)c)Tbgm z`1#E)@Y8aSh^U=a6^T2kobY7dmd?^*PCM;{tLuHVg-Zk|i6DUl7TbIfcJb^*fxo`e z^Sssk7wd_ah4qDHB&n-?^OAdoKM5#Cic=pKu}sb1=Z;hhd9M68c!8Akq;EebDx|he ztbycjUzk$ZH2+2GSh8NoB@y`7$0ye`5J%l`6(-GZAWy4rI#Ft!myA%{@-{L^cUz0k z5*PSa(}znu+`*tq{$i588lQV#d`;$jvP$fRfZnfdVzi`Zv89Yrfb zlo{Gmk1%C1MI7=iwc^qPckr^1%SZW{hsaRqnlX8fD7f=V3^%br+);RZVvO>~t9OK` zudLe3$PHcHFVA=7YY^s2a0JAl3R$D=^nE!+7V-^B43_*5UM$SzgQ=vL_}W8q+C~Ze zdST5r*BV3yekSnvnhoNpn35{9IMyD;B8*F_&%w+D4Ryj|z_^2!C%nZg<)#Gg>|AgS ze4QI6@gFo`$(Xj%K`!7r1H|$72`8lVCXrFg==v^XJ-m_Xhug$}^=u3w;5!w}Ff7_ML8v4k+Z>E@N@Z*w~*tTOs=g9^G5 z8iV{^XEmjGPaY2Z3ezAR)Wjqn>u1s7mN>QOwEXJ;^mcn@6jI?h^ed@i5|2ROE2oyh zw$NClEEFDkz1QQ%B56CiqlQU5a5&Fc7vFYxg|NAx1g{`!E-xmB^i+;R{dOq35nd?U>s#13?jn1otzONY)QdC9WH)6 z8;p&UWC8!|u{Kywl}8;@lTWSo3fvXE%hduVWW4h$9OQ^y?R|1B0pZ(wlul4*)p5Z5 z^D~8mlOr{h7&oyi5hb8a2{pe_HP=0aPiRBoAxa{$qRGe+4)_lBU@Xj_?9vxk=X(ne zg<}iuN|(MwnD069CY~}z#!w`VNnAXD6E1O`R9m>(UY-NTd}q1NMA|`rZ4K}`VzD2M zuIV6-yKfwBjoyAoc83TB!X11fY0K!Tfw_iFE8l7quyR`niz!qJ*TV>Nz)@5*@2t*G z2~nqPyn%o>XshvzN)1Dwu?CVTW6oO3LoiTozFrmFLAje}*S!LRL9njv<0bC0x8;c; zU=H}@*kbLpS04eXq^;q-yEk}Xx8@I8Y`5wY+5~7<*QvZk4QFF?Jb*N2l+%;90@SSt zKqjPbG{cTxnTy3ClYUP`6_&_zaNt7LXT%r168(r6o9(-G24e&DGY*v~p)01=fRhtV z?PHStPG5Twfi{ui<}NNk88VzBYi=&6JuK?;(D*EBn5Rmog->zT0o4$ia=>jSJ{gax_-D}-P=7N0uLSEvsMa^ zK$^O1V8W&r3{28l0Of>J>uW;2te}$hHhCZK$(V0I+0(H(V$p9c&n*a1P7G=sOaIZB8H?gd|yhPAI4e*X!=wHTL zS!djx3w!~iURwBsn_ty@W^T4dAxN3a%H2(%ci^3YLeLg9lwQ)-gU{5E=O&<@=&mJau5eFBA1{W2RSf z?^j+iiC3NF6N2q-SfU2jQOC*>-K9rihLni9B%a@{54u*J!#0o-GKQCn7D!oe!CQx7Bc3=QGjJwy zZUv;mM`=HGY72_sLb~_g?Oo>4ZX&)8$7aDb%BBALJ;!`cUBCplSlyA%@7LBQLN;(w ziA_v;?RJ0u@tX=7@bBXYipniFLyv5V{qD9F<6zLMhJK&Wi=RL9Ss?UyVBeO=SDH$G zL}p%Vwty?uD-KT!7^`3WUxG`|nt$3!nc|d_L%OkD*vANXwJ6xG(N?3JcU@Kl4({(6 zlK|qKY-;b!*focSwSti9Xfr|4(39K{wB@asVJ29Q*o=}W!o2E-bl~oo3nTysY)8H` zRc3+t2W)|NMph7RQRV>D8%q_A+zYB|AwtHw-Cw7-;pKp$sKvS0ApYb<^M0od-Y z&|T-}_L&H@WpYmAUgcya-LPA6`c({pu!$a@Weg*dv+#(Zy!;Av3 zKTB6`;9kf5rugKgZ#z`e@j-EjnxI3dU>sMZ+A2;oleoUUAkGd;wcZ#$benFg{$23N z+rhDW5IsDwU2DtptQ)z}gN{U$(}O8lcyk|~V~byc>64!CncjPB;15wq@edSi>Ew)# zSoykNmEeoCL&2{=&LEmB#olAl#6Ru;+B9nHhMxA_rlzE9KS&N=I1xhuL@^$*oKZvx zA~ch%g6GO=OWfv_PAn_V30MlKE!D2M_f~%iK#=uwI^mxhNonyp8%*NWqsia|UI4f> z2Y8i+oX2PkK(W{asl4>JT+EYIMWW#CW2KuOufW9{eA)cw01_Z&UIV-Ol;CS!@G{2` zf?J+tUs`JT#EkzLq+72u(JbST;ty@LX@UH9z3r~$uVpF!Ug%vRL0+JqCuo8<$dAKi zwS=v9!FCM#MN5BK)12k-c3##wwWwaLV@|~WMWyV;NbkWZ4wX9fpGZ3axK>E!HvciX zV9e`vP7jW}EH=uZa4ndAsE=a$-iM90?tsnp5u2N~t-TkrXzj-JKQq7Haeq7BKig1{ zt-VM{{yj0O^s~-f^Y}L}l~~RtZ4m`=zM>e5SdN8hB^QA&R`k}xxoW@}Nh2C~o{8f_ zfLos<2{ju8SdsdUm`$@Xk*u%NR&8xOA?G?F^gOnGNfkZF2rX}|4*gxJ=7inK zY;#{j9(#|KPhw4l*+sD=pT%$if<#_OwQakG6zM6?i2#;V|5HWlutEvG$BNWG$B3rm zOx1g`nml8B2-xb*{s5t|lW&YeUo6Z?P>uMfQ_%Sekqh6Z{47@9iiI@551%|Id^iUY z!ry7@C9J{MT9Y~^AXc?KB93D>}q%*KQ$eu_F*5W*{GkVPFQ@em8Xq%L`d$16!uL)^Y7(Uy$4e@b&c_OiPm0wd~N$i*ml+qd(u#qGUNe?fkj2{ z#$)eT%?tFHUJkNr?lKzmr_KFAo3DZGVU+FZfegWociU8kYNHJ=WlfwW($pUM!XbEZL(nS4AFAYaM#9 zd2}fSfO7%ZnP20Cje2?MD;u$7xA=S3o!61C7~ z;k7QC5(kKblnVnxYAF&Kmsd#M$92dk_Fej-wdIAI-4hR21rS&bW82zVHn20vKl_4m zU#pxBVxlnwVPFc*_UG6r`nz{Q4gsV)pW6;VNTX zi&%Z~-_KWnR=7uoZ~~e9SEn@-LH1trNRa@7@2zRdSI; zl0f*?46cB%KrwI{#cR6vl~0!lDRTg&GcO;0oxiS|C*1mPnL|-Xpja9weUP~tJ+-uPUpx-?0O;0?Yr88CERQbvbrCY}K!G zL^Fnw9Fq9%pmS2QM&}x{CVbp_r}N);`@i>c7$CI($O;@~Q&=uCJwR5NpOMFb{=F85 zkE}`-*S?LU*q|fIY4+vQS@oc!264ct4{ZHqp%?XUI=fb+o+g#&Gho zA}|C<(UOl974J>C@Z+jlyH80zY-+rKi35jLc7Fm1${@&YQ{R3o+xGn9$MqVY7RuW&hzz^>~8qxE8nQHdib6#^I zTvD)w)Qds{x&tRFPN~O_pd?Qm{4m8Yu_7)60NH+8es8bj&&PVL*1&U|3APU4YQH#c@3^~s-Ynp2T zj^)2mK)rFoMSQmwRgzN>7}1LrJC=QI&CgkRFGJE&P2p>}mmQzZkDe`2`>IdwK0y`f z4}mD5091&i0TUUji1y`!r_#aX;5NMSF?aBa@suPa>`i$|CO}*|m#DIe&LC`5aSU!M z>OiaGUG=gwg-NLOAM^bCJ6ZHOl>4*vwh_|}l+%`wu$75%Hx^c(Hkp9@y#G$Tqrs(= zlh~ewtMx-VNZ7Lohu1!M*?O3&a_cW<58(3m;+dEzw6F>F8~`RNr2Sh2-=O1qwy$2y z^DbI%ZEqX>ZwK5bsYvUk7u*kHG-Ea0uS@#G3JpPkF;6LhJq(RJw$?X_A*HbnP1>D) z4e))!GX=PyBMIYcEzI6rTj*=9m+Zgc`ky2j+X#R_Lr%DY?|V_DFx*^USu_%z6@B~m zP3Aoxr!~(i@)y4mD4^V2h^@Mv^+DK8i6?MYSl}hTTeZWauPm1>X#c_DG&poUf|L?X zu>vqjp9^_xVWgIUuNl`Rbh*ZH@cm&cASVbKA^{jaWX2Cudi_ zl(ivO*3})-z13NQRxJhd^mHBE$>~~lD7iW|U1U+a4W{RgSxa^&H*@v;){O`NBZD{} zKYncbIL5P@5Ia6T-qZU88Tz^rC2tw~zqovhZ3&I}_bEK*@7C?eqt6mqTU*=tNLRI0 ztCwo_VJT#6a(v_tw+5FbU-JJ}NEp-6-K+FcIzZ^gCvt_o9kE1?j*fcVE{Qd>vT9A& zAwV21a*`2m!uy>8_QqHjHbQ++p>`b@nx3w@jzi19AZFxBefY3n*8UM@DMfKq$uc%4 z1Hwlwb^>(Fmlg-(lM&C@(`CWu=jW2QfuyP_F6PKXnh&$RGhcZ}B}&r`1fGSJN;68Zg1JJhGNUo3ihh@YFt*oxDa{Mp2BG~Z98=UEY7+Lov z%t(g{VAbFZtI!syCAyCLBc)0NX{PXSr*Cv-Ha1IMAI+f>_ZM9}MT?**-hEvFcT+** zzj|pHrYD+v=drQz!~33dXJof`R_A#Ok|J@8h>Q@^&!eO=ZvfTfV%@=fV~K)kyBj!z~Ma~uXV{P_xrGvqN7GOcxU?i zWg$^TJf)Qbnp#0>AXMnsNrF8QF6~GL^U(^6#xVUdSRaGI0Ij{OvcChbE@2Ag!rj#< zV~-%!gxlkJxe;*?aKBAyFbJ7m^cL37V2}_WzucD&3KQ}~aKva%6zxpGq;Clj-hnpy zta0I2tL_Bu#}8w6S$QQPRL7e?KYZw`MY6grFi@DOKMoE;p|qp{oGzz3=n1Xz_-vBl z58e_yrg@}m*s9e}@w}XC0OIQA>O8urbr7o?$Nb2@zFv=rF@^|ClQ{VjO!dTVGlhMB zwJ&4se=AacrYzFLRFG&Tr)=;Oc5ycZ{|c(50)U_*Htk@!QHj5&JIxUJ(T+)IOYvqM-Ly)m6w;N^wA?b+5e2J5q?Bf zd8Lp0P~_C%@Ue@XEXFkVv4M`g7p&g%iCCAc#mKHpOG%|2gDy4B}8Ek;TMb=i~TroxgG|j|B%f!qV_Ir1xae-4P z3b{#B1&(OX%qrA70exJ-lZF2hrhzKb7%23roPhHmAhdFRE_+#`Un0#ZTb8>D<-L*a zcx;QsC=_bJ^wxBSqr=0|K9fabLJ~fGy6~aC-d%-{B_9dFb&Nq>Zo631KC3EwNN#Sf zer6uq;X{hR;&Z}j;?$yyfhrcNaHYvw^Ex7+pZTxIJw>NU_V<@MqaNu}oWD&-VN=NS zY)7fcXGva>&s(5P1s2u{c zd!f+?48p~Gl$q`Qa5oK%rXP2Os+MLcPTV9|+lY#{l@sBDwd+Aj@=Y~NpAdpTtv z8&0ylnP&j)ZaevwwHprbje2TWP0i(vD09`vYP~0acbKLris>aDj`Djq4KTEPF2@m>h{3wPH6czZfdWO{Fe1M%kZam>+em8d9g-*_&6GG z8GMI@S>vm@xjp#yIDMr%U=r)aT8VIDo2JH`J_@{ctNCw*qpPcHV{NTOEq^ikOQ!XK zC|ix}2+ii#bA6kAPRnc(M)oUSwkj&uJ9$dcJ46B^B5MRP-vp#uRuila<5=3t*W0&x z8<4Y;RSDe#{xZ8Gp%;Ctz`ms9SaPX=M#qcwuqU~q{i^EQ>-%2U@&Bn5tm@cJtpMN2 z7N$#LkgEbQ>?dn3Q8%gB~&VgT_XH-b;+g~9zQdO zja(7Lz8v^B!nO4LG~y~3$n7ZT4kGp)_z&B zVI|4gs_iTofYT?u8sII`xrU0T>D=~rl0~6{E&pa(UCE}|i#=KCe#_phrHcg(Sj6?* zxpSxQdT|N`i{gIRv9`O~%lX8q!>%ucEGHKyV156?@Y2IHimcAX^O8~LUOWOHM8c*md#w>R2Q;O}%;Kr;R$=}db zjQ!09RDv(mj%7k=z?#+J+tQ{@*wqU+q8EE(Qn56vk)V9 z_Z{}TQY~umtBPRF9{|OwqPWw(MCGrFz%@2CPBZtW$aw|{fNzKb{DDa#@yre) z15reuRvJpGwlXe95l~E+n3~df8>)N9BCyh8)+&w>D|R1{3XdKcD)szPUm4f0 zz#5JBK)mrUr4%_iZL)C=F`tjBAFQd)1BLfvWJ-yUc0X*aXUImVhDCV)x^z@ z`euwhvgUj=M0jo+dnwa0qcO<6$aogkUw$wGWcANx3ghe?Zg`}-b)8Abws$wG2Fs3v zk^NZEU^$#JJTSoUZnXmY%s7MsM<#kFk@SDfksCv65|W52_=5ZA5W0?LP3p3~0pQe>z@ZSENp} zO#6I_R?b*9K2X%*Hc-53q+HWqn@aXj-$*NZt!=<6mjI;ndr2owxYgltR|3$1|5=Vi z%R`c96<3$mL>>)ko!fp4X%cIoD(L(A^TWfHwZo3wx(PBAafFgU*hyk^z%CcF*vVX< z5pMq1P)2rk_VTgBOfiiuzbpL>=VMom0ftUpZEcdl{(i1SoysC5F`!c)4hwpjh@JHQdM_Qli&|$%n=DndlP7Oz8Ys=fP_v#FL9T}#{Qcb2_*0Q z;s=21SJ2}?7eTOQTVPA8QDJ$R5ein zX=ri94AEp~H4fgJZ&7;edYvj3W<=Inuzn6+w3HS#=VOBcJm>0wW|Rq-refUm=}~R0pL$&ggscW15oSpeRhvI z9=58Q(0|l7GqQK&(QoKE6|(Z$RudKg+Ic+dCqKC4zHDoY1v(t1>4t*8w|*SUczLm4 zP?R$h*PU>~b}i*Ak3eu6-^AQsWnWGOJVL~_4w9Q}1)w6CXyGUjpg=*KRAMG#XMe_5 zE?y;cC;X~$6afReAPrh&vi>A#YxkvYa+%#dIW%#AR>oztSPOt2ITvr*w(_*Uz<8=W z`II3izQ@fL%P~3p!5577pDMmIdcQsfOZzX=?YtlUVQo=WZh$7 zCwea^BDl2jO?{yyf%F1ZYYIH!r6lmRa^tQ-!2eM}s;S9rt zbSb870TG!ezp22fg@xZgS2@3rrbE3}|9iCcGFiSgmjaWf5DXNW#QOH@1~SGrLq3Un zIzak<*qVfZu4l?U&sVWn>}8~(WK@WF!ew68i*tt@(7l89x|O$G9c$11hOM3$Sa~)h z4?f$kw?2T$TS;~&uGR4pA$NA%twKefxSB<@2(&q_HI91;1y->l^AmNLrxY_gxwrE0 zNIV#-jR?pe^&~X<{L()qV6+r%3%|Mc5|XOxWsvMk8TT3(9_GhK0uLtvX3*kuknRD= z&dqy-1BrUL(p4zyhhhX3Du(vY#=OqT%Uw;#T{WJvK1#I&W;$Suh20UqKGlE2!jE5? zruM)qO=pnsLbR+c@GNazKW|X!6c-epSXNMjzh*5c<<8kq{Gec^$&C(QS;dO&VYEMW z%2ax8-6cKr6m!fN;uwf3%+Y$e}XIyOIjwtquq-QW(Zh~E0Q?a+F97=C6+EhToy zfNn^q#rleo?l3Km632{1{>oGO-O`i%8~EOa%6*-JY?KdP@=V~QNM+!R$qKQ1oY_l- zHDnaEl<0E>tDhXO4%r-|7;b0L1Muzgdz}J1eaXq>86~~2d{!xH@k+v-%NpKi{M6!N zwXfC-ngWgggd?-6A4bz=eDjni&*!T4K>FLvU)c0U@@$^BT}n}{#2Z~rt<2iP2{I&@ zri#KYX0byF^6Z-wf-w0>u7Awk4T5|4qC?(Va*0?r!w*4%m2#Ee9*D0HvqU7*50Nl< zWJR!AYT#H*Ogi=KeSNXK-u3J?ui%7FA^r)6w@ZxL%$tao3w;=J)i! z&qG^S^Qt4L0-B~W)1hLuf>*W^<=CNZINDKca@^uc`b>j}SvAtl+7zPs1wVW4>68*; zZ#Mgr9xvZ!`)e=Q9ESX2RNZ2K>vMxRt2{Y=_h9e4G|t?TK&n~sbBcJahJ$#VNuU+RTx;AD{#8tzyZ9TO0Uc z@;M#osp?Y_j37ivQrNRQ4+S%HXMV}_GLD&%Z2gNGg;T?P6VnvomiKpslP2ttTj+FF z`pe?txrYOfmScJS&~%OO>4Z$o)YGxdq7%<~Z7mIU)rY1LOjA*fb9qgHtcpIhQesct z0e>8>4KRfscVg!umJ^Gqu+&{yvNV*-hNEERmL|J)ca!bdRei$_{)yo;R--wZ`_=5- z4-&PghYRL|-CSMsh%M=tQelJc1bbIP&S!2^FzO4Y+A15{Zn}>T7L`v(b;dBxqAEfJ z1O}EN&dck^$42_rA9~*L)HgJYqOCral}%GM33qUQ_P*;wefrtvxQVC2NU46nGcMN@ zIpi1BFx~`FX|xOo1kz3PqTpL^hAlHABYbFb8(K{SIOj8|&hI8|qqxx^tU@bL6^u3u z#b{vnc&~#1e{FO~3S&4}Y-m@FX z5t(&dA@=^TnQ=0I-{&YVXczxQUiOothZGm-hD20k+rZp0++)ON+`wM)!2De|foQPMJ z0ohVi1@$+>v$R@FQ@p?4wZR2D;JSWA!Z3>20>~_l zci>AkD;w9V7#qi^gRvmk^0n0m_5k(Lq=fu{UYqUN&pL+v@*l_ve5h`y77vMIEb9;l z%SVhFr*#PkbpTV;-mxBb5oL*2;tp9>k50S?M%0M;>t-M ziEHx0oL%*fm@%*Z^&o{HEb$PdZGC&hFPiO95t#mbur=Rc!hVegFYMQ^UvG@Z4lq;? z;j*}8?;Af^zx~o0AjeP;^5|1if~DW6;E0Pi%r^3=)=U#q6Ic72$EfKOt%@5vbgy}O z9)n0jC%>NFd!MvUKAqa^t_0omw_W`*MLt{A(Hqi>@whQ>+XZ%X5kF^h$EZC13Bkrw zl+qp@an-Sf&%I5*=Y}aEJCSvFc1F;6Ka5i2Y>(XFK}}J5iui4%mWaFmJ5Bnjrw^on zSAJOZK@H6C_m_x2?-&EgY#d!6-Va}@8Q2*1gs%jYS5yo|@|4l^bQ;L*Csq3KMRiHahVBZcrw=1`{hUs3X6A7p_U+LCo7PSCnd0Hh&l}utqW8Q zYT-HNysPBdsBqWTa@FkePwTu@22bn;Uu9sLtdx|L9K_U526WIEV5B=z7?*y}>0~D! z#gKcEV2$GG3Sw!co>7mhC(gxd;6U6bPZbUE;N}L7@v$uHi|!_7hNXo}9#=*Mv6jb~A&gp*ZfpfA(9a2<63+D zbwlTF10s0|PqNt^u{VtG*-1!#M-xhY!E9tUecynO?^ocsRNS4ZXQtM6>4PK;{rAK) ztgZ1pR|v^pYy7}EE>GmWe(hk3H@Ri}dFQVhh5jHKVU5-=`?20dvigI|^?|plc`U4B z6T9tVEC1sQpNV_R=nrRt(CdU*cPn&CX}3lOamzX#ml*wBYZ6P@$M=I&XquDxx&vJu z_~|Vu=AX|>-VVxRuX6X`0Uv;K00kX0gbC}mk(Y)(5*iIm@b(z;(2!@ zdj-`-%R~$^U!h!^1o;McjPuOg+}zr~1!xug`4h0Z`fNg6>>BvKOAM@Qt8!#?l-d<- zHR6~#^Fx9JTC=i%K9#zQ5G{2y9e&z_2@~Ho&mguamM37Szah5d`$78_TE~h$P5Fs6 z+k12G!WO8_4T7WE%?)dKSNiCx`BSx{!+9k`BcnQQZ>~U@Od=b{*><#J?P4xd{MFSJ zA003hR|puaY@QWw{$ryZ6r_7M+N9j9JvL#zYxt6Mu{Lo6qdvvx8#`k5;zc8HD4AdL z4&`2vyar13=`Qbq4DDH{R&Gcsp>86+L#24A@g*x|IbPmgSe^tll8*~r0=l_KbeBJ@kgr!SZ z;K}i^`9B^Q zwc_W*rjDS=6yyAILLJaVg3YrX7RD)fui+S9?q*ua5I?thbkzKXFOp_ULyQY9veVh* zQ5?6F{V>f$7MA`c``#ZmQWwRqrR>s6W-7Jb zb_)z{M*~kz3y|6rk!r+LLqkKsOKLyaf&{Z4@d`Ebz?Pko{PWt;GyBI@7@~@ZxS<%T z={D|>cX@moh=*pa-%rv@J|=y9)n zuZoI_;)9Krb`2AkuDMvQ`tM!+(aQhFzxcA2vg?ep!8tIOPooJ`0da=Sc&kXvG~%t; z{yk1_P&Bw7WS{~t*g3r}zhz~V$%S`zcr#47gANiVSI1tIylN_D`Fc5H{Mi!JWW#6Q%NUVqU_GR;yF zx0X|DkZ2d711GUGfkt{y-wqcj(R(-icxyb{2}Ygb<5%;>1@CFgDgTiq*iwUX=7(Xi z$qqZ*-gJ4(*WuoXowIZAb08q%tkm})QK-14$RhCKVccS>7p`0&n#RqRqN6vO+oSC8 zF`-Cblj_9>3^Z{Y%yxuXyVL%Lk+AevTTC1qv|7prM>n83Ck@85Q{0|VoocS7fhvxW zT6lqzWAw7Yh^oo<3N&k2L-~NwTvIcql>WW2x+VH|JoDtXOjuDj-V6a!2w#;7wfJ{g zbNY{B$vllHQpim_$LdB&S=TY;FxnfE7Jrsb^9~tne5@tnQ)FJSrG<^ zFDlwYYptXGYbmqDgMHTevl{TydDtWe`AQ7BCL6=r?Q{zyUq0}O#kLzC%=$!rWm!LF z))mIQI^osMp30MQ(@CG;XS*Y>0aain9q4dOpT8I|m_G$WXlZF_a2>y!AtBiMB7|b) zXH-PM-qkaBt&VmtMm>A!+P*n>Z!ap)AD=scUR#peqbr_HFy;G~!miWUJ!1ihW=G4Kv6eCuad;;Thz?F%Y3>uA-SqOq_PGc zy7N<}#tIU~xQ9eFsl=Bz&IsVO1@Gp2peDId=#J~bm@f!qv?Jk5SM0|!~M3V9G@u%LU zP?3;v>aJsZusz*9y*>RsgFW9jFdNjQE_P|-99B6&mpd7Y7I3B301VNaE6htRqC_sr z&=5i+2YyK9har63;-dBXuh5`3vfe@IX)GTW7^nSSyr{d5OCuk8Ssk16a7HH*POJXT z2A_Rt@=_@*MX9rhtgYu_G4wz&aN+XKrN!mz%h?0<_#yF6VTz{vzKSorxu_)+Q3t(` zZrzE=ye3(PQl$+D%6uLEJFgUf^E!d%8d4n}ZJ^;SG24H)VF%(15QBYLj>B?W0$RoU zi}8_^ZZ|QM%hqsDc2Gt;6*OA1{YASjw5bPus)Q2`&QA^|8pOGYS#XO|@sDyi`-U5h z5oo_5i=b{Jz}Z?KK74Tou)2AM>pihWr$vKnk!#&+4{x5jn={ne)Zc5ugPT9&;$RSn z6jFR$VQP1mfQgb31i=ACfRPvw@RE=ego_WnREER;zi&YtP~emQiDJN)72{iDB6sp` Q|NAuTp`LoBDm?Q401@cbh5!Hn literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_192.png b/demos/java/io/material/demo/shrine/theme/res/drawable-xxhdpi/product_logo_shrine_color_192.png new file mode 100644 index 0000000000000000000000000000000000000000..8af7ba836eade53b983e0dce15d5c4c767f3991f GIT binary patch literal 22157 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

rCk&(Anz=2&&jzZwo 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

rCk&(Anz=2&&jzZwo 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 Ibgo7IABCUoy#N3J literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/drawable/launch_screen.xml b/demos/java/io/material/demo/shrine/theme/res/drawable/launch_screen.xml new file mode 100644 index 000000000..e6084005e --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/drawable/launch_screen.xml @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/demos/java/io/material/demo/shrine/theme/res/mipmap-hdpi/product_logo_shrine_launcher_color_48.png b/demos/java/io/material/demo/shrine/theme/res/mipmap-hdpi/product_logo_shrine_launcher_color_48.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ae17c9237c527ba0ed4e5ecf01c638b2b198e1 GIT binary patch literal 3029 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 literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/mipmap-mdpi/product_logo_shrine_launcher_color_48.png b/demos/java/io/material/demo/shrine/theme/res/mipmap-mdpi/product_logo_shrine_launcher_color_48.png new file mode 100644 index 0000000000000000000000000000000000000000..641263ab4de9769c72f015722cd9e26dc2e762ba GIT binary patch literal 1895 zcmV-t2blPYP)QNZOXK^wzfume7sq9cJ}e&;^IeDRaLL0QfX0b zZEZD)ex|?C|L`-%;^N{=>6q3G)8X51zg163Ntu>KsL0RkoMFw ziHV7G@v@gdGlSf}MR`LDkE zN_YAZWIXO8er~}1@P{m%bhgRm*t5^HUi_#MotHOLXY+4^_R8-U~WhQoq+qZ9P zD>7lPo<0K;^bMHC>oI}3u0ELQ=mC?qE|aO24wDH3WO*C8|V$m{;&k3a5$i%BfVAtN;v=8YZ4%zHRGfmk^6 z$L$pjIkv zbO35&*M^NO#6nYZD9FzTd4z?9&EUHVv|wEZ9x5v2QOzAGA~;)c`J|k`xQtVOQ?=6m}u9j zuB37SXy`DZaS{a>)we$!J!l7fJb3WHM0OadKYRAf2Y9fzwBj``YhJeY^Oa97fUJ2g zz@AN;fsdz8pL(EYwf6&b$;!$KkvDngk2PV&Y4K7N&U`~~=HG`FH3~o_x*(5#GG}IH z29oFZ19U4bElmSCNc;m>Z%;KI3~8@kgCcM}uSkH@moLFwTbK2I=)*@KkCKv-RPy|O zfbMwDS_}fX?%K^lY+kqs@IJRu0l2YGP+RL}&1SvtU}FnHpw}Yu{6PS^`33<>OG;p& znK>KpXMO(y0+4z60njjU!o!o9pEGI-hnF22QraUaTWZ7Be}axSTH*z_3mnze)yzD}$JGs#B{Vej@8tP| zn;2(j=S83-)m2rnYT67I;<$sO@M6UUcXMavmrtI`+E5lJC#U)3`Gb4l9zA+|hl^Q0 zD9Q8WWLA|ZL`+y1Z>{G@h>oUU?DKT2vfzWYT=GhuWglMkOh`z$2_iV@<;_gZH!-EP zqQP2El$Vvk0#kF=`zJiTKn(b>;Tm~mo@MCl>FK#1L_jMk?c*tg%g){PDh-GG-hIsc z+Szm1F=FuW@K{S;QT0$!Q&amPJv}`UL_m8Py0@iXm-zeF3lJ6<#LUx9l|Cy5td#NS z@q6;h_YAbVgM-6LT$Mo#7yo&J8J;;}6ciN}GQ*^zf&!R1d<1RO@H77eu~+%v!Gp`m zBlF4wCHwaI^XH);0t&u$@lqCI|CViU1MI_}$^6zuOF(Sr;Jb)m@FHwMACxRvvScE8V;%+Qi2Cfvkt5r2!4cJ6H!ocL z!2HNQ{qS!WKn&!;&CP8qd1BraL=E-*_3PKY#9ngiRjZkClFjNhAa+PzxpKvWypShl zUutw#RaN~%B9Yt_Q}S}(yn#tZgJ3e=!R2OWi<-2-!NJ$j!|&vUJc)TT(@jN1rT68_ zm%YUdrw2E0l0*%g3l}bU(z(fluz7(=jrz^S#l^A|fo7%z!F`zpp7U3MNvqs&LVdSr z(V`jnhEhVi$)*O|q-{dzf&~kv)42qPjffCxs83P-Y;A4V<64mc*9l`pw#Os#h0i*Q2kMwC@mRj*8T4f_E~leJ65GdjSE~A hHI#;c)S9xl{|(~ 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 VpPUY7BsTy6002ovPDHLkV1j*T3tj*K literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/mipmap-xxhdpi/product_logo_shrine_launcher_color_48.png b/demos/java/io/material/demo/shrine/theme/res/mipmap-xxhdpi/product_logo_shrine_launcher_color_48.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5a1747c279b222a69fcf81ba9d8535fdc36332 GIT binary patch literal 6757 zcmV-r8k*&aP)u;FN z=Fe8E^_R_NOK>6R*t$ z<6?2C>Z?)`f~4UUMi9myBJkzQm!nEcOV^l8rl)qhJsD)svvvZn4T2>Zjm9S>B_%7L zK7Bd@*TC1ph2j;8WRiq9?lq(dxOwyDprWFpr3QoHK2(fc*2%yca$qg@U`MUGBY!$<6dx2^;D&{gv7x+x3aQwKeUDtrVwB+ z#jvNnt5&V*)^;M%j3bKUfAr|lKGoILC*WzQiYXM_8*l{oihCACq8X`qRmbB`#kqX> z@&K(?dyzj@s{-7sMx!|gd+#q)B#)+4BWhQCI1UdF4}~+9T@8z)e38n^%C`6G*Dr)W zFnCd0t6v^Z{zMWGA0HnJ=P4-+AsC)5K~7>YH#|q4wI!me<9F@awZR61;W6HPtR{pD za`WKg#ft-YTk{fUBel;u0eN|O3t))UFrq;)N4dGVb1`RXosGmNEZ^AJ*nf38-3`_( z2(4Co6?2CGOecY3a8s6s$ z#ag;>k*Hg|L@KLOOm4M{7EfihiWEz2g^Nn9W}zaftcJ`A7EWc=3lx%C!aVhr9ctX4 zp+2bQ+fcL9oVoJ2XXmC(!n0&)WdH#dcLP){e?d{5KDK@RdZAh;PMm1!8V_aIqif{I zk@@g!6$+Jd_^|NzC=Xbq#>1l@K(M;>`yES8Ry~V$Cn6#uw@aq_e^q-QxIg53;)Ft7 zy?9YHs8*doDQOuXz+wfU8g2pz=3lP7xN_lw>ip0`tRdD?*{;m>(Y0&WuG%Ua;P2nP zCtCUX10I+I;ve$>!J5>ri`S^MQGeUEZPn4yXgtbP12kl}rDQC(%C+FVab7NF?KlZ6w+!ovUri&vN>pK>Bcix=sC6&I@4T`G2M2#bq~2AS>yZM~ zk#;Ii9z7C}(*c5hc=}Xy2(Axcq~_;QPDzf4*7i0HKYVP_3-LRzix)3OD$4b+@HDOC zDQ@4qC7{d#5OnwUZPB25jnn{rmmek?*Q~81M??dkp;&8)7qaAivb_EF+i%e$<}G-u?=ev2F$g3Fpsa$(9mz-)l~QObZ^!iyE2hU#Fj6fr$-MT ziWXkpQh;E-Wj*Z35#fZ`U;Fjz_Z9OPGrjxDMW=&yvL)B!9!v8JTUd}nDjo@0fJ448Z6wY@bK_LV1bW=`0e|v6#w)PZd7ECUbce6!=thH zvHti<<%Qg-q@<)SU?J_=7!&_c<5;|VgXg=Ve%0zcIGF|>^^Y%@U)gdLOy3di6ve=? z&ur(-$3Jww&r!G6SvGA-6Oy`Aw(v}C1Y6pcCVY~BSrQ-{#=%1%7KNc!B{3<823#yW zseq%8{n1>$hAb_Bwy)nH+%3uhCh>6)AOB>}k|oQB)F1Lt*r1UEL)gV08x|olSS&ym z!~&Ea4evjI1!zd0zIOEp-3JR`f{lYD`JbGWL@F$75|U$0YSm#O+Out&$Vk<&10d$n zW!`gdX5k60SQ&p)VVCHv#e!hMOg`v;jR1Phnl<%>jXJn%7aQj^q{b?`aqT5Qzv~{w zj{fB;NCCn>@7uXk*r^pORs^~P(*J9wedCS8hYyDcn>8V72pb>|>D^Z=fDp%65f?a{ zQCOF*toIoc8Yb*ka&mHivk66fFbmmR)V^wa4+VOGTX^}fyQ-~g*XjTe;K?w6Hm+F7 z?Y_uU*A!2mJWI7R7vzE@TX`O!k12_GMkv(jl;e~zEG5k%qv`C%)vH30r0}Q& z=-TDWICM%150Z_ij-{wRto$UH02^ii!hZh~s={9riZy@ARJIh+r*#`NISCa4EJ^?( zC}bTAT^cuGy$^b&Rf|}-0w%zQX@IDmQuT4Y$a;#-4H~f!Em^oQvj7BmqyWXvp2Nb^ zHXsOpBcWQv!o73@MDO;Wg?eGQ4l`iVLZ~dwaCQasge(0b6R+LvEFC-;usySi#nBFfIgw@;}M~O26X7afTI8&1prMQ zK9Yr}FQqPY5S6u()4dC$cGf*Y1EC(|U%sM6aIC`vvmmZj)#x%zWnMJyjn}S$Fy6B( z-2h#_e0h`5M5stx2gfu#$^fd8hHY5BLg*su%vjF=#FsK?xPF1qN0^hh>UFHZgJP&M zfI_MNM<>yA&fN5rGP0wXx^d&iD4~%s>Kt6D3JXrn!ba13Dr1`9*@k#_s=|uQ!h^aW z#*}r^>eZ{mm|`m5&M{@mlomoW?cB7P^*Cs*di>~-^24A^%Jida=f+J!H;oxHrU{sk zv~%zcW!~Q2<&g2!OqfhyA5$X+3{-a%iwyt`?b}c2CNSXX>FL2Vl(8+XZ~yIYfBO$5 z6CVk^1TO<`!$E}U1?4Acn9y_K!QVc#(Ma{LhSqFstvdFkASvcVc8;Qc2^Y&{#7@k71L7{oA!yG)2m5($HaSj}Okq)>w#t z&VvE|aD}vwcX^X6A5A4D3XO$oc56R>Hk-UME?&V9pj=6N_u}iM0AZl==bwHOI&0s) zeeqxbEHKBrFaWs(($Ue;{e|AbLKDpktUS$V$+%@sXmDqF|u(X2W8dTkiN;WeypKYp@e@)V)F zC`OYWbFF|J@b2l}v^kdy#PqAh2?}1T5)xQ=x;1Xf$6=aj z|Ni}}vF2EN3s)Wd@i8`R*sxBBGn}C7m#?5DR05KP8rK2xkcSANF9&mOj47!KAx?*$^|&&YmKM=@O@i zZsop?wZ@vK@A1X&#^AybiT^txAz=by2&brjyLN0&XZonoZUZQ0)+`ntoblrnVQph# zV#Z;uvF5G~WR|bIB>RF?idsDG35N)^FrP9WQh;!&|FPs`%K)7{c@kZcQg|@SfBWW5 z;Sk|a@q4**=Prfhp|vY7C7160UQqjL*|KFboDvK|n^vx3x8;p%)j=iPbOZb|!ebCu zQ*j4>GaUi?Zaxwd6Q^N~vDVfu-IZMX{d+wmPyYP*%hRCQBjF&0ckj-g&oeF}(sTp- zvzk77v=kgzSl8~tNur|pLrT|_!y03)EnNF8eT*5w^hadhP?vtRle`c*6ay<%lZ*s3nC5hM(mip>5+~v0}w4V{Ng1 zGr~E7m%(*Y97LGOdM-e_w`^tMsc(2P2Pq{b4HCpr-KNP=YCM}d1OIDin>Aij~pgO4BFy<0d)xXS4_x=5uJ))H%KkN4qsWVy)- zZr!?d4H8gJ()h?IF3!Qd6l^^!v}-rk``~;2x4mlsk}PS$fkDs2-(&Y`Y}+$y+q=Qv zXWRCghqZ0nwr$&-`!epki;BMJxqFL_uHCMP4E1~UvNFF&Rb{nKLv)7r^_ikW>e4{w z_3#;)7jG_4LO|UFnht#Fn zI`ev*R>;IkWjH9KSFc{5T+z(;Z)X~A2sk!e*N#n_wOae-%a<#^DYsFX)n%{{_`txapOztnIeKcfX3^2CS+gcVXSocVL#&T%JbnOi zk4y=ulLG<*%5jg(UVRFT+=^)1UIC6V@I1rL3Y`ju=(5=bU6qN>tOI9z0mwR_4gf`f zGSGz95%G{#1;+imcF74wL%-%yT9=+M!D zxpKosq3DJ>@->om*()paRN|pDlgU(yBI9ygldp}iCk`J@ zpx7pPMwcP7U%YtnQqcwXy27a=Pvcpa{o>{o^5b256xyRAt4-$2VNNcI{?e%KbAZ zO!yOkW=@=_1@97fiseCLpnxZfItZms+^yptM+T8MD2$crY?#v8@W;z^$*evVtQF5BMza1N0T8W}Fb zWqrnYCx!L)hkQ@YQqWSoQ7_u-h#{h2do z&V`Ixh^#2HILgqUGIi4vJjN^5uH29DWxyB3&VW2n>1(gO_6lO71Gp*csRxh907cmS zue|cgOClS}D1|Z$W2WUnnHs1t>klFq26|qKOG{uHT8Mf^EnG9(fA8MCS23Q-AQ>+G z>cD{m`-v<>CX`Kr;Y}5pm8{)XK)l z+L@l`C|1V;^0R}>($1xMF#QYyRi}SX``xW!Q??n3Wy8=(dFe@XZL+2vJ9b=>HDVLA zDTCxZ${>z138IYb;Ii}rk+n7QWj!ODCOd=aYH77<)fx{UK77E|ty|CHf(JSCqAh5I zcUc3P5zY=BI`n6(tr3Bf&ow7d2BDORmDO>Ar?S|{thlvE1xR@!WW)uvKmPdRcjwKU zw-|BK4JqgAP}LS5g;%)b8#uMONY)^0`NQH6I9#)ZGB6vBb)43SZjFIr0EHPr;ij{% zsR&dS9vwdK?4GESmfhPeZ{!%C+mNC>F)aiVGJm$e+qeq0Ug3g*+?o z$h$I!%q4Roz`u%b?1O7sC>Bw^Ej*ByV)B+vUK7cCb*{yaYoo<+0_Sl8$;7k0KD<@J z!rDlT0;VjwhC)yYl~@xUBejc*i`(I9nzyCKf<2|_ixw?fiw1zLILWsc17U`U`VzsWQ5EDmn1!MoE23>eT?=8`#OZuy3Mi{C6H4_OLmV#uq7y!&u1Ci?=% z86&xX+!d?j3kp)e6h+sNqyQ=hl&4s!QYyQgiWjO?87a?|^W9R#y2#u)3Sg4RLzDuV zAo6M^@9tcSy<;3FkW{NgMR+P;3ZQGKq5vuu6i>ybf-Du+BkvZfMD`q-NZ`)R1g(vVS`;bl^r9BS18T~sn5jl-Ehuj;oLzA zV7$nKhn}Eug2_bzlnLZXg_;?A_)*z`qIiXZZIJp*Am8=lTxOY@-!LhFanTnvPB5u} zvIdo#0xS=OJS!#jSptP~S%Zauaf0Sa2Ni*3ocQij4VGU4mazJv%#@*500000NkvXX Hu0mjfRLKOA literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/mipmap-xxxhdpi/product_logo_shrine_launcher_color_48.png b/demos/java/io/material/demo/shrine/theme/res/mipmap-xxxhdpi/product_logo_shrine_launcher_color_48.png new file mode 100644 index 0000000000000000000000000000000000000000..469f6a5b24400ddcd4a1894ea4a4e802fd5efab6 GIT binary patch literal 9379 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 literal 0 HcmV?d00001 diff --git a/demos/java/io/material/demo/shrine/theme/res/values-land/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-land/dimens.xml new file mode 100644 index 000000000..758a8b887 --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-land/dimens.xml @@ -0,0 +1,20 @@ + + + + + 48dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values-port-v21/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-port-v21/dimens.xml new file mode 100644 index 000000000..ef9bd80e3 --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-port-v21/dimens.xml @@ -0,0 +1,20 @@ + + + + + 64dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land-v21/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land-v21/dimens.xml new file mode 100644 index 000000000..5e71e97f6 --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land-v21/dimens.xml @@ -0,0 +1,20 @@ + + + + + 72dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land/dimens.xml new file mode 100644 index 000000000..dcc05190c --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-land/dimens.xml @@ -0,0 +1,20 @@ + + + + + 24dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-port-v21/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-port-v21/dimens.xml new file mode 100644 index 000000000..5e71e97f6 --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp-port-v21/dimens.xml @@ -0,0 +1,20 @@ + + + + + 72dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values-sw600dp/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp/dimens.xml new file mode 100644 index 000000000..934c551ee --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values-sw600dp/dimens.xml @@ -0,0 +1,19 @@ + + + + 24dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values/colors.xml b/demos/java/io/material/demo/shrine/theme/res/values/colors.xml new file mode 100644 index 000000000..bbe7a08e9 --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values/colors.xml @@ -0,0 +1,23 @@ + + + + #ffffff + #e0e0e0 + #607d8b + #dd000000 + #89000000 + diff --git a/demos/java/io/material/demo/shrine/theme/res/values/dimens.xml b/demos/java/io/material/demo/shrine/theme/res/values/dimens.xml new file mode 100644 index 000000000..5f2536ced --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values/dimens.xml @@ -0,0 +1,26 @@ + + + + 16dp + 8dp + 36dp + 72dp + 4dp + 16dp + 56dp + 16dp + diff --git a/demos/java/io/material/demo/shrine/theme/res/values/styles.xml b/demos/java/io/material/demo/shrine/theme/res/values/styles.xml new file mode 100644 index 000000000..f200e2a2d --- /dev/null +++ b/demos/java/io/material/demo/shrine/theme/res/values/styles.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + diff --git a/demos/javatests/io/material/demo/shrine/products/ProductListActivityTest.java b/demos/javatests/io/material/demo/shrine/products/ProductListActivityTest.java new file mode 100644 index 000000000..270b8389c --- /dev/null +++ b/demos/javatests/io/material/demo/shrine/products/ProductListActivityTest.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +package io.material.demo.shrine.products; + +import static com.google.common.truth.Truth.assertThat; + +import android.support.v7.widget.RecyclerView; +import org.robolectric.RobolectricTestRunner; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.Robolectric; +import org.robolectric.annotation.Config; + +/** Unit tests for {@link ProductListActivity}. */ +@RunWith(RobolectricTestRunner.class) +@Config( + manifest = + "//third_party/java_src/android_libs/material_components/demos/java/io/material/demo/shrine/products" + ":products/AndroidManifest.xml" +) +public class ProductListActivityTest { + + private ProductListActivity productListActivity; + private RecyclerView productsRecyclerView; + + @Before + public void setUp() { + productListActivity = Robolectric.setupActivity(ProductListActivity.class); + productsRecyclerView = (RecyclerView) productListActivity.findViewById(R.id.ProductGrid); + } + + @Test + public void testProductListIsNotNull() { + assertThat(productsRecyclerView).isNotNull(); + } + + @Test + public void testProductListHasProducts() { + int productCount = productsRecyclerView.getChildCount(); + assertThat(productCount).isAtLeast(1); + } +}