/* * Copyright 2017 Google Inc. * * 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.Lorem ipsum dolor sit amet, consectetur adipiscing elit. * */ package com.google.android.apps.remixer; import android.os.Build; import android.os.Bundle; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.util.TypedValue; import android.widget.TextView; import com.google.android.libraries.remixer.annotation.BooleanVariableMethod; import com.google.android.libraries.remixer.annotation.ColorListVariableMethod; import com.google.android.libraries.remixer.annotation.RangeVariableMethod; import com.google.android.libraries.remixer.annotation.RemixerBinder; import com.google.android.libraries.remixer.annotation.StringListVariableMethod; import com.google.android.libraries.remixer.ui.view.RemixerFragment; import java.text.NumberFormat; public class TransactionListActivity extends AppCompatActivity { private static final String SPENT_LAST_MONTH = "Spent in the last month"; private static final String SPENT_THIS_MONTH = "Spent this month"; private Toolbar toolbar; private TransactionAdapter adapter; private RecyclerView list; private RemixerFragment remixerFragment; private CollapsingToolbarLayout collapsingToolbarLayout; private TextView total; private TextView timePeriodText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_transaction_list); toolbar = (Toolbar) findViewById(R.id.toolbar); list = (RecyclerView) findViewById(R.id.transactionList); adapter = new TransactionAdapter(); list.setAdapter(adapter); collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbarLayout); total = (TextView) findViewById(R.id.totalTransactions); timePeriodText = (TextView) findViewById(R.id.timePeriod); total.setText(NumberFormat.getCurrencyInstance().format(adapter.getThisMonthTotal())); setSupportActionBar(toolbar); RemixerBinder.bind(this); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); remixerFragment = RemixerFragment.newInstance(); remixerFragment.attachToFab(this, fab); } @ColorListVariableMethod( limitedToValues = {0xFF216EB3, 0xFF191919} ) void setHeaderBackgroundColor(Integer color) { toolbar.setBackgroundColor(color); collapsingToolbarLayout.setContentScrimColor(color); collapsingToolbarLayout.setBackgroundColor(color); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setStatusBarColor(color); collapsingToolbarLayout.setStatusBarScrimColor(color); } } @BooleanVariableMethod(initialValue = true) void showIcons(Boolean showIcons) { adapter.setIconsVisible(showIcons); LinearLayoutManager layoutManager = (LinearLayoutManager) list.getLayoutManager(); int first = layoutManager.findFirstVisibleItemPosition(); int last = layoutManager.findLastVisibleItemPosition(); adapter.notifyItemRangeChanged(first, last - first + 1); } @StringListVariableMethod( limitedToValues = {SPENT_THIS_MONTH, SPENT_LAST_MONTH} ) void setTimePeriod(String calculation) { timePeriodText.setText(calculation); float spent = calculation.equals(SPENT_LAST_MONTH) ? adapter.getLastMonthTotal() : adapter.getThisMonthTotal(); total.setText(NumberFormat.getCurrencyInstance().format(spent)); } @RangeVariableMethod( minValue = 14, maxValue = 80, increment = 0.5f, initialValue = 48 ) void setTotalTextSize(Float size) { total.setTextSize(TypedValue.COMPLEX_UNIT_SP, size); } }