Android Open Source - vanilindy Filebrowser Start Activity






From Project

Back to project page vanilindy.

License

The source code is released under:

Apache License

If you think the Android project vanilindy 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

/*
 * Copyright (C) 2013 Adrian Ulrich <adrian@blinkenlights.ch>
 *//  w w  w .j  a  v  a 2 s.c o m
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>. 
 */

package ch.blinkenlights.android.vanilla;

import java.util.ArrayList;
import java.util.Arrays;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.MenuItem;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Button;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
import android.content.SharedPreferences;


public class FilebrowserStartActivity extends PlaybackActivity {
  
  private ListView mListView;
  private TextView mPathDisplay;
  private Button mSaveButton;
  private FilebrowserStartAdapter mListAdapter;
  private String mCurrentPath;
  private SharedPreferences.Editor mPrefEditor;
  
  @Override  
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    setTitle(R.string.filebrowser_start);
    setContentView(R.layout.filebrowser_content);
    
    mCurrentPath = (String)getFilesystemBrowseStart().getAbsolutePath();
    mPrefEditor  = PlaybackService.getSettings(this).edit();
    mListAdapter = new FilebrowserStartAdapter(this, R.layout.showqueue_row);
    mPathDisplay = (TextView) findViewById(R.id.path_display);
    mListView    = (ListView) findViewById(R.id.list);
    mSaveButton  = (Button) findViewById(R.id.save_button);
    
    mListView.setAdapter(mListAdapter);
    mListView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        jumpToDirectory(position);
      }});
    
    mSaveButton.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        mPrefEditor.putString("filesystem_browse_start", mCurrentPath);
        mPrefEditor.commit();
        finish();
      }});
  }
  
  /*
  ** Called when we are displayed (again)
  ** This will always refresh the whole song list
  */
  @Override
  public void onResume() {
    super.onResume();
    refreshDirectoryList();
  }
  
  /*
  ** Create a bare-bones actionbar
  */
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    return true;
  }
  @Override
  public boolean onOptionsItemSelected(MenuItem item)
  {
    if (item.getItemId() == android.R.id.home) {
      finish();
      return true;
    } else {
      return super.onOptionsItemSelected(item);
    }
  }
  
  /*
  ** Enters selected directory at 'pos'
  */
  private void jumpToDirectory(int pos) {
    String dirent = mListAdapter.getItem(pos);
    
    if(pos == 0) {
      mCurrentPath = (new File(mCurrentPath)).getParent();
    }
    else {
      mCurrentPath += "/" + dirent;
    }
    
    /* let java fixup any strange paths */
    mCurrentPath = (new File(mCurrentPath == null ? "/" : mCurrentPath)).getAbsolutePath();
    
    refreshDirectoryList();
  }
  
  /*
  ** display mCurrentPath in the dialog
  */
  private void refreshDirectoryList() {
    File path = new File(mCurrentPath);
    File[]dirs = path.listFiles();
    
    mListAdapter.clear();
    mListAdapter.add("../");
    
    if(dirs != null) {
      Arrays.sort(dirs);
      for(File fentry: dirs) {
        if(fentry.isDirectory()) {
          mListAdapter.add(fentry.getName());
        }
      }
    }
    else {
      Toast.makeText(this, "Failed to display "+mCurrentPath, Toast.LENGTH_SHORT).show();
    }
    mPathDisplay.setText(mCurrentPath);
    mListView.setSelectionFromTop(0, 0);
  }
  
}




Java Source Code List

android.support.v4.view.PagerAdapter.java
android.support.v4.view.ViewPager.java
ch.blinkenlights.android.vanilla.ActionBarControls.java
ch.blinkenlights.android.vanilla.Action.java
ch.blinkenlights.android.vanilla.BastpUtil.java
ch.blinkenlights.android.vanilla.BuildConfig.java
ch.blinkenlights.android.vanilla.CompatHoneycomb.java
ch.blinkenlights.android.vanilla.CompatIcs.java
ch.blinkenlights.android.vanilla.CoverBitmap.java
ch.blinkenlights.android.vanilla.CoverView.java
ch.blinkenlights.android.vanilla.DragListView.java
ch.blinkenlights.android.vanilla.DragTextView.java
ch.blinkenlights.android.vanilla.FileSystemAdapter.java
ch.blinkenlights.android.vanilla.FilebrowserStartActivity.java
ch.blinkenlights.android.vanilla.FilebrowserStartAdapter.java
ch.blinkenlights.android.vanilla.FourLongWidget.java
ch.blinkenlights.android.vanilla.FourSquareWidget.java
ch.blinkenlights.android.vanilla.FourWhiteWidget.java
ch.blinkenlights.android.vanilla.FullPlaybackActivity.java
ch.blinkenlights.android.vanilla.IdlePreference.java
ch.blinkenlights.android.vanilla.LibraryActivity.java
ch.blinkenlights.android.vanilla.LibraryAdapter.java
ch.blinkenlights.android.vanilla.LibraryPagerAdapter.java
ch.blinkenlights.android.vanilla.Limiter.java
ch.blinkenlights.android.vanilla.ListPreferenceSummary.java
ch.blinkenlights.android.vanilla.MediaAdapter.java
ch.blinkenlights.android.vanilla.MediaButtonReceiver.java
ch.blinkenlights.android.vanilla.MediaUtils.java
ch.blinkenlights.android.vanilla.MiniPlaybackActivity.java
ch.blinkenlights.android.vanilla.MusicAlphabetIndexer.java
ch.blinkenlights.android.vanilla.NewPlaylistDialog.java
ch.blinkenlights.android.vanilla.OneCellWidget.java
ch.blinkenlights.android.vanilla.PlayCountsHelper.java
ch.blinkenlights.android.vanilla.PlaybackActivity.java
ch.blinkenlights.android.vanilla.PlaybackService.java
ch.blinkenlights.android.vanilla.PlaylistActivity.java
ch.blinkenlights.android.vanilla.PlaylistAdapter.java
ch.blinkenlights.android.vanilla.Playlist.java
ch.blinkenlights.android.vanilla.PrefKeys.java
ch.blinkenlights.android.vanilla.PreferencesActivity.java
ch.blinkenlights.android.vanilla.PreferencesBackupAgent.java
ch.blinkenlights.android.vanilla.QueryTask.java
ch.blinkenlights.android.vanilla.ReadaheadThread.java
ch.blinkenlights.android.vanilla.SeekBarPreference.java
ch.blinkenlights.android.vanilla.ShowQueueActivity.java
ch.blinkenlights.android.vanilla.ShowQueueAdapter.java
ch.blinkenlights.android.vanilla.SongTimeline.java
ch.blinkenlights.android.vanilla.Song.java
ch.blinkenlights.android.vanilla.TabOrderActivity.java
ch.blinkenlights.android.vanilla.TabOrderAdapter.java
ch.blinkenlights.android.vanilla.WidgetD.java
ch.blinkenlights.android.vanilla.WidgetE.java
ch.blinkenlights.bastp.Bastp.java
ch.blinkenlights.bastp.Common.java
ch.blinkenlights.bastp.FlacFile.java
ch.blinkenlights.bastp.ID3v2File.java
ch.blinkenlights.bastp.LameHeader.java
ch.blinkenlights.bastp.OggFile.java
com.viewpagerindicator.TabPageIndicator.java