mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 18:03:33 +00:00
clean: explain user why to disable manufacturer optimizations and troubleshooting steps
This commit is contained in:
parent
2046872d79
commit
992b16cc1d
4 changed files with 88 additions and 20 deletions
|
|
@ -2,15 +2,12 @@ package com.cappielloantonio.tempo.ui.activity.base;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.provider.Settings;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
@ -19,9 +16,9 @@ import androidx.media3.exoplayer.offline.DownloadService;
|
||||||
import androidx.media3.session.MediaBrowser;
|
import androidx.media3.session.MediaBrowser;
|
||||||
import androidx.media3.session.SessionToken;
|
import androidx.media3.session.SessionToken;
|
||||||
|
|
||||||
import com.cappielloantonio.tempo.R;
|
|
||||||
import com.cappielloantonio.tempo.service.DownloaderService;
|
import com.cappielloantonio.tempo.service.DownloaderService;
|
||||||
import com.cappielloantonio.tempo.service.MediaService;
|
import com.cappielloantonio.tempo.service.MediaService;
|
||||||
|
import com.cappielloantonio.tempo.ui.dialog.BatteryOptimizationDialog;
|
||||||
import com.cappielloantonio.tempo.util.Preferences;
|
import com.cappielloantonio.tempo.util.Preferences;
|
||||||
import com.cappielloantonio.tempo.util.UIUtil;
|
import com.cappielloantonio.tempo.util.UIUtil;
|
||||||
import com.google.android.gms.cast.framework.CastContext;
|
import com.google.android.gms.cast.framework.CastContext;
|
||||||
|
|
@ -39,6 +36,8 @@ public class BaseActivity extends AppCompatActivity {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
initializeCastContext();
|
initializeCastContext();
|
||||||
initializeDownloader();
|
initializeDownloader();
|
||||||
|
checkBatteryOptimization();
|
||||||
|
checkPermission();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -46,8 +45,6 @@ public class BaseActivity extends AppCompatActivity {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
setNavigationBarColor();
|
setNavigationBarColor();
|
||||||
initializeBrowser();
|
initializeBrowser();
|
||||||
checkBatteryOptimization();
|
|
||||||
checkPermission();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -77,20 +74,8 @@ public class BaseActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showBatteryOptimizationDialog() {
|
private void showBatteryOptimizationDialog() {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
BatteryOptimizationDialog dialog = new BatteryOptimizationDialog();
|
||||||
builder.setMessage(R.string.activity_battery_optimizations_summary)
|
dialog.show(getSupportFragmentManager(), null);
|
||||||
.setTitle(R.string.activity_battery_optimizations_title)
|
|
||||||
.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();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void openPowerSettings() {
|
|
||||||
Intent intent = new Intent();
|
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeBrowser() {
|
private void initializeBrowser() {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.cappielloantonio.tempo.ui.dialog;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.OptIn;
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.media3.common.util.UnstableApi;
|
||||||
|
|
||||||
|
import com.cappielloantonio.tempo.R;
|
||||||
|
import com.cappielloantonio.tempo.databinding.DialogBatteryOptimizationBinding;
|
||||||
|
import com.cappielloantonio.tempo.util.Preferences;
|
||||||
|
|
||||||
|
@OptIn(markerClass = UnstableApi.class)
|
||||||
|
public class BatteryOptimizationDialog extends DialogFragment {
|
||||||
|
private static final String TAG = "BatteryOptimizationDialog";
|
||||||
|
|
||||||
|
private DialogBatteryOptimizationBinding bind;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
|
bind = DialogBatteryOptimizationBinding.inflate(getLayoutInflater());
|
||||||
|
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
|
|
||||||
|
builder.setView(bind.getRoot())
|
||||||
|
.setTitle(R.string.activity_battery_optimizations_title)
|
||||||
|
.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());
|
||||||
|
|
||||||
|
AlertDialog popup = builder.create();
|
||||||
|
|
||||||
|
popup.setCancelable(false);
|
||||||
|
popup.setCanceledOnTouchOutside(false);
|
||||||
|
|
||||||
|
return popup;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
super.onDestroyView();
|
||||||
|
bind = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openPowerSettings() {
|
||||||
|
Intent intent = new Intent();
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
25
app/src/main/res/layout/dialog_battery_optimization.xml
Normal file
25
app/src/main/res/layout/dialog_battery_optimization.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/battery_optimization_primary"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:layout_marginBottom="4dp"
|
||||||
|
android:text="@string/activity_battery_optimizations_summary" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/battery_optimization_secondary"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:autoLink="web"
|
||||||
|
android:text="@string/activity_battery_optimizations_conclusion" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="activity_battery_optimizations_summary">Please disable battery optimizations for media playback while the screen is off.</string>
|
<string name="activity_battery_optimizations_summary">Please disable battery optimizations for media playback while the screen is off.</string>
|
||||||
|
<string name="activity_battery_optimizations_conclusion">If in trouble visit https://dontkillmyapp.com. It provides detailed instructions on how to disable any power-saving features that may affect app\'s performance.</string>
|
||||||
<string name="activity_battery_optimizations_title">Battery Optimizations</string>
|
<string name="activity_battery_optimizations_title">Battery Optimizations</string>
|
||||||
<string name="activity_info_offline_mode">Offline mode</string>
|
<string name="activity_info_offline_mode">Offline mode</string>
|
||||||
<string name="battery_optimization_negative_button">Ignore</string>
|
<string name="battery_optimization_negative_button">Ignore</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue