From ab3fd1560353ac288a9297c7fd183cc6b015f343 Mon Sep 17 00:00:00 2001 From: asolovay Date: Thu, 7 Aug 2025 14:07:40 -0700 Subject: [PATCH 1/3] Adding code snippets for wake locks doc Starting with the code snippets to add and release a wake lock, we can add other snippets later. Used by docs in: https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/ --- .../snippets/backgroundwork/MyException.java | 13 ++++++ .../backgroundwork/WakeLockSnippetsJava.java | 38 ++++++++++++++++ .../backgroundwork/WakeLockSnippetsKotlin.kt | 45 +++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 misc/src/main/java/com/example/snippets/backgroundwork/MyException.java create mode 100644 misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java create mode 100644 misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java b/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java new file mode 100644 index 00000000..04d08bfe --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java @@ -0,0 +1,13 @@ +package com.example.snippets.backgroundwork; + +/** + * Placeholder exception used by wake lock docs. + * + * Existing wake lock code snippets inclde a method that throws "MyException", I need to define + * it for the code snippets to use. + */ +public class MyException extends RuntimeException { + public MyException(String message) { + super(message); + } +} diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java new file mode 100644 index 00000000..05e426a3 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java @@ -0,0 +1,38 @@ +package com.example.snippets.backgroundwork; + +import android.app.Activity; +import android.os.Bundle; +import android.os.PowerManager; + +import androidx.annotation.Nullable; + +public class WakeLockSnippetsJava extends Activity { + + PowerManager.WakeLock wakeLock; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + + // [START android_backgroundwork_wakelock_create_java] + PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); + PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); + wakeLock.acquire(); + // [END android_backgroundwork_wakelock_create_kotlin] + + super.onCreate(savedInstanceState); + } + + // [START android_backgroundwork_wakelock_release_java] + void doSomethingAndRelease() throws MyException { + try { + wakeLock.acquire(); + doTheWork(); + } finally { + wakeLock.release(); + } + } + // [END android_backgroundwork_wakelock_release_java] + + private void doTheWork() { + } +} diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt new file mode 100644 index 00000000..fb929f29 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt @@ -0,0 +1,45 @@ +package com.example.snippets.backgroundwork + +import android.app.Activity +import android.content.Context +import android.os.Bundle +import android.os.PowerManager + +// Snippets for doc page go here +class WakeLockSnippetsKotlin : Activity() { + + // [START android_backgroundwork_wakelock_create_kotlin] + val wakeLock: PowerManager.WakeLock = + (getSystemService(Context.POWER_SERVICE) as PowerManager).run { + newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { + acquire() + } + + } + // [END android_backgroundwork_wakelock_create_kotlin] + + override fun onCreate(savedInstanceState: Bundle?) { + + + super.onCreate(savedInstanceState) + } + + // [START android_backgroundwork_wakelock_release_kotlin] + @Throws(MyException::class) + fun doSomethingAndRelease() { + wakeLock.apply { + try { + acquire() + doTheWork() + } finally { + release() + } + } + } + // [END android_backgroundwork_wakelock_release_kotlin] + + private fun doTheWork() { + + } + +} From 5d53f2eaed43cc57483f30baf38b83fb523de429 Mon Sep 17 00:00:00 2001 From: asolovay <149095394+asolovay@users.noreply.github.com> Date: Thu, 7 Aug 2025 21:12:05 +0000 Subject: [PATCH 2/3] Apply Spotless --- .../backgroundwork/WakeLockSnippetsKotlin.kt | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt index fb929f29..18ead161 100644 --- a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.snippets.backgroundwork import android.app.Activity @@ -14,13 +30,11 @@ class WakeLockSnippetsKotlin : Activity() { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { acquire() } - } // [END android_backgroundwork_wakelock_create_kotlin] override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) } @@ -39,7 +53,5 @@ class WakeLockSnippetsKotlin : Activity() { // [END android_backgroundwork_wakelock_release_kotlin] private fun doTheWork() { - } - } From c4aa9a84571d95587fd5b12e2ece3a7f5c0e1906 Mon Sep 17 00:00:00 2001 From: asolovay Date: Fri, 8 Aug 2025 16:19:28 -0700 Subject: [PATCH 3/3] Fixing region tags in Java file One of the region tags was misnamed (had the _kotlin suffix instead of _java). --- .../example/snippets/backgroundwork/WakeLockSnippetsJava.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java index 05e426a3..f3a5e79b 100644 --- a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java @@ -17,7 +17,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); wakeLock.acquire(); - // [END android_backgroundwork_wakelock_create_kotlin] + // [END android_backgroundwork_wakelock_create_java] super.onCreate(savedInstanceState); }