package com.camnter.newlife.ui.activity;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.TextView;
import com.camnter.easyrecyclerview.adapter.EasyRecyclerViewAdapter;
import com.camnter.easyrecyclerview.holder.EasyRecyclerViewHolder;
import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
import com.camnter.easyrecyclerview.widget.decorator.EasyDividerItemDecoration;
import com.camnter.newlife.R;
import com.camnter.newlife.core.activity.BaseAppCompatActivity;
import com.camnter.newlife.ui.activity.agera.AgeraActivity;
import com.camnter.newlife.ui.activity.classloader.ClassLoaderActivity;
import com.camnter.newlife.ui.activity.classloader.ExternalLoadSoActivity;
import com.camnter.newlife.ui.activity.classloader.InternalLoadSoActivity;
import com.camnter.newlife.ui.activity.design.CoordinatorLayoutActivity;
import com.camnter.newlife.ui.activity.design.FloatingActionButtonActivity;
import com.camnter.newlife.ui.activity.design.NavigationViewActivity;
import com.camnter.newlife.ui.activity.design.SnackbarActivity;
import com.camnter.newlife.ui.activity.design.TextInputLayoutActivity;
import com.camnter.newlife.ui.activity.design.tablayout.CustomViewTabLayoutActivity;
import com.camnter.newlife.ui.activity.design.tablayout.ImageSpanTabLayoutActivity;
import com.camnter.newlife.ui.activity.design.tablayout.NormalTabLayoutActivity;
import com.camnter.newlife.ui.activity.design.tablayout.SetIconTabLayoutActivity;
import com.camnter.newlife.ui.activity.easylikearea.EasyLikeAreaQZoneActivity;
import com.camnter.newlife.ui.activity.easylikearea.EasyLikeAreaStyleActivity;
import com.camnter.newlife.ui.activity.easylikearea.EasyLikeAreaTopicActivity;
import com.camnter.newlife.ui.activity.easyrecyclerviewsidebar.CircleImageSectionActivity;
import com.camnter.newlife.ui.activity.easyrecyclerviewsidebar.LetterSectionActivity;
import com.camnter.newlife.ui.activity.easyrecyclerviewsidebar.RoundImageSectionActivity;
import com.camnter.newlife.ui.activity.hotfix.HotFixActivity;
import com.camnter.newlife.ui.activity.ipc.MessengerActivity;
import com.camnter.newlife.ui.activity.jsbridge.JsBridgeActivity;
import com.camnter.newlife.ui.activity.lrucache.LruCacheActivity;
import com.camnter.newlife.ui.activity.ipc.AIDLActivity;
import com.camnter.newlife.ui.activity.rx.RxAsyncActivity;
import com.camnter.newlife.ui.activity.rx.RxMapActivity;
import com.camnter.newlife.ui.activity.rx.RxSyncActivity;
import com.camnter.newlife.ui.activity.singletask.LaunchModeActivity;
import com.camnter.newlife.ui.activity.tabalphaview.TabAlphaViewActivity;
import com.camnter.newlife.ui.activity.util.DateUtilActivity;
import com.camnter.newlife.ui.activity.util.DeviceUtilActivity;
import com.camnter.newlife.ui.activity.util.ReflectionUtilActivity;
import com.camnter.newlife.ui.activity.util.ResourcesUtilActivity;
import com.camnter.newlife.ui.activity.xfermode.XfermodesActivity;
import com.camnter.newlife.ui.databinding.view.RatingRankActivity;
import java.util.ArrayList;
import me.drakeet.newlife.RxBusActivity;
public class MainActivity extends BaseAppCompatActivity {
protected ArrayList<Class> classes;
protected boolean showTag = true;
private EasyRecyclerView menuList;
private MenuRecyclerViewAdapter adapter;
/**
* Fill in layout id
*
* @return layout id
*/
@Override protected int getLayoutId() {
return R.layout.activity_main;
}
/**
* Initialize the view in the layout
*
* @param savedInstanceState savedInstanceState
*/
@Override protected void initViews(Bundle savedInstanceState) {
this.menuList = this.findView(R.id.menu_list);
this.menuList.addItemDecoration(
new EasyDividerItemDecoration(this, EasyDividerItemDecoration.VERTICAL_LIST));
}
/**
* Initialize the View of the listener
*/
@Override protected void initListeners() {
this.adapter.setOnItemClickListener((view, i) -> {
Class c = MainActivity.this.classes.get(i);
MainActivity.this.startActivity(new Intent(MainActivity.this, c));
});
}
/**
* Initialize the Activity data
*/
@Override protected void initData() {
this.classes = new ArrayList<>();
this.setListData();
this.adapter = new MenuRecyclerViewAdapter();
this.adapter.setList(classes);
this.menuList.setAdapter(adapter);
this.replaceAppIcon();
}
private void replaceAppIcon() {
final ComponentName defaultComponentName = this.getComponentName();
final ComponentName newComponentName = new ComponentName(this.getBaseContext(),
"com.camnter.newlife.icon.round");
final PackageManager packageManager = this.getApplicationContext().getPackageManager();
// this.disableComponent(packageManager,defaultComponentName);
this.enableComponent(packageManager,newComponentName);
}
private void enableComponent(@NonNull final PackageManager packageManager,
@NonNull final ComponentName componentName) {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
private void disableComponent(@NonNull final PackageManager packageManager,
@NonNull final ComponentName componentName) {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
protected void setListData() {
this.classes.add(ImageScaleTypesActivity.class);
this.classes.add(AsyncTaskActivity.class);
this.classes.add(TextInputLayoutActivity.class);
this.classes.add(RefreshUIActivity.class);
this.classes.add(LaunchModeActivity.class);
this.classes.add(NavigationViewActivity.class);
this.classes.add(DeviceUtilActivity.class);
this.classes.add(FloatingActionButtonActivity.class);
this.classes.add(SnackbarActivity.class);
this.classes.add(DateUtilActivity.class);
this.classes.add(EasySlidingTabsActivity.class);
this.classes.add(AutoAdjustSizeEditTextActivity.class);
this.classes.add(AutoAdjustSizeTextViewActivity.class);
this.classes.add(DownloadImageToGalleryActivity.class);
this.classes.add(EasyRecyclerViewActivity.class);
this.classes.add(NormalTabLayoutActivity.class);
this.classes.add(SetIconTabLayoutActivity.class);
this.classes.add(ImageSpanTabLayoutActivity.class);
this.classes.add(CustomViewTabLayoutActivity.class);
this.classes.add(CoordinatorLayoutActivity.class);
this.classes.add(SensorManagerActivity.class);
this.classes.add(SQLiteActivity.class);
this.classes.add(CustomContentProviderActivity.class);
this.classes.add(DownloadServiceActivity.class);
this.classes.add(AIDLActivity.class);
this.classes.add(MessengerActivity.class);
this.classes.add(ReflectionUtilActivity.class);
this.classes.add(StaticReceiverActivity.class);
this.classes.add(DynamicReceiverActivity.class);
this.classes.add(DownloadReceiverActivity.class);
this.classes.add(ResourcesUtilActivity.class);
this.classes.add(LocationManagerActivity.class);
this.classes.add(RxSyncActivity.class);
this.classes.add(RxAsyncActivity.class);
this.classes.add(RxMapActivity.class);
this.classes.add(DialogActivity.class);
this.classes.add(PopupWindowActivity.class);
this.classes.add(TagTextViewActivity.class);
this.classes.add(EasyFlowLayoutActivity.class);
this.classes.add(SpanActivity.class);
this.classes.add(OttoActivity.class);
this.classes.add(AnimatorActivity.class);
this.classes.add(CanvasClipViewActivity.class);
this.classes.add(RoundImageViewActivity.class);
this.classes.add(XfermodesActivity.class);
this.classes.add(EasyArcLoadingActivity.class);
this.classes.add(RxBusActivity.class);
this.classes.add(EasyLikeAreaTopicActivity.class);
this.classes.add(EasyLikeAreaQZoneActivity.class);
this.classes.add(EasyLikeAreaStyleActivity.class);
this.classes.add(LetterSectionActivity.class);
this.classes.add(CircleImageSectionActivity.class);
this.classes.add(RoundImageSectionActivity.class);
this.classes.add(LruCacheActivity.class);
this.classes.add(VolleyActivity.class);
this.classes.add(AgeraActivity.class);
this.classes.add(ClassLoaderActivity.class);
this.classes.add(ExternalLoadSoActivity.class);
this.classes.add(InternalLoadSoActivity.class);
this.classes.add(HotFixActivity.class);
this.classes.add(RemoteViewsActivity.class);
this.classes.add(JsBridgeActivity.class);
this.classes.add(RatingRankActivity.class);
this.classes.add(TabAlphaViewActivity.class);
}
private class MenuRecyclerViewAdapter extends EasyRecyclerViewAdapter {
final int camnterColor = 0xffC04F90;
final int drakeetColor = 0xff5B64AF;
@Override public int[] getItemLayouts() {
return new int[] { R.layout.item_main };
}
@SuppressLint("SetTextI18n") @Override
public void onBindRecycleViewHolder(EasyRecyclerViewHolder easyRecyclerViewHolder, int i) {
Class c = (Class) this.getList().get(i);
if (c == null) return;
TextView content = easyRecyclerViewHolder.findViewById(R.id.main_item_tv);
TextView type = easyRecyclerViewHolder.findViewById(R.id.main_item_type);
content.setText(c.getSimpleName());
if (showTag) {
type.setVisibility(View.VISIBLE);
if (c.getName().contains("drakeet")) {
type.setText("drakeet");
type.setTextColor(drakeetColor);
type.setBackgroundResource(R.drawable.bg_main_item_type_drakeet);
} else {
type.setText("CaMnter");
type.setTextColor(camnterColor);
type.setBackgroundResource(R.drawable.bg_main_item_type_camnter);
}
} else {
type.setVisibility(View.GONE);
}
}
@Override public int getRecycleViewItemType(int i) {
return 0;
}
}
}