Add a subtitle to AddDirectoryActivity containing the currently displayed folder's path.
This commit is contained in:
parent
ca4bec3539
commit
abaf41baa7
|
@ -24,6 +24,7 @@ public class AddDirectoryActivity extends Activity implements FileAdapter.FileCl
|
|||
public static final String KEY_CURRENT_PATH = BuildConfig.APPLICATION_ID + ".path";
|
||||
|
||||
private FileAdapter mAdapter;
|
||||
private Toolbar mToolbar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
|
@ -32,8 +33,8 @@ public class AddDirectoryActivity extends Activity implements FileAdapter.FileCl
|
|||
|
||||
setContentView(R.layout.activity_add_directory);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_folder_list);
|
||||
setActionBar(toolbar);
|
||||
mToolbar = (Toolbar) findViewById(R.id.toolbar_folder_list);
|
||||
setActionBar(mToolbar);
|
||||
|
||||
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list_files);
|
||||
|
||||
|
@ -46,7 +47,8 @@ public class AddDirectoryActivity extends Activity implements FileAdapter.FileCl
|
|||
if (savedInstanceState == null)
|
||||
{
|
||||
path = Environment.getExternalStorageDirectory().getPath();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the path we were looking at before we rotated.
|
||||
path = savedInstanceState.getString(KEY_CURRENT_PATH);
|
||||
|
@ -71,7 +73,7 @@ public class AddDirectoryActivity extends Activity implements FileAdapter.FileCl
|
|||
switch (item.getItemId())
|
||||
{
|
||||
case R.id.menu_up_one_level:
|
||||
mAdapter.setPath(mAdapter.getPath() + "/..");
|
||||
mAdapter.upOneLevel();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -101,4 +103,10 @@ public class AddDirectoryActivity extends Activity implements FileAdapter.FileCl
|
|||
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSubtitle(String path)
|
||||
{
|
||||
mToolbar.setSubtitle(path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,6 +69,8 @@ public final class GameGridActivity extends Activity
|
|||
public void onClick(View view)
|
||||
{
|
||||
Intent fileChooser = new Intent(GameGridActivity.this, AddDirectoryActivity.class);
|
||||
|
||||
// The second argument to this method is read below in onActivityResult().
|
||||
startActivityForResult(fileChooser, REQUEST_ADD_DIRECTORY);
|
||||
}
|
||||
});
|
||||
|
@ -85,9 +87,9 @@ public final class GameGridActivity extends Activity
|
|||
/**
|
||||
* Callback from AddDirectoryActivity. Applies any changes necessary to the GameGridActivity.
|
||||
*
|
||||
* @param requestCode
|
||||
* @param resultCode
|
||||
* @param result
|
||||
* @param requestCode An int describing whether the Activity that is returning did so successfully.
|
||||
* @param resultCode An int describing what Activity is giving us this callback.
|
||||
* @param result The information the returning Activity is providing us.
|
||||
*/
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent result)
|
||||
|
@ -99,6 +101,7 @@ public final class GameGridActivity extends Activity
|
|||
// other activities might use this callback in the future (don't forget to change Javadoc!)
|
||||
if (requestCode == REQUEST_ADD_DIRECTORY)
|
||||
{
|
||||
// Get the path the user selected in AddDirectoryActivity.
|
||||
String path = result.getStringExtra(AddDirectoryActivity.KEY_CURRENT_PATH);
|
||||
|
||||
// Store this path as a preference.
|
||||
|
|
|
@ -26,12 +26,14 @@ public class FileAdapter extends RecyclerView.Adapter<FileViewHolder> implements
|
|||
* Initializes the dataset to be displayed, and associates the Adapter with the
|
||||
* Activity as an event listener.
|
||||
*
|
||||
* @param gameList
|
||||
* @param path A String containing the path to the directory to be shown by this Adapter.
|
||||
* @param listener An Activity that can respond to callbacks from this Adapter.
|
||||
*/
|
||||
public FileAdapter(String path, FileClickListener listener)
|
||||
{
|
||||
mFileList = generateFileList(new File(path));
|
||||
mListener = listener;
|
||||
mListener.updateSubtitle(path);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -107,12 +109,12 @@ public class FileAdapter extends RecyclerView.Adapter<FileViewHolder> implements
|
|||
* When a file is clicked, determine if it is a directory; if it is, show that new directory's
|
||||
* contents. If it is not, end the activity successfully.
|
||||
*
|
||||
* @param view
|
||||
* @param view The View representing the file the user clicked on.
|
||||
*/
|
||||
@Override
|
||||
public void onClick(final View view)
|
||||
{
|
||||
String path = (String) view.getTag();
|
||||
final String path = (String) view.getTag();
|
||||
|
||||
File clickedFile = new File(path);
|
||||
|
||||
|
@ -135,6 +137,7 @@ public class FileAdapter extends RecyclerView.Adapter<FileViewHolder> implements
|
|||
{
|
||||
mFileList = fileList;
|
||||
notifyDataSetChanged();
|
||||
mListener.updateSubtitle(path);
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
|
@ -148,7 +151,7 @@ public class FileAdapter extends RecyclerView.Adapter<FileViewHolder> implements
|
|||
/**
|
||||
* For a given directory, return a list of Files it contains.
|
||||
*
|
||||
* @param directory
|
||||
* @param directory A File representing the directory that should have its contents displayed.
|
||||
* @return
|
||||
*/
|
||||
private ArrayList<FileListItem> generateFileList(File directory)
|
||||
|
@ -176,26 +179,32 @@ public class FileAdapter extends RecyclerView.Adapter<FileViewHolder> implements
|
|||
return mPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mostly just allows the activity's menu option to kick us up a level in the directory
|
||||
* structure.
|
||||
*
|
||||
* @param path
|
||||
*/
|
||||
public void setPath(String path)
|
||||
{
|
||||
mPath = path;
|
||||
File parentDirectory = new File(path);
|
||||
File directory = new File(path);
|
||||
|
||||
mFileList = generateFileList(directory);
|
||||
notifyDataSetChanged();
|
||||
mListener.updateSubtitle(path);
|
||||
}
|
||||
|
||||
public void upOneLevel()
|
||||
{
|
||||
File currentDirectory = new File(mPath);
|
||||
File parentDirectory = currentDirectory.getParentFile();
|
||||
|
||||
mFileList = generateFileList(parentDirectory);
|
||||
notifyDataSetChanged();
|
||||
mListener.updateSubtitle(mPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for when the user wants to add the visible directory to the library.
|
||||
* Callback to the containing Activity.
|
||||
*/
|
||||
public interface FileClickListener
|
||||
{
|
||||
void finishSuccessfully();
|
||||
|
||||
void updateSubtitle(String path);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue