diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/src/com/android/intentresolver/ChooserPinMigrationReceiver.kt | 55 | ||||
| -rw-r--r-- | java/tests/src/com/android/intentresolver/ChooserPinMigrationReceiverTest.kt | 78 |
2 files changed, 0 insertions, 133 deletions
diff --git a/java/src/com/android/intentresolver/ChooserPinMigrationReceiver.kt b/java/src/com/android/intentresolver/ChooserPinMigrationReceiver.kt deleted file mode 100644 index a3ba2192..00000000 --- a/java/src/com/android/intentresolver/ChooserPinMigrationReceiver.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2023 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 - * - * http://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.android.intentresolver - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import android.content.SharedPreferences -import android.util.Log - -/** - * Broadcast receiver for receiving Chooser pin data from the legacy chooser. - * - * Unions the legacy pins with any existing pins. This receiver is protected by the ADD_CHOOSER_PINS - * permission. The receiver is required to have the RECEIVE_CHOOSER_PIN_MIGRATION to receive the - * broadcast. - */ -class ChooserPinMigrationReceiver( - private val pinnedSharedPrefsProvider: (Context) -> SharedPreferences = - { context -> ChooserActivity.getPinnedSharedPrefs(context) }, -) : BroadcastReceiver() { - - override fun onReceive(context: Context, intent: Intent) { - val bundle = intent.extras ?: return - Log.i(TAG, "Starting migration") - - val prefsEditor = pinnedSharedPrefsProvider.invoke(context).edit() - bundle.keySet().forEach { key -> - if(bundle.getBoolean(key)) { - prefsEditor.putBoolean(key, true) - } - } - prefsEditor.apply() - - Log.i(TAG, "Migration complete") - } - - companion object { - private const val TAG = "ChooserPinMigrationReceiver" - } -}
\ No newline at end of file diff --git a/java/tests/src/com/android/intentresolver/ChooserPinMigrationReceiverTest.kt b/java/tests/src/com/android/intentresolver/ChooserPinMigrationReceiverTest.kt deleted file mode 100644 index 1daee137..00000000 --- a/java/tests/src/com/android/intentresolver/ChooserPinMigrationReceiverTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2023 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 - * - * http://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.android.intentresolver - -import android.content.Context -import android.content.Intent -import android.content.SharedPreferences -import androidx.test.ext.junit.runners.AndroidJUnit4 -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mock -import org.mockito.Mockito.verify -import org.mockito.Mockito.verifyNoMoreInteractions -import org.mockito.MockitoAnnotations - -@RunWith(AndroidJUnit4::class) -class ChooserPinMigrationReceiverTest { - - private lateinit var chooserPinMigrationReceiver: ChooserPinMigrationReceiver - - @Mock private lateinit var mockContext: Context - @Mock private lateinit var mockSharedPreferences: SharedPreferences - @Mock private lateinit var mockSharedPreferencesEditor: SharedPreferences.Editor - - @Before - fun setup() { - MockitoAnnotations.initMocks(this) - - whenever(mockSharedPreferences.edit()).thenReturn(mockSharedPreferencesEditor) - - chooserPinMigrationReceiver = ChooserPinMigrationReceiver { mockSharedPreferences } - } - - @Test - fun onReceive_addsReceivedPins() { - // Arrange - val intent = Intent().apply { - putExtra("TestPackage/TestClass", true) - } - - // Act - chooserPinMigrationReceiver.onReceive(mockContext, intent) - - // Assert - verify(mockSharedPreferencesEditor).putBoolean(eq("TestPackage/TestClass"), eq(true)) - verify(mockSharedPreferencesEditor).apply() - } - - @Test - fun onReceive_ignoresUnpinnedEntries() { - // Arrange - val intent = Intent().apply { - putExtra("TestPackage/TestClass", false) - } - - // Act - chooserPinMigrationReceiver.onReceive(mockContext, intent) - - // Assert - verify(mockSharedPreferencesEditor).apply() - verifyNoMoreInteractions(mockSharedPreferencesEditor) - } -}
\ No newline at end of file |