Added option to set a custom start folder.
This commit is contained in:
parent
ada182a569
commit
bbaa526c61
8 changed files with 77 additions and 21 deletions
|
|
@ -109,7 +109,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
|||
break;
|
||||
case FOLDERS:
|
||||
navigationView.setCheckedItem(R.id.nav_folders);
|
||||
setCurrentFragment(FolderFragment.newInstance());
|
||||
setCurrentFragment(FolderFragment.newInstance(this));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,8 +88,8 @@ public class FolderFragment extends AbsMainActivityFragment implements MainActiv
|
|||
public FolderFragment() {
|
||||
}
|
||||
|
||||
public static FolderFragment newInstance() {
|
||||
return newInstance(getDefaultStartFolder());
|
||||
public static FolderFragment newInstance(Context context) {
|
||||
return newInstance(PreferenceUtil.getInstance(context).getStartDirectory());
|
||||
}
|
||||
|
||||
public static FolderFragment newInstance(File directory) {
|
||||
|
|
@ -243,8 +243,8 @@ public class FolderFragment extends AbsMainActivityFragment implements MainActiv
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_go_to_music_folder:
|
||||
setCrumb(new BreadCrumbLayout.Crumb(tryGetCanonicalFile(getDefaultStartFolder())), true);
|
||||
case R.id.action_go_to_start_directory:
|
||||
setCrumb(new BreadCrumbLayout.Crumb(tryGetCanonicalFile(PreferenceUtil.getInstance(getActivity()).getStartDirectory())), true);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
@ -255,7 +255,7 @@ public class FolderFragment extends AbsMainActivityFragment implements MainActiv
|
|||
setCrumb(crumb, true);
|
||||
}
|
||||
|
||||
public static File getDefaultStartFolder() {
|
||||
public static File getDefaultStartDirectory() {
|
||||
File externalStorageDir = Environment.getExternalStorageDirectory();
|
||||
File musicFolder = new File(externalStorageDir, "Music");
|
||||
File startFolder;
|
||||
|
|
@ -355,18 +355,36 @@ public class FolderFragment extends AbsMainActivityFragment implements MainActiv
|
|||
@Override
|
||||
public void onFileMenuClicked(final File file, View view) {
|
||||
PopupMenu popupMenu = new PopupMenu(getActivity(), view);
|
||||
popupMenu.inflate(R.menu.menu_item_directory);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_scan:
|
||||
scan(file);
|
||||
return true;
|
||||
if (file.isDirectory()) {
|
||||
popupMenu.inflate(R.menu.menu_item_directory);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_set_as_start_directory:
|
||||
PreferenceUtil.getInstance(getActivity()).setStartDirectory(file);
|
||||
return true;
|
||||
case R.id.action_scan:
|
||||
scan(file);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
popupMenu.inflate(R.menu.menu_item_file);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_scan:
|
||||
scan(file);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
popupMenu.show();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ import android.support.annotation.StyleRes;
|
|||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.SortOrder;
|
||||
import com.kabouzeid.gramophone.ui.fragments.FolderFragment;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public final class PreferenceUtil {
|
||||
public static final String GENERAL_THEME = "general_theme";
|
||||
|
|
@ -57,6 +60,8 @@ public final class PreferenceUtil {
|
|||
|
||||
public static final String AUTO_DOWNLOAD_IMAGES_POLICY = "auto_download_images_policy";
|
||||
|
||||
public static final String START_DIRECTORY = "start_directory";
|
||||
|
||||
private static PreferenceUtil sInstance;
|
||||
|
||||
private final SharedPreferences mPreferences;
|
||||
|
|
@ -310,4 +315,14 @@ public final class PreferenceUtil {
|
|||
public final String autoDownloadImagesPolicy() {
|
||||
return mPreferences.getString(AUTO_DOWNLOAD_IMAGES_POLICY, "only_wifi");
|
||||
}
|
||||
|
||||
public final File getStartDirectory() {
|
||||
return new File(mPreferences.getString(START_DIRECTORY, FolderFragment.getDefaultStartDirectory().getPath()));
|
||||
}
|
||||
|
||||
public void setStartDirectory(File file) {
|
||||
final SharedPreferences.Editor editor = mPreferences.edit();
|
||||
editor.putString(START_DIRECTORY, file.getPath());
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
10
app/src/main/res/drawable/ic_folder_special_white_24dp.xml
Normal file
10
app/src/main/res/drawable/ic_folder_special_white_24dp.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24.0"
|
||||
android:viewportWidth="24.0"
|
||||
android:width="24dp">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M20,6h-8l-2,-2L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM17.94,17L15,15.28 12.06,17l0.78,-3.33 -2.59,-2.24 3.41,-0.29L15,8l1.34,3.14 3.41,0.29 -2.59,2.24 0.78,3.33z" />
|
||||
</vector>
|
||||
|
|
@ -3,9 +3,9 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_go_to_music_folder"
|
||||
android:icon="@drawable/ic_music_note_white_24dp"
|
||||
android:title="@string/action_go_to_music_folder"
|
||||
android:id="@+id/action_go_to_start_directory"
|
||||
android:icon="@drawable/ic_folder_special_white_24dp"
|
||||
android:title="@string/action_go_to_start_directory"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_set_as_start_directory"
|
||||
android:title="@string/action_set_as_start_directory"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:title="@string/action_scan"
|
||||
|
|
|
|||
8
app/src/main/res/menu/menu_item_file.xml
Normal file
8
app/src/main/res/menu/menu_item_file.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_scan"
|
||||
android:title="@string/action_scan"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
<string name="action_rename">Rename</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_scan">Scan</string>
|
||||
<string name="action_set_as_start_directory">Set as start directory</string>
|
||||
<string name="albums">Albums</string>
|
||||
<string name="artists">Artists</string>
|
||||
<string name="songs">Songs</string>
|
||||
|
|
@ -97,7 +98,7 @@
|
|||
<string name="action_shuffle_artist">Shuffle artist</string>
|
||||
<string name="action_shuffle_playlist">Shuffle playlist</string>
|
||||
<string name="action_clear_playing_queue">Clear playing queue</string>
|
||||
<string name="action_go_to_music_folder">Go to music folder</string>
|
||||
<string name="action_go_to_start_directory">Go to start directory</string>
|
||||
<string name="last_opened">Last opened</string>
|
||||
<string name="light_theme_name">Light</string>
|
||||
<string name="dark_theme_name">Dark</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue