package com.honeyneutrons.undoswipe; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.TabLayout; 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.support.v7.widget.helper.ItemTouchHelper; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; import com.honeyneutrons.undoswipe.helper.SimpleItemTouchHelperCallback; public class MainActivity extends AppCompatActivity implements ItemAdapter.OnStartDragListener{ private ItemTouchHelper mItemTouchHelper; private int nu=0; TextView tvNumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); assert getSupportActionBar() != null; getSupportActionBar().setDisplayShowTitleEnabled(false); setTabs(); TextView tvDate=(TextView)findViewById(R.id.tvDate); TextView tvDay=(TextView)findViewById(R.id.tvDay); tvNumber=(TextView)findViewById(R.id.tvNumber); Calendar c = Calendar.getInstance(); SimpleDateFormat dateformat = new SimpleDateFormat("MM.dd.yyyy", Locale.getDefault()); assert tvDate!=null; assert tvDay!=null; tvDate.setTypeface(Typefaces.getRobotoBlack(this)); tvDay.setTypeface(Typefaces.getRobotoBlack(this)); tvDate.setText( dateformat.format(c.getTime()).toUpperCase()); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.cardList); assert recyclerView != null; recyclerView.setHasFixedSize(true); final LinearLayoutManager llm = new LinearLayoutManager(this); llm.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(llm); final ItemAdapter itemAdapter = new ItemAdapter(getApplicationContext(),this,tvNumber); recyclerView.setAdapter(itemAdapter); ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(itemAdapter,this); mItemTouchHelper = new ItemTouchHelper(callback); mItemTouchHelper.attachToRecyclerView(recyclerView); loadItems(); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); assert fab!=null; fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Item item = new Item(); nu= ItemAdapter.itemList.size(); nu++; item.setItemName("item"+nu); llm.scrollToPositionWithOffset(0, dpToPx(56)); itemAdapter.addItem(0, item); } }); } @Override public void onDestroy() { super.onDestroy(); ItemAdapter.itemList.clear(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_about) { Intent intAbout = new Intent(MainActivity.this, AboutActivity.class); startActivity(intAbout); return true; } return super.onOptionsItemSelected(item); } @Override public void onStartDrag(RecyclerView.ViewHolder viewHolder) { mItemTouchHelper.startDrag(viewHolder); } private void setTabs() { TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); assert tabLayout !=null; tabLayout.addTab(tabLayout.newTab().setText("TAB1")); tabLayout.addTab(tabLayout.newTab().setText("TAB2")); tabLayout.addTab(tabLayout.newTab().setText("TAB3")); //TabLayout font & size ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0); int tabsCount = vg.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); int tabChildsCount = vgTab.getChildCount(); for (int i = 0; i < tabChildsCount; i++) { View tabViewChild = vgTab.getChildAt(i); if (tabViewChild instanceof TextView) { ((TextView) tabViewChild).setTypeface(Typefaces.getRobotoBlack(this)); ((TextView) tabViewChild).setTextSize(3); } } } } private void loadItems() { //Initial items for(int i=10;i>0;i--) { Item item = new Item(); item.setItemName("item"+i); ItemAdapter.itemList.add(item); } tvNumber.setText(String.valueOf(ItemAdapter.itemList.size())); } public static int dpToPx(int dp) { return (int) (dp * Resources.getSystem().getDisplayMetrics().density); } }