mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2026-05-05 14:43:06 -04:00
Convert ImportExportActivity to Kotlin
Refactored `ImportExportActivity` and its corresponding test class from Java to Kotlin. The new implementation uses modern Kotlin idioms and syntax while preserving the original functionality.
This commit is contained in:
@@ -1,69 +1,77 @@
|
||||
package protect.card_locker;
|
||||
package protect.card_locker
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.content.pm.ResolveInfo
|
||||
import android.view.View
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.Robolectric
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.RuntimeEnvironment
|
||||
import org.robolectric.Shadows.shadowOf
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.view.View;
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
class ImportExportActivityTest {
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class ImportExportActivityTest {
|
||||
private void registerIntentHandler(String handler) {
|
||||
private fun registerIntentHandler(handler: String) {
|
||||
// Add something that will 'handle' the given intent type
|
||||
PackageManager packageManager = RuntimeEnvironment.application.getPackageManager();
|
||||
val packageManager = RuntimeEnvironment.application.packageManager
|
||||
|
||||
ResolveInfo info = new ResolveInfo();
|
||||
info.isDefault = true;
|
||||
|
||||
ApplicationInfo applicationInfo = new ApplicationInfo();
|
||||
applicationInfo.packageName = "does.not.matter";
|
||||
info.activityInfo = new ActivityInfo();
|
||||
info.activityInfo.applicationInfo = applicationInfo;
|
||||
info.activityInfo.name = "DoesNotMatter";
|
||||
info.activityInfo.exported = true;
|
||||
|
||||
Intent intent = new Intent(handler);
|
||||
|
||||
if (handler.equals(Intent.ACTION_GET_CONTENT)) {
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setType("*/*");
|
||||
val info = ResolveInfo().apply {
|
||||
isDefault = true
|
||||
activityInfo = ActivityInfo().apply {
|
||||
applicationInfo = ApplicationInfo().apply {
|
||||
packageName = "does.not.matter"
|
||||
}
|
||||
name = "DoesNotMatter"
|
||||
exported = true
|
||||
}
|
||||
}
|
||||
|
||||
shadowOf(packageManager).addResolveInfoForIntent(intent, info);
|
||||
val intent = Intent(handler)
|
||||
|
||||
if (handler == Intent.ACTION_GET_CONTENT) {
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
||||
intent.type = "*/*"
|
||||
}
|
||||
|
||||
shadowOf(packageManager).addResolveInfoForIntent(intent, info)
|
||||
}
|
||||
|
||||
private void checkVisibility(Activity activity, int state, int divider, int title, int message, int button) {
|
||||
View dividerView = activity.findViewById(divider);
|
||||
View titleView = activity.findViewById(title);
|
||||
View messageView = activity.findViewById(message);
|
||||
View buttonView = activity.findViewById(button);
|
||||
private fun checkVisibility(
|
||||
activity: Activity,
|
||||
state: Int,
|
||||
divider: Int,
|
||||
title: Int,
|
||||
message: Int,
|
||||
button: Int
|
||||
) {
|
||||
val dividerView = activity.findViewById<View>(divider)
|
||||
val titleView = activity.findViewById<View>(title)
|
||||
val messageView = activity.findViewById<View>(message)
|
||||
val buttonView = activity.findViewById<View>(button)
|
||||
|
||||
assertEquals(state, dividerView.getVisibility());
|
||||
assertEquals(state, titleView.getVisibility());
|
||||
assertEquals(state, messageView.getVisibility());
|
||||
assertEquals(state, buttonView.getVisibility());
|
||||
assertEquals(state, dividerView.visibility)
|
||||
assertEquals(state, titleView.visibility)
|
||||
assertEquals(state, messageView.visibility)
|
||||
assertEquals(state, buttonView.visibility)
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllOptionsAvailable() {
|
||||
registerIntentHandler(Intent.ACTION_PICK);
|
||||
registerIntentHandler(Intent.ACTION_GET_CONTENT);
|
||||
fun testAllOptionsAvailable() {
|
||||
registerIntentHandler(Intent.ACTION_PICK)
|
||||
registerIntentHandler(Intent.ACTION_GET_CONTENT)
|
||||
|
||||
Activity activity = Robolectric.setupActivity(ImportExportActivity.class);
|
||||
val activity = Robolectric.setupActivity(ImportExportActivity::class.java)
|
||||
|
||||
checkVisibility(activity, View.VISIBLE, R.id.dividerImportFilesystem,
|
||||
R.id.importOptionFilesystemTitle, R.id.importOptionFilesystemExplanation,
|
||||
R.id.importOptionFilesystemButton);
|
||||
checkVisibility(
|
||||
activity, View.VISIBLE, R.id.dividerImportFilesystem,
|
||||
R.id.importOptionFilesystemTitle, R.id.importOptionFilesystemExplanation,
|
||||
R.id.importOptionFilesystemButton
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user