Browse Source

Simplify AppConfigManager

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 year ago
parent
commit
22e9a40fd4

+ 2 - 2
app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigKeys.kt

@@ -12,5 +12,5 @@ package com.owncloud.android.utils.appConfig
  */
 enum class AppConfigKeys(val key: String) {
     ProxyHost("proxy_host"),
-    ProxyPort("proxy_port"),
-}
+    ProxyPort("proxy_port")
+}

+ 20 - 6
app/src/main/java/com/owncloud/android/utils/appConfig/AppConfigManager.kt

@@ -25,19 +25,33 @@ class AppConfigManager(private val context: Context) {
     fun readProxyConfig() {
         val appRestrictions = restrictionsManager.applicationRestrictions
 
-        if (!appRestrictions.containsKey(AppConfigKeys.ProxyHost.key) || !appRestrictions.containsKey(AppConfigKeys.ProxyPort.key)) {
-            context.enterpriseFeedback(R.string.app_config_proxy_config_cannot_be_found_message)
+        val host = if (appRestrictions.containsKey(AppConfigKeys.ProxyHost.key)) {
+            appRestrictions.getString(AppConfigKeys.ProxyHost.key)
+        } else {
+            context.resources.getString(R.string.proxy_host)
         }
 
-        val host = appRestrictions.getString(AppConfigKeys.ProxyHost.key)
-        val port = appRestrictions.getInt(AppConfigKeys.ProxyPort.key)
+        val port = if (appRestrictions.containsKey(AppConfigKeys.ProxyPort.key)) {
+            appRestrictions.getInt(AppConfigKeys.ProxyPort.key)
+        } else {
+            context.resources.getInteger(R.integer.proxy_port)
+        }
+
+        if (host == null) {
+            context.enterpriseFeedback(
+                AppConfigKeys.ProxyHost,
+                R.string.app_config_proxy_config_cannot_be_found_message
+            )
+            return
+        }
 
         try {
             OwnCloudClientManagerFactory.setProxyHost(host)
             OwnCloudClientManagerFactory.setProxyPort(port)
         } catch (e: Resources.NotFoundException) {
-            context.enterpriseFeedback(R.string.app_config_proxy_config_cannot_be_set_message)
-           Log_OC.d(tag,"Proxy config cannot able to set due to: $e")
+            context.enterpriseFeedback(AppConfigKeys.ProxyHost, R.string.app_config_proxy_config_cannot_be_set_message)
+            context.enterpriseFeedback(AppConfigKeys.ProxyPort, R.string.app_config_proxy_config_cannot_be_set_message)
+            Log_OC.d(tag, "Proxy config cannot able to set due to: $e")
         }
     }
 }

+ 16 - 8
app/src/main/java/com/owncloud/android/utils/enterpriseReporter/EnterpriseReporter.kt

@@ -16,19 +16,27 @@ import androidx.enterprise.feedback.KeyedAppStatesCallback.STATUS_TRANSACTION_TO
 import androidx.enterprise.feedback.KeyedAppStatesCallback.STATUS_UNKNOWN_ERROR
 import androidx.enterprise.feedback.KeyedAppStatesReporter
 import com.owncloud.android.lib.common.utils.Log_OC
+import com.owncloud.android.utils.appConfig.AppConfigKeys
 
+@Suppress("TooGenericExceptionCaught")
 fun Context.enterpriseFeedback(
+    appConfig: AppConfigKeys,
     messageId: Int,
     severity: Int = KeyedAppState.SEVERITY_ERROR
 ) {
-    val keyedAppStatesReporter = KeyedAppStatesReporter.create(this)
-    val keyedAppStateMessage = KeyedAppState.builder()
-        .setSeverity(severity)
-        .setMessage(getString(messageId))
-        .build()
-    val list: MutableList<KeyedAppState> = ArrayList()
-    list.add(keyedAppStateMessage)
-    keyedAppStatesReporter.setStates(list, Callback())
+    try {
+        val keyedAppStatesReporter = KeyedAppStatesReporter.create(this)
+        val keyedAppStateMessage = KeyedAppState.builder()
+            .setKey(appConfig.key)
+            .setSeverity(severity)
+            .setMessage(getString(messageId))
+            .build()
+        val list: MutableList<KeyedAppState> = ArrayList()
+        list.add(keyedAppStateMessage)
+        keyedAppStatesReporter.setStates(list, Callback())
+    } catch (e: Exception) {
+        Log_OC.d("EnterpriseFeedback", "Feedback cannot sent to the enterprise: $e")
+    }
 }
 
 internal class Callback : KeyedAppStatesCallback {