/* * 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(); } 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() { findViewById(R.id.FloatingActionButton).setOnClickListener(clickListener); } private final OnClickListener clickListener = 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<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.product_quantities, R.layout.shrine_spinner_item); spinner.setAdapter(adapter); } }