2017-09-03 06:04:18 +00:00
|
|
|
package org.schabi.newpipe.settings;
|
|
|
|
|
|
|
|
import android.app.Activity;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.annotation.Nullable;
|
|
|
|
import android.support.v7.preference.Preference;
|
|
|
|
import android.util.Log;
|
|
|
|
|
2018-03-08 13:39:24 +00:00
|
|
|
import com.nononsenseapps.filepicker.Utils;
|
|
|
|
|
2017-09-03 06:04:18 +00:00
|
|
|
import org.schabi.newpipe.R;
|
2017-09-18 12:29:43 +00:00
|
|
|
import org.schabi.newpipe.util.FilePickerActivityHelper;
|
2017-09-03 06:04:18 +00:00
|
|
|
|
|
|
|
public class DownloadSettingsFragment extends BasePreferenceFragment {
|
|
|
|
private static final int REQUEST_DOWNLOAD_PATH = 0x1235;
|
|
|
|
private static final int REQUEST_DOWNLOAD_AUDIO_PATH = 0x1236;
|
|
|
|
|
|
|
|
private String DOWNLOAD_PATH_PREFERENCE;
|
|
|
|
private String DOWNLOAD_PATH_AUDIO_PREFERENCE;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
|
|
initKeys();
|
|
|
|
updatePreferencesSummary();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
|
|
addPreferencesFromResource(R.xml.download_settings);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initKeys() {
|
|
|
|
DOWNLOAD_PATH_PREFERENCE = getString(R.string.download_path_key);
|
|
|
|
DOWNLOAD_PATH_AUDIO_PREFERENCE = getString(R.string.download_path_audio_key);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void updatePreferencesSummary() {
|
|
|
|
findPreference(DOWNLOAD_PATH_PREFERENCE).setSummary(defaultPreferences.getString(DOWNLOAD_PATH_PREFERENCE, getString(R.string.download_path_summary)));
|
|
|
|
findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE).setSummary(defaultPreferences.getString(DOWNLOAD_PATH_AUDIO_PREFERENCE, getString(R.string.download_path_audio_summary)));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean onPreferenceTreeClick(Preference preference) {
|
|
|
|
if (DEBUG) {
|
|
|
|
Log.d(TAG, "onPreferenceTreeClick() called with: preference = [" + preference + "]");
|
|
|
|
}
|
|
|
|
|
2018-01-28 18:02:34 +00:00
|
|
|
if (preference.getKey().equals(DOWNLOAD_PATH_PREFERENCE)
|
|
|
|
|| preference.getKey().equals(DOWNLOAD_PATH_AUDIO_PREFERENCE)) {
|
2017-09-18 12:29:43 +00:00
|
|
|
Intent i = new Intent(getActivity(), FilePickerActivityHelper.class)
|
|
|
|
.putExtra(FilePickerActivityHelper.EXTRA_ALLOW_MULTIPLE, false)
|
|
|
|
.putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, true)
|
|
|
|
.putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_DIR);
|
2017-09-03 06:04:18 +00:00
|
|
|
if (preference.getKey().equals(DOWNLOAD_PATH_PREFERENCE)) {
|
|
|
|
startActivityForResult(i, REQUEST_DOWNLOAD_PATH);
|
|
|
|
} else if (preference.getKey().equals(DOWNLOAD_PATH_AUDIO_PREFERENCE)) {
|
|
|
|
startActivityForResult(i, REQUEST_DOWNLOAD_AUDIO_PATH);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return super.onPreferenceTreeClick(preference);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
if (DEBUG) {
|
|
|
|
Log.d(TAG, "onActivityResult() called with: requestCode = [" + requestCode + "], resultCode = [" + resultCode + "], data = [" + data + "]");
|
|
|
|
}
|
|
|
|
|
2018-03-08 13:39:24 +00:00
|
|
|
if ((requestCode == REQUEST_DOWNLOAD_PATH || requestCode == REQUEST_DOWNLOAD_AUDIO_PATH)
|
|
|
|
&& resultCode == Activity.RESULT_OK && data.getData() != null) {
|
2017-09-03 06:04:18 +00:00
|
|
|
String key = getString(requestCode == REQUEST_DOWNLOAD_PATH ? R.string.download_path_key : R.string.download_path_audio_key);
|
2018-03-08 13:39:24 +00:00
|
|
|
String path = Utils.getFileForUri(data.getData()).getAbsolutePath();
|
|
|
|
|
2017-09-03 06:04:18 +00:00
|
|
|
defaultPreferences.edit().putString(key, path).apply();
|
|
|
|
updatePreferencesSummary();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|