1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-24 14:00:48 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WakeActivity.java
Ganblejs 82315b3281 Bangle.js: extending intents functionality (continuation)
Add support for (explicit) service intents.
Add support for setting flags for intents.
Add support for setting multiple categories for intents.
Add ability for Gadgetbridge to wake the Android device and leave the
 lock screen to start activities when it is sleeping. A new activity
 'WakeActivity' is used for this. (Must use 'trusted device' in Android)
Add dismiss-button to 'display over other apps' permission pop up.
Bangle.js can send "gadgetbridge" as package info to accomodate the
 different GB build variants/flavours.
Use only getContext() and not getApplicationContext() when executing
 the intents.
2022-09-19 21:52:40 +02:00

42 lines
1.7 KiB
Java

package nodomain.freeyourgadget.gadgetbridge.activities;
import android.app.Activity;
import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.WindowManager;
import androidx.annotation.Nullable;
public class WakeActivity extends Activity {
/*
By starting this activity via an intent sent e.g. by a Bangle.js the keyguard can be
dismissed automatically if the android device is in a trusted state (e.g. using a GB Device (Bangle.js) as a
trusted device via smart lock settings)
First try to start the activity you want to start with an intent and then start this activity with a second intent, both initiated on the Bangle.js, or other device.
*/
private void dismissKeyguard() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setTurnScreenOn(true);
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
keyguardManager.requestDismissKeyguard(this, null);
} else {
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(null);
// Unlock the android device if it's in a trusted state, otherwise request user action to unlock
dismissKeyguard();
// Go back to last activity, which can have been waiting to start under
// the lock screen, e.g. it was previously initiated via intent message from Bangle.js
this.onBackPressed();
}
}