1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-07-04 02:53:31 +00:00
NewPipe/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java

75 lines
2.8 KiB
Java
Raw Normal View History

package org.schabi.newpipe.settings;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import androidx.annotation.Nullable;
import androidx.preference.ListPreference;
import com.google.android.material.snackbar.Snackbar;
import org.schabi.newpipe.R;
import org.schabi.newpipe.util.PermissionHelper;
public class VideoAudioSettingsFragment extends BasePreferenceFragment {
private SharedPreferences.OnSharedPreferenceChangeListener listener;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] durationsDescriptions = getResources().getStringArray(R.array.seek_duration_description);
String[] durationsValues = getResources().getStringArray(R.array.seek_duration_value);
int currentDurationValue;
for (int i = 0; i < durationsDescriptions.length; i++) {
currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000;
durationsDescriptions[i] = String.format(durationsDescriptions[i], currentDurationValue);
}
ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key));
durations.setEntries(durationsDescriptions);
2020-02-01 12:41:03 +00:00
listener = (sharedPreferences, s) -> {
// on M and above, if user chooses to minimise to popup player on exit and the app doesn't have
// display over other apps permission, show a snackbar to let the user give permission
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
s.equals(getString(R.string.minimize_on_exit_key))) {
String newSetting = sharedPreferences.getString(s, null);
if (newSetting != null
&& newSetting.equals(getString(R.string.minimize_on_exit_popup_key))
&& !Settings.canDrawOverlays(getContext())) {
Snackbar.make(getListView(), R.string.permission_display_over_apps, Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.settings,
view -> PermissionHelper.checkSystemAlertWindowPermission(getContext()))
.show();
}
}
};
}
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.video_audio_settings);
}
@Override
public void onResume() {
super.onResume();
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(listener);
}
@Override
public void onPause() {
super.onPause();
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(listener);
}
}