From 8721af148222cc6872c0e607646b26f773b36ea6 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Wed, 15 May 2024 17:04:02 +0800 Subject: [PATCH] Add ServerSettingActivity --- .idea/misc.xml | 1 - app/build.gradle | 3 +- app/src/main/AndroidManifest.xml | 17 +++--- .../com/logitech/vc/kirbytest/KirbyDevice.kt | 6 +- .../com/logitech/vc/kirbytest/MainActivity.kt | 9 ++- .../vc/kirbytest/ServerSettingActivity.kt | 49 ++++++++++++++++ .../res/layout/activity_server_setting.xml | 56 +++++++++++++++++++ app/src/main/res/menu/menu_main.xml | 5 ++ app/src/main/res/values/strings.xml | 6 ++ 9 files changed, 138 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/com/logitech/vc/kirbytest/ServerSettingActivity.kt create mode 100644 app/src/main/res/layout/activity_server_setting.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 0ad17cb..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/build.gradle b/app/build.gradle index 0f95f38..bfdaff3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { android { namespace 'com.logitech.vc.kirbytest' - compileSdk 32 + compileSdk 34 defaultConfig { applicationId "com.logitech.vc.kirbytest" @@ -53,6 +53,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2' implementation 'androidx.navigation:navigation-ui-ktx:2.5.2' + implementation 'androidx.activity:activity:1.8.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0765db0..a6b75e6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,6 @@ - - - - - + - @@ -35,12 +29,15 @@ android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.SensorTestingApp" android:usesCleartextTraffic="true" - android:networkSecurityConfig="@xml/network_security_config" tools:targetApi="31"> + - + \ No newline at end of file diff --git a/app/src/main/java/com/logitech/vc/kirbytest/KirbyDevice.kt b/app/src/main/java/com/logitech/vc/kirbytest/KirbyDevice.kt index 24d12f2..0bbbc30 100644 --- a/app/src/main/java/com/logitech/vc/kirbytest/KirbyDevice.kt +++ b/app/src/main/java/com/logitech/vc/kirbytest/KirbyDevice.kt @@ -196,8 +196,12 @@ class KirbyDevice( } private fun publishMeasurementAutoServer(measurement: DecoderIaq.Measurement) { + // Read url from SharedPreferences + val sharedPref = context.getSharedPreferences(context.getString(R.string.app_name), Context.MODE_PRIVATE) + val url = sharedPref.getString( + "kirby_data_post_url", + context.getString(R.string.kirby_data_post_url_default)) ?: context.getString(R.string.kirby_data_post_url_default) val accessKey = BuildConfig.API_KEY - val url = BuildConfig.API_BASE_URL if(url.isEmpty()) { return diff --git a/app/src/main/java/com/logitech/vc/kirbytest/MainActivity.kt b/app/src/main/java/com/logitech/vc/kirbytest/MainActivity.kt index 8ed716f..37ca36f 100644 --- a/app/src/main/java/com/logitech/vc/kirbytest/MainActivity.kt +++ b/app/src/main/java/com/logitech/vc/kirbytest/MainActivity.kt @@ -15,7 +15,6 @@ import android.content.pm.PackageManager import android.net.Uri import android.os.Build import android.os.Bundle -import android.os.Handler import android.util.Log import android.view.Menu import android.view.MenuItem @@ -23,7 +22,6 @@ import android.view.View.INVISIBLE import android.view.View.VISIBLE import android.widget.Toast import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts.CreateDocument import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity @@ -303,6 +301,13 @@ class MainActivity : AppCompatActivity() { return true } + R.id.action_server_setting -> { + // Goto server setting intent + val intent = Intent(this, ServerSettingActivity::class.java) + startActivity(intent) + return true + } + else -> super.onOptionsItemSelected(item) } } diff --git a/app/src/main/java/com/logitech/vc/kirbytest/ServerSettingActivity.kt b/app/src/main/java/com/logitech/vc/kirbytest/ServerSettingActivity.kt new file mode 100644 index 0000000..519eb8f --- /dev/null +++ b/app/src/main/java/com/logitech/vc/kirbytest/ServerSettingActivity.kt @@ -0,0 +1,49 @@ +package com.logitech.vc.kirbytest + +import android.os.Bundle +import android.util.Log +import android.widget.Button +import android.widget.EditText +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat + +class ServerSettingActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContentView(R.layout.activity_server_setting) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + + // Get current server setting from SharedPreferences + val sharedPref = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE) + var currentUrl = sharedPref.getString( + "kirby_data_post_url", + getString(R.string.kirby_data_post_url_default)) ?: getString(R.string.kirby_data_post_url_default) + val editTextServerSetting = findViewById(R.id.editTextServerSetting) + editTextServerSetting.setText(currentUrl) + + val doneButton = findViewById