From a36207ed79d3347c19d3e05f04ac910e3488ff6c Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Wed, 4 Sep 2019 11:13:27 +0700 Subject: [PATCH] Revert FileProvider to Keyman app Starts to address #2039 Move FileProvider back to Keyman manifest and revert authority. Added Toast notification if 3rd party app doesn't define FileProvider. (info pages fail to properly load) --- android/KMAPro/kMAPro/src/main/AndroidManifest.xml | 12 +++++++++++- .../kMAPro}/src/main/res/xml/file_paths.xml | 0 android/KMEA/app/src/main/AndroidManifest.xml | 13 +------------ .../com/tavultesoft/kmea/KeyboardInfoActivity.java | 9 ++++++--- .../tavultesoft/kmea/KeyboardSettingsActivity.java | 9 ++++++--- .../com/tavultesoft/kmea/ModelInfoActivity.java | 8 +++++--- 6 files changed, 29 insertions(+), 22 deletions(-) rename android/{KMEA/app => KMAPro/kMAPro}/src/main/res/xml/file_paths.xml (100%) diff --git a/android/KMAPro/kMAPro/src/main/AndroidManifest.xml b/android/KMAPro/kMAPro/src/main/AndroidManifest.xml index f90d471d35..4b0592ade0 100644 --- a/android/KMAPro/kMAPro/src/main/AndroidManifest.xml +++ b/android/KMAPro/kMAPro/src/main/AndroidManifest.xml @@ -192,6 +192,16 @@ android:launchMode="singleTask" android:theme="@style/AppTheme.Base" /> + + + + - \ No newline at end of file + diff --git a/android/KMEA/app/src/main/res/xml/file_paths.xml b/android/KMAPro/kMAPro/src/main/res/xml/file_paths.xml similarity index 100% rename from android/KMEA/app/src/main/res/xml/file_paths.xml rename to android/KMAPro/kMAPro/src/main/res/xml/file_paths.xml diff --git a/android/KMEA/app/src/main/AndroidManifest.xml b/android/KMEA/app/src/main/AndroidManifest.xml index 4b2f8eb62c..cbc8d9644a 100644 --- a/android/KMEA/app/src/main/AndroidManifest.xml +++ b/android/KMEA/app/src/main/AndroidManifest.xml @@ -68,17 +68,6 @@ android:label="@string/app_name" android:theme="@style/Theme.AppCompat.Light.Dialog" > - - - - - - \ No newline at end of file + diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java index d04714be42..e8dcb6bc6d 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java @@ -24,6 +24,7 @@ import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; +import android.widget.Toast; import com.tavultesoft.kmea.util.FileUtils; @@ -100,10 +101,12 @@ public final class KeyboardInfoActivity extends AppCompatActivity { // Starting with Android N, you can't pass file:// to intents, so we use FileProvider try { Uri contentUri = FileProvider.getUriForFile( - context, "com.tavultesoft.kmea.fileProvider", customHelp); + context, getApplication().getPackageName() + ".fileProvider", customHelp); i.setDataAndType(contentUri, "text/html"); - } catch (Exception e) { - Log.e("KeyboardInfoActivity", "Failed to access " + customHelp.toString()); + } catch (NullPointerException e) { + String message = "FileProvider undefined in app to load" + customHelp.toString(); + Toast.makeText(context, message, Toast.LENGTH_LONG).show(); + Log.e("KeyboardInfoActivity", message); } } else { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardSettingsActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardSettingsActivity.java index db82379430..ad4446f377 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardSettingsActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardSettingsActivity.java @@ -25,6 +25,7 @@ import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; +import android.widget.Toast; import com.tavultesoft.kmea.util.FileUtils; import com.tavultesoft.kmea.util.MapCompat; @@ -143,10 +144,12 @@ public final class KeyboardSettingsActivity extends AppCompatActivity { // Starting with Android N, you can't pass file:// to intents, so we use FileProvider try { Uri contentUri = FileProvider.getUriForFile( - context, "com.tavultesoft.kmea.fileProvider", customHelp); + context, getApplication().getPackageName() + ".fileProvider", customHelp); i.setDataAndType(contentUri, "text/html"); - } catch (Exception e) { - Log.e("KeyboardInfoActivity", "Failed to access " + customHelp.toString()); + } catch (NullPointerException e) { + String message = "FileProvider undefined in app to load" + customHelp.toString(); + Toast.makeText(context, message, Toast.LENGTH_LONG).show(); + Log.e("KeyboardInfoActivity", message); } } else { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java index 93ba85519c..ea8fce4769 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java @@ -143,10 +143,12 @@ public final class ModelInfoActivity extends AppCompatActivity { // Starting with Android N, you can't pass file:// to intents, so we use FileProvider try { Uri contentUri = FileProvider.getUriForFile( - context, "com.tavultesoft.kmea.fileProvider", customHelp); + context, getApplication().getPackageName() + ".fileProvider", customHelp); i.setDataAndType(contentUri, "text/html"); - } catch (Exception e) { - Log.e("ModelInfoActivity", "Failed to access " + customHelp.toString()); + } catch (NullPointerException e) { + String message = "FileProvider undefined in app to load" + customHelp.toString(); + Toast.makeText(context, message, Toast.LENGTH_LONG).show(); + Log.e("ModelInfoActivity", message); } } else {