NewPipe-app-android/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment....

74 lines
2.6 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 android.view.View;
import androidx.annotation.Nullable;
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);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
2020-01-28 15:44:35 +01:00
//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
2020-01-28 16:24:24 +01:00
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
s.equals(getString(R.string.minimize_on_exit_key))){
2020-01-28 15:44:35 +01:00
String newSetting = sharedPreferences.getString(s,null);
2020-01-28 16:24:24 +01:00
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, new View.OnClickListener() {
@Override
public void onClick(View view) {
PermissionHelper.checkSystemAlertWindowPermission(getContext());
}
})
.show();
2020-01-28 15:44:35 +01:00
}
}
}
2020-01-28 16:24:24 +01:00
};
}
@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);
}
}