package com.mcxiaoke.apptoolkit.app;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.view.ViewGroup;
import com.google.analytics.tracking.android.EasyTracker;
import com.mcxiaoke.apptoolkit.AppConfig;
import com.mcxiaoke.apptoolkit.AppContext;
import com.mcxiaoke.apptoolkit.R;
import com.mcxiaoke.apptoolkit.cache.CacheManager;
import com.mcxiaoke.apptoolkit.callback.IPackageMonitor;
import com.mcxiaoke.apptoolkit.fragment.BaseFragment;
import com.mcxiaoke.apptoolkit.fragment.PackageListFragment;
import com.mcxiaoke.apptoolkit.menu.MenuCallback;
import com.mcxiaoke.apptoolkit.menu.MenuFragment;
import com.mcxiaoke.apptoolkit.menu.MenuItemResource;
import com.mcxiaoke.apptoolkit.receiver.PackageMonitor;
/**
* Project: filemanager
* Package: com.com.mcxiaoke.appmanager.app
* User: com.mcxiaoke
* Date: 13-6-10
* Time: 下午9:18
*/
public class UIHome extends UIBaseSupport implements IPackageMonitor, MenuCallback {
private static final int MSG_PACKAGE_REMOVED = 0;
private BaseFragment mFragment;
private UIHome mContext;
private DrawerLayout mDrawerLayout;
private ViewGroup mDrawer;
private ViewGroup mContainer;
private PackageMonitor mPackageMonitor;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
setContentView(R.layout.main);
hideProgressIndicator();
debug("onCreate()");
// setActionBar();
mPackageMonitor = new PackageMonitor();
mPackageMonitor.register(this, this, false);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawer = (ViewGroup) findViewById(R.id.left_drawer);
mContainer = (ViewGroup) findViewById(R.id.container);
if (AppContext.isDebug()) {
getSupportActionBar().setTitle("DEBUG VERSION");
}
addFragment();
// new LoadRunningProcessTask(this, null).start(new TaskMessage());
}
private void addFragment() {
debug("addAppListFragment()");
mFragment = PackageListFragment.newInstance(AppConfig.TYPE_USER_APP_MANAGER, false);
getSupportFragmentManager().beginTransaction().replace(R.id.container, mFragment).commit();
getSupportFragmentManager().beginTransaction().replace(R.id.left_drawer, new MenuFragment()).commit();
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
debug("onCreateOptionsMenu()");
menu.clear();
getSupportMenuInflater().inflate(R.menu.menu_home, menu);
if (isRefreshing()) {
menu.findItem(R.id.menu_refresh).setActionView(
R.layout.action_bar_indeterminate_progress);
}
return true;
}
@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_refresh:
refresh();
return true;
case R.id.menu_settings:
showSettings();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onPrepareOptionsMenu(com.actionbarsherlock.view.Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public void onMenuItemSelected(int position, MenuItemResource menuItem) {
}
@Override
protected void onHomeClick() {
}
private void refresh() {
if (mFragment != null && mFragment.isVisible()) {
debug("refresh()");
mFragment.refresh();
}
}
private void showSettings() {
Intent intent = new Intent(this, UISettings.class);
startActivity(intent);
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStart() {
super.onStart();
EasyTracker.getInstance().activityStart(this);
}
@Override
protected void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
debug("onDestroy()");
if (mPackageMonitor != null) {
mPackageMonitor.unregister();
mPackageMonitor = null;
}
CacheManager.getInstance().clear();
}
@Override
protected boolean hasRefreshAction() {
return true;
}
@Override
protected void debug(String message) {
super.debug(message);
}
@Override
public void onPackageAdded(String packageName, int uid) {
debug("onPackageAdded() packageName=" + packageName + " uid=" + uid);
}
@Override
public void onPackageChanged(String packageName, int uid, String[] components) {
debug("onPackageChanged() packageName=" + packageName + " uid=" + uid);
}
@Override
public void onPackageModified(String packageName) {
debug("onPackageModified() packageName=" + packageName);
}
@Override
public void onPackageRemoved(String packageName, int uid) {
debug("onPackageRemoved() packageName=" + packageName + " uid=" + uid);
if (mFragment != null && mFragment.isVisible() && mFragment instanceof IPackageMonitor) {
((PackageListFragment) mFragment).onPackageRemoved(packageName, uid);
}
}
@Override
public void onUidRemoved(int uid) {
debug("onUidRemoved() uid=" + uid);
}
}