package edu.wkd.towave.memorycleaner.ui.activity; import android.content.Context; import android.os.Bundle; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.v4.widget.SwipeRefreshLayout; 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.SubMenu; import android.view.View; import android.widget.TextView; import butterknife.Bind; import butterknife.OnClick; import com.john.waveview.WaveView; import com.mikepenz.actionitembadge.library.ActionItemBadge; import com.mikepenz.fontawesome_typeface_library.FontAwesome; import com.pluscubed.recyclerfastscroll.RecyclerFastScroller; import edu.wkd.towave.memorycleaner.App; import edu.wkd.towave.memorycleaner.R; import edu.wkd.towave.memorycleaner.adapter.IgnoreListAdapter; import edu.wkd.towave.memorycleaner.injector.component.DaggerActivityComponent; import edu.wkd.towave.memorycleaner.injector.module.ActivityModule; import edu.wkd.towave.memorycleaner.mvp.presenters.impl.activity.IgnoreSettingPresenter; import edu.wkd.towave.memorycleaner.mvp.views.impl.activity.IgnoreSettingView; import edu.wkd.towave.memorycleaner.tools.SnackbarUtils; import edu.wkd.towave.memorycleaner.ui.activity.base.BaseActivity; import javax.inject.Inject; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; public class IgnoreSetting extends BaseActivity implements IgnoreSettingView { @Bind(R.id.toolbar) Toolbar toolbar; @Bind(R.id.recyclerView) RecyclerView recyclerView; @Bind(R.id.scanProgress) MaterialProgressBar mProgressBar; @Bind(R.id.processName) TextView mTextView; @Bind(R.id.wave_view) WaveView mWaveView; @Bind(R.id.recyclerfastscroll) RecyclerFastScroller mRecyclerFastScroller; @Bind(R.id.toolbar_layout) CollapsingToolbarLayout mCollapsingToolbarLayout; @Bind(R.id.clean_memory) FloatingActionButton mFloatingActionButton; @Bind(R.id.refresher) SwipeRefreshLayout mSwipeRefreshLayout; @Inject IgnoreSettingPresenter mIgnoreSettingPresenter; public static final int BASE_ID = 0; public static final int GROUP_ID = 100; MenuItem mMenuItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initializePresenter(); mIgnoreSettingPresenter.onCreate(savedInstanceState); } @Override public void onDestroy() { super.onDestroy(); } private void initializePresenter() { mIgnoreSettingPresenter.attachView(this); } @Override protected void initializeDependencyInjector() { App app = (App) getApplication(); mActivityComponent = DaggerActivityComponent.builder() .activityModule( new ActivityModule( this)) .appComponent( app.getAppComponent()) .build(); mActivityComponent.inject(this); } @Override protected void initToolbar() { super.initToolbar(toolbar); } @Override protected int getLayoutView() { return R.layout.activity_memory_clean; } @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_ignore_setting, menu); SubMenu subMenu = menu.addSubMenu(GROUP_ID, BASE_ID, 0, "排序"); subMenu.setIcon(R.drawable.ic_sort_white_24dp); subMenu.add(GROUP_ID + 1, BASE_ID + 1, 0, "应用名"); subMenu.add(GROUP_ID + 1, BASE_ID + 2, 1, "选中"); subMenu.add(GROUP_ID + 2, BASE_ID + 3, 2, "降序") .setCheckable(true) .setChecked(true); subMenu.setGroupCheckable(GROUP_ID + 1, true, true); mMenuItem = menu.findItem(R.id.allcheck); ActionItemBadge.update(this, mMenuItem, FontAwesome.Icon.faw_check, ActionItemBadge.BadgeStyles.DARK_GREY, 0); return true; } @Override public void initViews(IgnoreListAdapter recyclerAdapter, Context context, ItemTouchHelper itemTouchHelper) { mWaveView.setVisibility(View.GONE); recyclerView.setLayoutManager( new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)); recyclerView.setHasFixedSize(true); recyclerView.setAdapter(recyclerAdapter); //mSwipeRefreshLayout.setOnRefreshListener(mIgnoreSettingPresenter); mSwipeRefreshLayout.setColorSchemeColors(getColorPrimary()); mRecyclerFastScroller.attachRecyclerView(recyclerView); mCollapsingToolbarLayout.setTitle(0 + "个应用"); itemTouchHelper.attachToRecyclerView(recyclerView); } @OnClick(R.id.clean_memory) public void cleanMemory() { mIgnoreSettingPresenter.cleanMemory(); } @Override public void stopRefresh() { mSwipeRefreshLayout.setRefreshing(false); } @Override public void startRefresh() { mSwipeRefreshLayout.setRefreshing(true); } @Override public boolean isRefreshing() { return mSwipeRefreshLayout.isRefreshing(); } @Override public void enableSwipeRefreshLayout(boolean enable) { mSwipeRefreshLayout.setEnabled(enable); } @Override public void showSnackBar(String message) { SnackbarUtils.show(mFloatingActionButton, message); } @Override public void updateBadge(int count) { ActionItemBadge.update(mMenuItem, count); } @Override public void updateTitle(Context context, long size) { mCollapsingToolbarLayout.setTitle(size + "个应用"); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (mIgnoreSettingPresenter.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } }