Improve wake lock handling
This commit is contained in:
parent
01085498ad
commit
09fb10833d
|
@ -1,5 +1,6 @@
|
|||
1.5.8:
|
||||
- Resolve minor sound delay by preloading sounds
|
||||
- Increase session message maximum length from 160 to 4096
|
||||
|
||||
1.5.7:
|
||||
- Added preset widgets
|
||||
|
|
|
@ -6,7 +6,6 @@ import android.content.pm.PackageInfo;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.core.app.NavUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
@ -15,6 +14,8 @@ import android.widget.ImageView;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.app.NavUtils;
|
||||
|
||||
public class AboutActivity extends Activity {
|
||||
|
||||
public String license = "";
|
||||
|
|
|
@ -6,6 +6,7 @@ import android.content.Intent;
|
|||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
|
|
@ -3,10 +3,11 @@ package sh.ftp.rocketninelabs.meditationassistant;
|
|||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.WorkerThread;
|
||||
import android.util.Log;
|
||||
|
||||
import net.openid.appauth.AppAuthConfiguration;
|
||||
import net.openid.appauth.AuthState;
|
||||
|
|
|
@ -2,10 +2,11 @@ package sh.ftp.rocketninelabs.meditationassistant;
|
|||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.AnyThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
import net.openid.appauth.AuthState;
|
||||
import net.openid.appauth.AuthorizationException;
|
||||
|
|
|
@ -3,7 +3,6 @@ package sh.ftp.rocketninelabs.meditationassistant;
|
|||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
|
@ -19,6 +18,8 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
|
@ -8,9 +8,10 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.app.TaskStackBuilder;
|
||||
import android.util.Log;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
|
|
@ -1803,10 +1803,11 @@ public class MainActivity extends Activity implements OnShowcaseEventListener {
|
|||
|
||||
Log.d("MeditationAssistant", "ALARM RECEIVER INTEGRATED: Received broadcast - Full: " + (fullWakeUp ? "Full" : "Partial") + " - Start/interval: " + (wakeUpStart ? "Start" : (wakeUpInterval ? "Interval" : "Neither")));
|
||||
|
||||
String newWakeLockID = getMeditationAssistant().acquireWakeLock(fullWakeUp);
|
||||
if (wakeLockID != null) {
|
||||
getMeditationAssistant().releaseWakeLock(wakeLockID);
|
||||
}
|
||||
wakeLockID = getMeditationAssistant().acquireWakeLock(fullWakeUp);
|
||||
wakeLockID = newWakeLockID;
|
||||
|
||||
handler.removeCallbacks(clearWakeLock);
|
||||
handler.postDelayed(clearWakeLock, 7000);
|
||||
|
|
|
@ -28,8 +28,6 @@ import android.os.Looper;
|
|||
import android.os.Vibrator;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.Settings;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
|
@ -40,6 +38,9 @@ import android.widget.EditText;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
import com.nononsenseapps.filepicker.FilePickerActivity;
|
||||
import com.nononsenseapps.filepicker.Utils;
|
||||
import com.opencsv.CSVReader;
|
||||
|
@ -2454,15 +2455,15 @@ public class MeditationAssistant extends Application {
|
|||
return BuildConfig.VERSION_CODE;
|
||||
}
|
||||
|
||||
public String acquireWakeLock(Boolean fullWakeUp) {
|
||||
public synchronized String acquireWakeLock(Boolean fullWakeUp) {
|
||||
return wakeLocker.acquire(getApplicationContext(), fullWakeUp);
|
||||
}
|
||||
|
||||
public void releaseWakeLock(String wakeLockID) {
|
||||
public synchronized void releaseWakeLock(String wakeLockID) {
|
||||
wakeLocker.release(wakeLockID);
|
||||
}
|
||||
|
||||
public void releaseAllWakeLocks() {
|
||||
public synchronized void releaseAllWakeLocks() {
|
||||
wakeLocker.releaseAll();
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,6 @@ package sh.ftp.rocketninelabs.meditationassistant;
|
|||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.viewpager.widget.PagerTabStrip;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.util.SparseArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
|
@ -19,6 +12,14 @@ import android.widget.ArrayAdapter;
|
|||
import android.widget.TabHost;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
import androidx.viewpager.widget.PagerTabStrip;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
|
|
|
@ -4,12 +4,13 @@ import android.app.AlertDialog;
|
|||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.ListFragment;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ListView;
|
||||
|
||||
import androidx.fragment.app.ListFragment;
|
||||
|
||||
public class SessionsFragment extends ListFragment {
|
||||
public MeditationAssistant ma = null;
|
||||
AlertDialog sessionDialog = null;
|
||||
|
|
|
@ -25,14 +25,15 @@ import android.preference.PreferenceActivity;
|
|||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.RingtonePreference;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.nononsenseapps.filepicker.FilePickerActivity;
|
||||
import com.nononsenseapps.filepicker.Utils;
|
||||
|
||||
|
|
|
@ -3,13 +3,14 @@ package sh.ftp.rocketninelabs.meditationassistant;
|
|||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
|
@ -5,15 +5,19 @@ import android.content.Context;
|
|||
import android.os.PowerManager;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
class WakeLocker {
|
||||
private List<String> wakeLocks = new CopyOnWriteArrayList<>();
|
||||
private List<String> wakeLocks = new ArrayList<>();
|
||||
|
||||
private PowerManager.WakeLock wakeLockScreenOff;
|
||||
private PowerManager.WakeLock wakeLockScreenOn;
|
||||
|
||||
void printLockStatus() {
|
||||
Log.d("MeditationAssistant", "WAKELOCKER: ScreenOff: " + (wakeLockScreenOff.isHeld() ? "HELD" : "RELEASED") + " - ScreenOn: " + (wakeLockScreenOn.isHeld() ? "HELD" : "RELEASED"));
|
||||
}
|
||||
|
||||
@SuppressLint({"WakelockTimeout"})
|
||||
String acquire(Context ctx, Boolean turnScreenOn) {
|
||||
String wakeLockID = String.valueOf(System.currentTimeMillis());
|
||||
|
@ -41,6 +45,8 @@ class WakeLocker {
|
|||
}
|
||||
}
|
||||
|
||||
printLockStatus();
|
||||
|
||||
return wakeLockID;
|
||||
}
|
||||
|
||||
|
@ -56,6 +62,8 @@ class WakeLocker {
|
|||
wakeLockScreenOn.release();
|
||||
}
|
||||
}
|
||||
|
||||
printLockStatus();
|
||||
}
|
||||
|
||||
void releaseAll() {
|
||||
|
|
Loading…
Reference in New Issue