fix: reduced the frequency of the optimization prompt dialog and made it possible to disable it

This commit is contained in:
antonio 2023-06-24 12:12:14 +02:00
parent 200ce6555b
commit f147c762d5
3 changed files with 19 additions and 10 deletions

View file

@ -22,6 +22,7 @@ import androidx.media3.session.SessionToken;
import com.cappielloantonio.tempo.R;
import com.cappielloantonio.tempo.service.DownloaderService;
import com.cappielloantonio.tempo.service.MediaService;
import com.cappielloantonio.tempo.util.Preferences;
import com.cappielloantonio.tempo.util.UIUtil;
import com.google.android.gms.cast.framework.CastContext;
import com.google.android.material.elevation.SurfaceColors;
@ -45,11 +46,6 @@ public class BaseActivity extends AppCompatActivity {
super.onStart();
setNavigationBarColor();
initializeBrowser();
}
@Override
protected void onResume() {
super.onResume();
checkBatteryOptimization();
checkPermission();
}
@ -61,7 +57,7 @@ public class BaseActivity extends AppCompatActivity {
}
private void checkBatteryOptimization() {
if (detectBatteryOptimization()) {
if (detectBatteryOptimization() && Preferences.askForOptimization()) {
showBatteryOptimizationDialog();
}
}
@ -84,8 +80,9 @@ public class BaseActivity extends AppCompatActivity {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.activity_battery_optimizations_summary)
.setTitle(R.string.activity_battery_optimizations_title)
.setNegativeButton(R.string.activity_negative_button, null)
.setPositiveButton(R.string.activity_neutral_button, (dialog, id) -> openPowerSettings())
.setNeutralButton(R.string.battery_optimization_neutral_button, (dialog, id) -> Preferences.dontAskForOptimization())
.setNegativeButton(R.string.battery_optimization_negative_button, null)
.setPositiveButton(R.string.battery_optimization_positive_button, (dialog, id) -> openPowerSettings())
.show();
}

View file

@ -10,6 +10,7 @@ object Preferences {
private const val TOKEN = "token"
private const val SALT = "salt"
private const val LOW_SECURITY = "low_security"
private const val BATTERY_OPTIMIZATION = "battery_optimization"
private const val SERVER_ID = "server_id"
private const val PLAYBACK_SPEED = "playback_speed"
private const val SKIP_SILENCE = "skip_silence"
@ -100,6 +101,16 @@ object Preferences {
App.getInstance().preferences.edit().putString(SERVER_ID, serverId).apply()
}
@JvmStatic
fun askForOptimization(): Boolean? {
return App.getInstance().preferences.getBoolean(BATTERY_OPTIMIZATION, true)
}
@JvmStatic
fun dontAskForOptimization() {
App.getInstance().preferences.edit().putBoolean(BATTERY_OPTIMIZATION, false).apply()
}
@JvmStatic
fun getPlaybackSpeed(): Float {
return App.getInstance().preferences.getFloat(PLAYBACK_SPEED, 1f)

View file

@ -2,8 +2,9 @@
<string name="activity_battery_optimizations_summary">Please disable battery optimizations for media playback while the screen is off.</string>
<string name="activity_battery_optimizations_title">Battery Optimizations</string>
<string name="activity_info_offline_mode">Offline mode</string>
<string name="activity_negative_button">Ignore</string>
<string name="activity_neutral_button">Disable</string>
<string name="battery_optimization_negative_button">Ignore</string>
<string name="battery_optimization_positive_button">Disable</string>
<string name="battery_optimization_neutral_button">Don\'t ask again</string>
<string name="album_bottom_sheet_add_to_queue">Add to queue</string>
<string name="album_bottom_sheet_download_all">Download all</string>
<string name="album_bottom_sheet_go_to_artist">Go to artist</string>