diff --git a/Java/ConfigurationManagerIntentSampleApi/.gitignore b/Java/ConfigurationManagerIntentSampleApi/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/.gitignore b/Java/ConfigurationManagerIntentSampleApi/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/compiler.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/deploymentTargetSelector.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..b268ef3 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/gradle.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/gradle.xml new file mode 100644 index 0000000..ae733f1 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/migrations.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/misc.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/misc.xml new file mode 100644 index 0000000..a599984 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/runConfigurations.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/runConfigurations.xml new file mode 100644 index 0000000..16660f1 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/.idea/vcs.xml b/Java/ConfigurationManagerIntentSampleApi/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/.gitignore b/Java/ConfigurationManagerIntentSampleApi/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/build.gradle b/Java/ConfigurationManagerIntentSampleApi/app/build.gradle new file mode 100644 index 0000000..c215ba6 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/build.gradle @@ -0,0 +1,34 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace 'com.datalogic.example.configurationmanagerintentsampleapi' + compileSdkVersion 'Datalogic:Datalogic SDK v1:30' + + defaultConfig { + applicationId "com.datalogic.example.configurationmanagerintentsampleapi" + minSdk 30 + targetSdk 35 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } +} + +dependencies { + implementation 'com.android.support:support-compat:28.0.0' + implementation libs.androidx.annotation.jvm +} \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/proguard-rules.pro b/Java/ConfigurationManagerIntentSampleApi/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/androidTest/java/com/datalogic/example/configurationmanagerintentsampleapi/ExampleInstrumentedTest.java b/Java/ConfigurationManagerIntentSampleApi/app/src/androidTest/java/com/datalogic/example/configurationmanagerintentsampleapi/ExampleInstrumentedTest.java new file mode 100644 index 0000000..c177958 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/androidTest/java/com/datalogic/example/configurationmanagerintentsampleapi/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.datalogic.example.configurationmanagerintentsampleapi; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.datalogic.example.configurationmanagerintentsampleapi", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/AndroidManifest.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..3649901 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/java/com/datalogic/example/configurationmanagerintentsampleapi/MainActivity.java b/Java/ConfigurationManagerIntentSampleApi/app/src/main/java/com/datalogic/example/configurationmanagerintentsampleapi/MainActivity.java new file mode 100644 index 0000000..f472016 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/java/com/datalogic/example/configurationmanagerintentsampleapi/MainActivity.java @@ -0,0 +1,194 @@ +package com.datalogic.example.configurationmanagerintentsampleapi; // Or your desired package + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.util.Log; + +// Datalogic SDK imports +import com.datalogic.device.Intents; // Defines Datalogic specific intent actions and extras +import com.datalogic.device.configuration.PropertyID; // Contains unique identifiers for device properties +import com.datalogic.device.configuration.DeviceNameSuffix; // Enum for DEVICE_NAME_SUFFIX +import com.datalogic.device.configuration.StringSetBlob; // Specific Blob type for VIRTUAL_KEYBOARDS_CUSTOM_ENABLED + +import java.util.HashMap; +import java.util.Map; // Used for iterating over map entries + +/** + * MainActivity is an example demonstrating how to use the Datalogic SDK's Intent interface + * ({@link com.datalogic.device.Intents#ACTION_CONFIGURATION_COMMIT}) to request changes + * to various device properties. + * + *

This sample showcases:

+ * + *

+ * For more detailed information, refer to the official Datalogic Android SDK documentation. + *

+ */ +public class MainActivity extends Activity { + private static final String TAG = "IntentConfigSample"; + private BroadcastReceiver configurationChangeReceiver; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + // =========================================================== + // STEP 1: REGISTER BROADCAST RECEIVER + // =========================================================== + Log.d(TAG, "Registering broadcast receiver for configuration changes."); + registerConfigurationChangeReceiver(); + + // =========================================================== + // STEP 2: PREPARE PROPERTIES FOR INTENT COMMIT + // =========================================================== + Log.d(TAG, "Preparing properties for ACTION_CONFIGURATION_COMMIT intent."); + HashMap propertiesToChange = new HashMap<>(); + + // --- 2.1. Boolean Property: PropertyID.LONG_PRESS_HOME_BUTTON_ENABLED --- + String newValue = Boolean.toString(true); // Toggle + propertiesToChange.put(PropertyID.LONG_PRESS_HOME_BUTTON_ENABLED, newValue); + Log.d(TAG, "Preparing to set LONG_PRESS_HOME_BUTTON_ENABLED to: " + newValue); + + // --- 2.2. Numeric Property: PropertyID.SCREEN_BRIGHTNESS --- + String newBrightnessLevel = "150"; // Example new brightness + propertiesToChange.put(PropertyID.SCREEN_BRIGHTNESS, newBrightnessLevel); + Log.d(TAG, "Preparing to set SCREEN_BRIGHTNESS to: " + newBrightnessLevel); + + // --- 3.3. Text Property: PropertyID.DEVICE_NAME_BASE --- + String newDeviceNameBase = "DeviceBaseNameExample"; + propertiesToChange.put(PropertyID.DEVICE_NAME_BASE, newDeviceNameBase); + Log.d(TAG, "Preparing to set DEVICE_NAME_BASE to: \"" + newDeviceNameBase + "\""); + + // --- 3.4. Enum Property: PropertyID.DEVICE_NAME_SUFFIX --- + DeviceNameSuffix newSuffix = DeviceNameSuffix.SERIAL_NUMBER; + String newSuffixStr = newSuffix.toString(); + propertiesToChange.put(PropertyID.DEVICE_NAME_SUFFIX, newSuffixStr); + Log.d(TAG, "Preparing to set DEVICE_NAME_SUFFIX to: " + newSuffixStr); + + // --- 3.5. BlobProperty (StringSetBlob): PropertyID.VIRTUAL_KEYBOARDS_CUSTOM_ENABLED --- + StringSetBlob newValueToSet = new StringSetBlob(); + newValueToSet.add("com.google.android.tts/com.google.android.apps.speech.tts.googletts.settings.asr.voiceime.VoiceInputMethodService"); + newValueToSet.add("com.another.keyboard/.AnotherIME"); // Add another value + String stringValueForKeyboards = String.join(",", newValueToSet.toString()); + propertiesToChange.put(PropertyID.VIRTUAL_KEYBOARDS_CUSTOM_ENABLED, stringValueForKeyboards); + Log.d(TAG, "Preparing to set VIRTUAL_KEYBOARDS_CUSTOM_ENABLED to (comma-separated string): \"" + stringValueForKeyboards + "\""); + + // =========================================================== + // STEP 4: SEND CONFIGURATION COMMIT INTENT + // =========================================================== + Log.d(TAG, "Sending ACTION_CONFIGURATION_COMMIT intent with properties: " + propertiesToChange.toString()); + Intent commitIntent = new Intent(Intents.ACTION_CONFIGURATION_COMMIT); + commitIntent.putExtra(Intents.EXTRA_CONFIGURATION_CHANGED_MAP, propertiesToChange); + sendBroadcast(commitIntent); + } + + /** + * Registers a {@link BroadcastReceiver} to listen for specific Datalogic system intents + * related to device configuration changes. This allows the application to be notified + * asynchronously about the outcome of configuration requests or other system-initiated changes. + * + * The receiver is set up to listen for: + * + * This method should be called, for example, in {@code onCreate()} of an Activity, and + * the receiver should be unregistered in {@code onDestroy()} to prevent leaks. + */ + private void registerConfigurationChangeReceiver() { + // Create a new instance of the BroadcastReceiver. + configurationChangeReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // =========================================================== + // RECEIVE A CONFIGURATION CHANGED OR REBOOT REQUIRED + // =========================================================== + String action = intent.getAction(); + Log.d(TAG, "Received intent with action: " + action); + + // Check if the received intent is for a configuration change. + if (Intents.ACTION_CONFIGURATION_CHANGED.equals(action)) { + Log.i(TAG, "ACTION_CONFIGURATION_CHANGED received."); + + // Extract the map of successfully changed properties. + // The key is the PropertyID (Integer), and the value is the new property value (String). + @SuppressWarnings("unchecked") // Suppress warning for HashMap cast, as this is the expected type. + HashMap changedMap = (HashMap) intent.getSerializableExtra(Intents.EXTRA_CONFIGURATION_CHANGED_MAP); + if (changedMap != null && !changedMap.isEmpty()) { + Log.d(TAG, "Successfully changed properties reported by broadcast:"); + for (Map.Entry entry : changedMap.entrySet()) { + Log.d(TAG, " PropertyID " + entry.getKey() + " set to: " + entry.getValue()); + } + } else { + Log.d(TAG, "No successfully changed properties in EXTRA_CONFIGURATION_CHANGED_MAP from broadcast."); + } + + // Extract the map of properties that failed to change (errors). + // The key is the PropertyID (Integer), and the value is the property value that failed to be applied (String). + @SuppressWarnings("unchecked") // Suppress warning for HashMap cast, as this is the expected type. + HashMap errorMap = (HashMap) intent.getSerializableExtra(Intents.EXTRA_CONFIGURATION_ERROR_MAP); + if (errorMap != null && !errorMap.isEmpty()) { + Log.w(TAG, "Properties that failed to change (errors) reported by broadcast:"); + for (Map.Entry entry : errorMap.entrySet()) { + Log.w(TAG, " PropertyID " + entry.getKey() + " failed to set to value: " + entry.getValue()); + } + } else { + Log.d(TAG, "No errors reported in EXTRA_CONFIGURATION_ERROR_MAP from broadcast."); + } + + // Check if the received intent indicates that a device reboot is required. + } else if (Intents.ACTION_CONFIGURATION_BOOT_REQUIRED.equals(action)) { + Log.w(TAG, "ACTION_CONFIGURATION_BOOT_REQUIRED received. Device reboot needed to apply all changes."); + } + } + }; + + // Create an IntentFilter to specify which intent actions this receiver should respond to. + // This ensures the receiver only gets intents it's interested in. + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(Intents.ACTION_CONFIGURATION_CHANGED); // Add action for when device configuration properties have changed. + intentFilter.addAction(Intents.ACTION_CONFIGURATION_BOOT_REQUIRED); // // Add action for when a reboot is required to apply configuration changes. + // Register the BroadcastReceiver with the system, associating it with the defined IntentFilter. + // This receiver is context-registered and will be active as long as the registering context (e.g., Activity) is valid. + registerReceiver(configurationChangeReceiver, intentFilter); + Log.d(TAG, "BroadcastReceiver registered for Datalogic configuration intents."); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + // =========================================================== + // UNREGISTER BROADCAST RECEIVER + // =========================================================== + // It's crucial to unregister the receiver when it's no longer needed (e.g., when the Activity is destroyed) + // to prevent memory leaks and ensure proper application behavior. + if (configurationChangeReceiver != null) { + unregisterReceiver(configurationChangeReceiver); + Log.d(TAG, "BroadcastReceiver unregistered."); + configurationChangeReceiver = null; + } + Log.d(TAG, "onDestroy completed."); + } +} \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_background.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_foreground.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/layout/activity_main.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b983ef8 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values-night/themes.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..dce5f1a --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/colors.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c8524cd --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/strings.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..4b864af --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + ConfigurationManagerIntentSampleApi + \ No newline at end of file diff --git a/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/themes.xml b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..4512938 --- /dev/null +++ b/Java/ConfigurationManagerIntentSampleApi/app/src/main/res/values/themes.xml @@ -0,0 +1,3 @@ + +