Android Open Source - EnklawaPlayer Main Activity






From Project

Back to project page EnklawaPlayer.

License

The source code is released under:

GNU General Public License

If you think the Android project EnklawaPlayer 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 macbury.pod.activities.main;
//  ww  w.  ja  v  a2 s.  c om
import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;

import com.negusoft.holoaccent.activity.AccentActivity;
import com.readystatesoftware.systembartint.SystemBarTintManager;

import java.util.List;

import macbury.pod.R;
import macbury.pod.activities.DonateActivity;
import macbury.pod.db.models.Program;
import macbury.pod.fragments.player.ExternalPlayerFragment;
import macbury.pod.managers.App;
import macbury.pod.services.SyncPodService;

public class MainActivity extends AccentActivity implements NavigationListener {
  private static final String SAVE_STATE_SELECTED_NAVBAR_ITEM = "SAVE_STATE_SELECTED_NAVBAR_ITEM";

  private DrawerLayout                  mDrawerLayout;
  private ActionBarDrawerToggle         mDrawerToggle;
  private boolean                       drawerOpened;
  private ListView                      navDrawerListView;
  private NavigationController          navigationController;
  private View                          playerFrameView;
  private ExternalPlayerFragment playerControllerFragment;
  private View                          mainContainer;

  private void updateUI() {
    if (SyncPodService.isRunning()) {
    } else {
    }
    this.invalidateOptionsMenu();

    navigationController.refresh();
  }

  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    navigationController.setSelected(savedInstanceState.getInt(SAVE_STATE_SELECTED_NAVBAR_ITEM));
  }

  @Override
  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt(SAVE_STATE_SELECTED_NAVBAR_ITEM, navigationController.getSelected());
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    tintManager.setStatusBarTintEnabled(true);
    tintManager.setStatusBarTintResource(R.color.statusbar_color);
    playerFrameView               = (View)findViewById(R.id.player_frame);
    navDrawerListView             = (ListView) findViewById(R.id.left_drawer);
    mDrawerLayout                 = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerToggle                 = new MainActivityActionBarToggle(this, mDrawerLayout);
    mainContainer                 = findViewById(R.id.main_container);
    this.navigationController     = new NavigationController(this, navDrawerListView, mDrawerLayout, this);

    mDrawerLayout.setDrawerListener(mDrawerToggle);
    navigationController.setListener(this);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayShowHomeEnabled(true);

    SystemBarTintManager.SystemBarConfig config = tintManager.getConfig();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      mainContainer.setPadding(0, config.getPixelInsetTop(true), config.getPixelInsetRight(), config.getPixelInsetBottom());
      navDrawerListView.setPadding((int) getResources().getDimension(R.dimen.nav_bar_padding), config.getPixelInsetTop(true), (int) getResources().getDimension(R.dimen.nav_bar_padding), config.getPixelInsetBottom());
    }
    showPlayer();

    //MainActivityTutorial tutorial = new MainActivityTutorial(this);
  }

  private void showPlayer() {
    if (playerControllerFragment == null){
      playerControllerFragment = new ExternalPlayerFragment();
    }
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.player_frame, playerControllerFragment)
            .commit();
  }

  @Override
  public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
  }

  @Override
  protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
  }

  @Override
  protected void onResume() {
    super.onResume();
    App app = App.current();
    app.broadcasts.podSyncReceiver(this, syncReceiver);
    app.broadcasts.favoriteProgramChangeReceiver(this, updateUIReceiver);
    updateUI();
  }

  @Override
  protected void onPause() {
    unregisterReceiver(syncReceiver);
    unregisterReceiver(updateUIReceiver);
    super.onPause();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    if (!drawerOpened) {
      getMenuInflater().inflate(R.menu.main, menu);

      MenuItem syncMenuItem = menu.findItem(R.id.action_refresh);
      syncMenuItem.setVisible(!SyncPodService.isRunning());

      MenuItem streamMenuItem = menu.findItem(R.id.action_stream);
      streamMenuItem.setVisible(false);
    }
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item)) {
      return true;
    }

    int id = item.getItemId();
    if (id == R.id.action_stream) {
      startActivity(App.current().intents.playRadioActivity());
      return true;
    } else if (id == R.id.action_settings) {
      startActivity(App.current().intents.showSettingsActivity());
      return true;
    } else if (id == R.id.action_refresh) {
      startManualSync();
    } else if (id == R.id.action_donate) {
      donate();
    }
    return super.onOptionsItemSelected(item);
  }

  private void donate() {
    Intent donateIntent = new Intent(this, DonateActivity.class);
    startActivity(donateIntent);
  }

  @Override
  public void onBackPressed() {
    if (drawerOpened) {
      mDrawerLayout.closeDrawers();
    } else {
      super.onBackPressed();
    }
  }

  public void startManualSync() {
    App.current().services.syncPodService();
  }

  public void drawerStateChange(boolean opened) {
    drawerOpened = opened;
    this.invalidateOptionsMenu();
  }

  BroadcastReceiver syncReceiver     = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      MainActivity.this.updateUI();
    }
  };

  BroadcastReceiver updateUIReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) { MainActivity.this.updateUI(); }
  };

  @Override
  public void onNavigationFragmentSelect(Fragment fragment) {
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.content_frame, fragment)
            .commit();

  }

  @Override
  public List<Program> getNavigationControllerFavoritedPrograms() {
    return App.current().db.programs.allFavorited();
  }
}




Java Source Code List

macbury.pod.ApplicationTest.java
macbury.pod.activities.DonateActivity.java
macbury.pod.activities.ProgramEpisodesActivity.java
macbury.pod.activities.SettingsActivity.java
macbury.pod.activities.ext.AccentFragmentActivity.java
macbury.pod.activities.main.MainActivityActionBarToggle.java
macbury.pod.activities.main.MainActivity.java
macbury.pod.activities.main.NavigationController.java
macbury.pod.activities.main.NavigationListener.java
macbury.pod.activities.player.PlayerActivity.java
macbury.pod.activities.player.RadioActivity.java
macbury.pod.adapters.EpisodesAdapterListener.java
macbury.pod.adapters.EpisodesAdapter.java
macbury.pod.adapters.ProgramsAdapter.java
macbury.pod.api.APICategory.java
macbury.pod.api.APIEpisode.java
macbury.pod.api.APIProgram.java
macbury.pod.api.APIResponse.java
macbury.pod.api.APIThread.java
macbury.pod.db.DatabaseCRUDListener.java
macbury.pod.db.models.EnqueueEpisode.java
macbury.pod.db.models.EpisodeFile.java
macbury.pod.db.models.Episode.java
macbury.pod.db.models.ForumThread.java
macbury.pod.db.models.Program.java
macbury.pod.db.scopes.AbstractScope.java
macbury.pod.db.scopes.EnqueueEpisodeScope.java
macbury.pod.db.scopes.EpisodeFilesScope.java
macbury.pod.db.scopes.EpisodesScope.java
macbury.pod.db.scopes.ProgramsScope.java
macbury.pod.db.scopes.ThreadScope.java
macbury.pod.dialogs.EpisodeAboutDialog.java
macbury.pod.dialogs.ProgramAboutDialog.java
macbury.pod.extensions.Converter.java
macbury.pod.extensions.DateDeserializer.java
macbury.pod.extensions.SleepTimer.java
macbury.pod.fragments.SettingsFragment.java
macbury.pod.fragments.main.AbstractEpisodesFragment.java
macbury.pod.fragments.main.AllProgramsFragment.java
macbury.pod.fragments.main.EnklawaBaseAbstractListFragment.java
macbury.pod.fragments.main.episodes.DownloadedEpisodesFragment.java
macbury.pod.fragments.main.episodes.NewestEpisodesFragment.java
macbury.pod.fragments.main.episodes.PlaylistFragment.java
macbury.pod.fragments.main.episodes.ProgramEpisodesFragment.java
macbury.pod.fragments.player.ExternalPlayerFragment.java
macbury.pod.fragments.player.PlayerArtworkAndInfoFragment.java
macbury.pod.fragments.player.PlayerControllerFragment.java
macbury.pod.managers.AlarmsManager.java
macbury.pod.managers.App.java
macbury.pod.managers.BroadcastsManager.java
macbury.pod.managers.DatabaseManager.java
macbury.pod.managers.IntentManager.java
macbury.pod.managers.NotificationsManager.java
macbury.pod.managers.ServiceManager.java
macbury.pod.managers.SettingsManager.java
macbury.pod.managers.StorageManager.java
macbury.pod.managers.download.DownloadEpisode.java
macbury.pod.managers.download.DownloadManagerListener.java
macbury.pod.managers.download.DownloadManager.java
macbury.pod.managers.player.PlaybackStatus.java
macbury.pod.managers.player.PlayerManagerListener.java
macbury.pod.managers.player.PlayerManager.java
macbury.pod.managers.player.sources.AbstractMediaSource.java
macbury.pod.managers.player.sources.EpisodeMediaSource.java
macbury.pod.managers.player.sources.RadioMediaSource.java
macbury.pod.navigation_drawer.NavAdapter.java
macbury.pod.navigation_drawer.NavBaseItem.java
macbury.pod.navigation_drawer.NavDivider.java
macbury.pod.navigation_drawer.items.AllProgramsNavItem.java
macbury.pod.navigation_drawer.items.DownloadedEpisodesNavItem.java
macbury.pod.navigation_drawer.items.FavoriteProgramNavItem.java
macbury.pod.navigation_drawer.items.ForumNavItem.java
macbury.pod.navigation_drawer.items.NavItemFragment.java
macbury.pod.navigation_drawer.items.NewestEpisodesNavItem.java
macbury.pod.navigation_drawer.items.PlayQueueNavItem.java
macbury.pod.receivers.BootReceiver.java
macbury.pod.receivers.MediaButtonReceiver.java
macbury.pod.services.DownloadService.java
macbury.pod.services.PlayerService.java
macbury.pod.services.SyncPodService.java
macbury.pod.tutorial.MainActivityTutorial.java
macbury.pod.views.TappableFrameLayout.java