diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java index ef14ab2..b1533ec 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java @@ -48,15 +48,7 @@ public class MainActivity extends AppCompatThemeActivity { View progressEmpty; View progressText; - BroadcastReceiver receiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String a = intent.getAction(); - if (a.equals(Intent.ACTION_SCREEN_OFF)) { - moveTaskToBack(true); - } - } - }; + ScreenReceiver receiver; public static void startActivity(Context context) { Intent i = new Intent(context, MainActivity.class); @@ -74,8 +66,8 @@ public class MainActivity extends AppCompatThemeActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | - WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); + showLocked(getWindow()); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); setContentView(R.layout.activity_main); @@ -106,10 +98,7 @@ public class MainActivity extends AppCompatThemeActivity { RecordingService.startIfPending(this); - IntentFilter ff = new IntentFilter(); - ff.addAction(Intent.ACTION_SCREEN_OFF); - ff.addAction(Intent.ACTION_SCREEN_ON); - registerReceiver(receiver, ff); + receiver = new ScreenReceiver(this); } void checkPending() { @@ -277,7 +266,7 @@ public class MainActivity extends AppCompatThemeActivity { protected void onDestroy() { super.onDestroy(); recordings.close(); - unregisterReceiver(receiver); + receiver.close(); } void updateHeader() { diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index 08373cf..7f91ad4 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -203,8 +203,8 @@ public class RecordingActivity extends AppCompatThemeActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + showLocked(getWindow()); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | - WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); setContentView(R.layout.activity_recording); @@ -224,13 +224,9 @@ public class RecordingActivity extends AppCompatThemeActivity { samplesUpdateStereo = samplesUpdate * Sound.getChannels(this); receiver = new RecordingReceiver(this); - IntentFilter filter = new IntentFilter(); - filter.addAction(PAUSE_BUTTON); - filter.addAction(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED); - filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); - filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); - filter.addAction(ACTION_FINISH_RECORDING); - registerReceiver(receiver, filter); + receiver.filter.addAction(PAUSE_BUTTON); + receiver.filter.addAction(ACTION_FINISH_RECORDING); + registerReceiver(receiver, receiver.filter); edit(false, false); diff --git a/app/src/main/java/com/github/axet/audiorecorder/services/BluetoothReceiver.java b/app/src/main/java/com/github/axet/audiorecorder/services/BluetoothReceiver.java index 5c3b5ab..0b15c61 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/services/BluetoothReceiver.java +++ b/app/src/main/java/com/github/axet/audiorecorder/services/BluetoothReceiver.java @@ -4,6 +4,7 @@ import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.SharedPreferences; import android.media.AudioManager; import android.os.Handler; @@ -26,6 +27,7 @@ public class BluetoothReceiver extends BroadcastReceiver { public boolean pausedByBluetooth = false; public boolean errors = false; // show errors public boolean connecting = false; + public IntentFilter filter = new IntentFilter(); public Runnable connected = new Runnable() { @Override @@ -56,6 +58,9 @@ public class BluetoothReceiver extends BroadcastReceiver { public BluetoothReceiver(Context context) { this.context = context; + filter.addAction(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED); + filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); + filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); } public void onConnected() {