Android Open Source - Munin-for-Android Munin Activity






From Project

Back to project page Munin-for-Android.

License

The source code is released under:

GNU General Public License

If you think the Android project Munin-for-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.chteuchteu.munin.ui;
/*from  w w w .  j  av  a2 s . c o  m*/
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.balysv.materialmenu.MaterialMenuDrawable;
import com.balysv.materialmenu.extras.toolbar.MaterialMenuIconToolbar;
import com.chteuchteu.munin.BuildConfig;
import com.chteuchteu.munin.MuninFoo;
import com.chteuchteu.munin.R;
import com.chteuchteu.munin.hlpr.DrawerHelper;
import com.chteuchteu.munin.hlpr.I18nHelper;
import com.chteuchteu.munin.hlpr.Util;
import com.crashlytics.android.Crashlytics;
import com.google.analytics.tracking.android.EasyTracker;

/**
 * One class to rule them all
 * Every Activity_* extends this one to avoid code redundancy
 * Note: Activity_Main doesn't extend it because of it special
 *  way of working (loading app before displaying anything)
 */
public class MuninActivity extends ActionBarActivity {
  protected MuninFoo      muninFoo;
  protected DrawerHelper  dh;
  protected Context       context;
  protected Activity      activity;
  protected android.support.v7.app.ActionBar actionBar;
  protected Toolbar       toolbar;
  private MaterialMenuIconToolbar materialMenu;
  private boolean        isDrawerOpened;
  protected Menu          menu;

  private Runnable    onDrawerOpen;
  private Runnable    onDrawerClose;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Crashlytics.start(this);

    this.context = this;
    this.activity = this;
    this.muninFoo = MuninFoo.getInstance(this);
    I18nHelper.loadLanguage(this, muninFoo);

    // setContentView...
  }

  public void onContentViewSet() {
    Util.UI.applySwag(this);
    this.toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    this.actionBar = getSupportActionBar();
    this.actionBar.setDisplayShowHomeEnabled(false);
    this.dh = new DrawerHelper(this, muninFoo);
    this.materialMenu = new MaterialMenuIconToolbar(this, Color.WHITE, MaterialMenuDrawable.Stroke.THIN) {
      @Override public int getToolbarViewId() {
        return R.id.toolbar;
      }
    };
    this.materialMenu.setNeverDrawTouch(true);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() != android.R.id.home)
      dh.closeDrawerIfOpened();

    switch (item.getItemId()) {
      case android.R.id.home:
        dh.toggle();
        return true;
      case R.id.menu_settings:
        startActivity(new Intent(context, Activity_Settings.class));
        Util.setTransition(context, Util.TransitionStyle.DEEPER);
        return true;
      case R.id.menu_about:
        startActivity(new Intent(context, Activity_About.class));
        Util.setTransition(context, Util.TransitionStyle.DEEPER);
        return true;
    }

    return true;
  }

  protected void createOptionsMenu() { menu.clear(); }

  @Override
  public boolean onCreateOptionsMenu(final Menu menu) {
    this.menu = menu;
    dh.getDrawerLayout().setDrawerListener(new DrawerLayout.DrawerListener() {
      @Override
      public void onDrawerSlide(View view, float slideOffset) {
        materialMenu.setTransformationOffset(
            MaterialMenuDrawable.AnimationState.BURGER_ARROW,
            isDrawerOpened ? 2 - slideOffset : slideOffset
        );
      }

      @Override
      public void onDrawerOpened(View view) {
        isDrawerOpened = true;
        materialMenu.animatePressedState(MaterialMenuDrawable.IconState.ARROW);

        actionBar.setSubtitle(actionBar.getTitle());
        actionBar.setTitle(getString(R.string.app_name));

        // Runnable set in Activity
        if (onDrawerOpen != null)
          onDrawerOpen.run();

        menu.clear();
        getMenuInflater().inflate(R.menu.main, menu);
      }

      @Override
      public void onDrawerClosed(View view) {
        isDrawerOpened = false;
        materialMenu.animatePressedState(MaterialMenuDrawable.IconState.BURGER);

        actionBar.setTitle(actionBar.getSubtitle());
        actionBar.setSubtitle(null);

        // Runnable set in Activity
        if (onDrawerClose != null)
          onDrawerClose.run();

        createOptionsMenu();
      }

      @Override
      public void onDrawerStateChanged(int i) { }
    });

    createOptionsMenu();

    return true;
  }

  public DrawerHelper.DrawerMenuItem getDrawerMenuItem() { return DrawerHelper.DrawerMenuItem.None; }
  protected void setOnDrawerOpen(Runnable val) { this.onDrawerOpen = val; }
  protected void setOnDrawerClose(Runnable val) { this.onDrawerClose = val; }

  @Override
  public void onStart() {
    super.onStart();

    if (!BuildConfig.DEBUG)
      EasyTracker.getInstance(this).activityStart(this);
  }

  @Override
  public void onStop() {
    super.onStop();

    if (!BuildConfig.DEBUG)
      EasyTracker.getInstance(this).activityStop(this);
  }

  protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    materialMenu.syncState(savedInstanceState);
  }

  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    materialMenu.onSaveInstanceState(outState);
  }

  protected void log(String s) { MuninFoo.log(((Object) this).getClass().getName(), s); }
}




Java Source Code List

com.chteuchteu.munin.BootReceiver.java
com.chteuchteu.munin.CustomSSLFactory.java
com.chteuchteu.munin.MuninFoo.java
com.chteuchteu.munin.Service_Notifications.java
com.chteuchteu.munin.adptr.Adapter_ExpandableListView.java
com.chteuchteu.munin.adptr.Adapter_GraphView.java
com.chteuchteu.munin.adptr.Adapter_IconList.java
com.chteuchteu.munin.adptr.Adapter_SeparatedList.java
com.chteuchteu.munin.exc.ImportExportWebserviceException.java
com.chteuchteu.munin.exc.NullMuninFooException.java
com.chteuchteu.munin.exc.TrialExpirationDateReached.java
com.chteuchteu.munin.hlpr.BillingService.java
com.chteuchteu.munin.hlpr.DatabaseHelper.java
com.chteuchteu.munin.hlpr.DigestUtils.java
com.chteuchteu.munin.hlpr.DocumentationHelper.java
com.chteuchteu.munin.hlpr.DrawerHelper.java
com.chteuchteu.munin.hlpr.DynazoomHelper.java
com.chteuchteu.munin.hlpr.EncryptionHelper.java
com.chteuchteu.munin.hlpr.GridDownloadHelper.java
com.chteuchteu.munin.hlpr.I18nHelper.java
com.chteuchteu.munin.hlpr.ImportExportHelper.java
com.chteuchteu.munin.hlpr.JSONHelper.java
com.chteuchteu.munin.hlpr.MediaScannerUtil.java
com.chteuchteu.munin.hlpr.NetHelper.java
com.chteuchteu.munin.hlpr.SQLite.java
com.chteuchteu.munin.hlpr.Util.java
com.chteuchteu.munin.obj.AlertsWidget.java
com.chteuchteu.munin.obj.GraphWidget.java
com.chteuchteu.munin.obj.GridItem.java
com.chteuchteu.munin.obj.Grid.java
com.chteuchteu.munin.obj.HTTPResponse_Bitmap.java
com.chteuchteu.munin.obj.HTTPResponse.java
com.chteuchteu.munin.obj.Label.java
com.chteuchteu.munin.obj.MuninMaster.java
com.chteuchteu.munin.obj.MuninPlugin.java
com.chteuchteu.munin.obj.MuninServer.java
com.chteuchteu.munin.obj.SearchResult.java
com.chteuchteu.munin.ui.Activity_About.java
com.chteuchteu.munin.ui.Activity_AlertsPluginSelection.java
com.chteuchteu.munin.ui.Activity_Alerts.java
com.chteuchteu.munin.ui.Activity_GoPremium.java
com.chteuchteu.munin.ui.Activity_GraphView.java
com.chteuchteu.munin.ui.Activity_Grid.java
com.chteuchteu.munin.ui.Activity_Grids.java
com.chteuchteu.munin.ui.Activity_Label.java
com.chteuchteu.munin.ui.Activity_Labels.java
com.chteuchteu.munin.ui.Activity_Main.java
com.chteuchteu.munin.ui.Activity_Notifications.java
com.chteuchteu.munin.ui.Activity_Plugins.java
com.chteuchteu.munin.ui.Activity_Server.java
com.chteuchteu.munin.ui.Activity_ServersEdit.java
com.chteuchteu.munin.ui.Activity_Servers.java
com.chteuchteu.munin.ui.Activity_Settings.java
com.chteuchteu.munin.ui.HackyDrawerLayout.java
com.chteuchteu.munin.ui.MuninActivity.java
com.chteuchteu.munin.wdget.Widget_AlertsWidget_Configure.java
com.chteuchteu.munin.wdget.Widget_AlertsWidget_ViewsFactory.java
com.chteuchteu.munin.wdget.Widget_AlertsWidget_WidgetProvider.java
com.chteuchteu.munin.wdget.Widget_AlertsWidget_WidgetService.java
com.chteuchteu.munin.wdget.Widget_GraphWidget_Configure.java
com.chteuchteu.munin.wdget.Widget_GraphWidget_WidgetProvider.java
com.mobeta.android.dslv.DragSortController.java
com.mobeta.android.dslv.DragSortCursorAdapter.java
com.mobeta.android.dslv.DragSortItemViewCheckable.java
com.mobeta.android.dslv.DragSortItemView.java
com.mobeta.android.dslv.DragSortListView.java
com.mobeta.android.dslv.ResourceDragSortCursorAdapter.java
com.mobeta.android.dslv.SimpleDragSortCursorAdapter.java
com.mobeta.android.dslv.SimpleFloatViewManager.java
org.taptwo.android.widget.CircleFlowIndicator.java
org.taptwo.android.widget.FlowIndicator.java
org.taptwo.android.widget.TitleFlowIndicator.java
org.taptwo.android.widget.TitleProvider.java
org.taptwo.android.widget.ViewFlow.java
uk.co.senab.photoview.Compat.java
uk.co.senab.photoview.IPhotoView.java
uk.co.senab.photoview.PhotoViewAttacher.java
uk.co.senab.photoview.PhotoView.java
uk.co.senab.photoview.SDK16.java
uk.co.senab.photoview.ScrollerProxy.java
uk.co.senab.photoview.VersionedGestureDetector.java