diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/deploymentTargetDropDown.xml b/CsoundForAndroid/CsoundForAndroid/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index bd5ebe760e..0000000000
--- a/CsoundForAndroid/CsoundForAndroid/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/jarRepositories.xml b/CsoundForAndroid/CsoundForAndroid/.idea/jarRepositories.xml
index eb2873e7ed..1e2d92c124 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/jarRepositories.xml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/jarRepositories.xml
@@ -26,5 +26,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/modules.xml b/CsoundForAndroid/CsoundForAndroid/.idea/modules.xml
index c4c0015ed6..713b27e717 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/modules.xml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/modules.xml
@@ -9,8 +9,6 @@
-
-
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.main.iml b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.main.iml
index c1ec03351f..de5e3442f9 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.main.iml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.main.iml
@@ -32,43 +32,58 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.unitTest.iml b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.unitTest.iml
index 4db6e964fc..ae3764e4f0 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.unitTest.iml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundAndroid/CsoundForAndroid.CsoundAndroid.unitTest.iml
@@ -23,44 +23,59 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.main.iml b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.main.iml
index 482c3183b3..e96fad6ea7 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.main.iml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.main.iml
@@ -34,41 +34,60 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.unitTest.iml b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.unitTest.iml
index 4eb69cff5f..e0f4574fb0 100644
--- a/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.unitTest.iml
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/modules/CsoundApplication/CsoundForAndroid.CsoundApplication.unitTest.iml
@@ -23,42 +23,61 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/.idea/render.experimental.xml b/CsoundForAndroid/CsoundForAndroid/.idea/render.experimental.xml
new file mode 100644
index 0000000000..8ec256a5d2
--- /dev/null
+++ b/CsoundForAndroid/CsoundForAndroid/.idea/render.experimental.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundAndroid/build.gradle b/CsoundForAndroid/CsoundForAndroid/CsoundAndroid/build.gradle
index 5a1c1ce201..44a4047d9b 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundAndroid/build.gradle
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundAndroid/build.gradle
@@ -24,12 +24,20 @@ android {
}
dependencies {
+ constraints {
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
+ because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
+ }
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
+ because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
+ }
+ }
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:appcompat-v7:28.0.0'
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
- implementation 'com.android.support:design:28.0.0'
- implementation 'com.android.support:support-v4:28.0.0'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+ implementation 'com.google.android.material:material:1.9.0'
+ implementation 'androidx.legacy:legacy-support-v13:1.0.0'
}
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/build.gradle b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/build.gradle
index d4575d9f68..d7c9826660 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/build.gradle
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/build.gradle
@@ -2,13 +2,15 @@ buildscript {
repositories {
google()
jcenter()
- }
+ mavenCentral()
+ }
dependencies {
classpath 'com.android.tools.build:gradle:8.1.1'
- classpath 'com.android.support.constraint:constraint-layout:1.1.3'
-
+ classpath 'com.android.support.constraint:constraint-layout:2.0.4'
+ classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
+ // Java language implementation
}
}
apply plugin: 'com.android.application'
@@ -63,9 +65,9 @@ android {
dependencies {
implementation project(':CsoundAndroid')
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation("com.android.support.constraint:constraint-layout:2.0.4")
- implementation('com.android.support:appcompat-v7:28.0.0')
- implementation('com.android.support:design:28.0.0')
-
-
+ implementation('androidx.constraintlayout:constraintlayout:2.1.4')
+ implementation('androidx.appcompat:appcompat:1.6.1')
+ implementation('com.google.android.material:material:1.9.0')
+ implementation('androidx.preference:preference:1.2.1')
+ implementation('androidx.fragment:fragment:1.6.1')
}
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/AndroidManifest.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/AndroidManifest.xml
index 562d0d9f6e..c065d4d196 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/AndroidManifest.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/AndroidManifest.xml
@@ -41,15 +41,14 @@
-
+ android:label="@string/app_name" />
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/CsoundAppActivity.java b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/CsoundAppActivity.java
index 05ed6b1789..864391ec43 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/CsoundAppActivity.java
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/CsoundAppActivity.java
@@ -8,8 +8,12 @@
*/
package com.csounds.Csound6;
+//import static android.support.design.widget.TabLayout.*;
+//import static android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback;
+
import android.Manifest;
import android.annotation.TargetApi;
+import android.app.FragmentTransaction;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -30,23 +34,16 @@
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
-import android.os.ParcelFileDescriptor;
-import android.preference.PreferenceManager;
+
+import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceManager;
import android.provider.Settings;
-import android.support.design.widget.Snackbar;
-import android.support.design.widget.TabLayout;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.content.FileProvider;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
-import android.view.View.OnClickListener;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebResourceError;
@@ -56,15 +53,21 @@
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.LinearLayout;
-import android.widget.ListAdapter;
import android.widget.ScrollView;
import android.widget.SeekBar;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
-import android.widget.ToggleButton;
-import com.csounds.Csound6.BuildConfig;
-import java.io.BufferedOutputStream;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.FileProvider;
+
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.tabs.TabLayout;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
@@ -82,15 +85,12 @@
import csnd.CsoundOboe;
import csnd.csound_oboeJNI;
-import static android.support.design.widget.TabLayout.*;
-import static android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback;
-
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
@SuppressWarnings("unused")
public class CsoundAppActivity extends AppCompatActivity implements /* CsoundObjListener,
- CsoundObj.MessagePoster, */ OnTabSelectedListener,
+ CsoundObj.MessagePoster, */ TabLayout.OnTabSelectedListener,
SharedPreferences.OnSharedPreferenceChangeListener, ValueCallback,
- OnRequestPermissionsResultCallback {
+ ActivityCompat.OnRequestPermissionsResultCallback {
String code = "";
CsoundOboe csound_oboe = null;
Uri csound_uri = null;
@@ -427,8 +427,22 @@ public boolean onOptionsItemSelected(MenuItem item) {
goToUrl("http://csound.github.io/csound_for_android_privacy.html");
return true;
case R.id.itemSettings:
- Intent intent1 = new Intent(this, SettingsActivity.class);
- startActivity(intent1);
+ // https://www.25yearsofprogramming.com/computer-science/how-to-create-android-settings-screen-using-preferencefragment.html
+ /*
+ // Create new fragment and transaction
+ SettingsFragment newFragment = new SettingsFragment();
+ // consider using Java coding conventions (upper first char class names!!!)
+ androidx.fragment.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ // Replace whatever is in the fragment_container view with this fragment,
+ // and add the transaction to the back stack
+ transaction.replace(R.id.fragment_container_view, newFragment);
+ transaction.addToBackStack(null);
+ // Commit the transaction
+ transaction.commit();
+ return true;
+ */
+ Intent settingsIntent = new Intent(this.getBaseContext(), SettingsActivity.class);
+ startActivity(settingsIntent);
return true;
case R.id.itemTrapped:
outFile = copyAsset("examples/Boulanger/trapped.csd");
@@ -857,7 +871,7 @@ public void onProgressChanged(SeekBar seekBar, int progress,
for (int i = 0; i < 12; i++) {
Button button = buttons.get(i);
final String channelName = "butt" + (i + 1);
- button.setOnTouchListener(new OnTouchListener() {
+ button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
@@ -878,7 +892,7 @@ public boolean onTouch(View v, MotionEvent event) {
});
}
// Add trackpad handler.
- pad.setOnTouchListener(new OnTouchListener() {
+ pad.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction() & MotionEvent.ACTION_MASK;
double xpos = 0;
@@ -1251,7 +1265,7 @@ public double getControlChannel(String channelName) {
}
@Override
- public void onTabSelected(Tab tab) {
+ public void onTabSelected(TabLayout.Tab tab) {
String text = tab.getText().toString();
if (text.contentEquals("Editor")) {
editor_tab.setVisibility(View.VISIBLE);
@@ -1275,7 +1289,7 @@ public void onTabSelected(Tab tab) {
}
@Override
- public void onTabUnselected(Tab tab) {
+ public void onTabUnselected(TabLayout.Tab tab) {
String text = tab.getText().toString();
if (text.contentEquals("Editor")) {
editor_tab.setVisibility(View.GONE);
@@ -1293,7 +1307,7 @@ public void onTabUnselected(Tab tab) {
}
@Override
- public void onTabReselected(Tab tab) {
+ public void onTabReselected(TabLayout.Tab tab) {
}
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsActivity.java b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsActivity.java
index 4535575a91..d14fd2c0f2 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsActivity.java
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsActivity.java
@@ -1,38 +1,41 @@
package com.csounds.Csound6;
-import android.content.SharedPreferences;
+import android.annotation.SuppressLint;
import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.preference.ListPreference;
-public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener{
- public static final String KEY_AUDIO_DRIVER_PREFERENCE = "audioDriver";
- public ListPreference audioDriverPreference;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.settings);
- audioDriverPreference = (ListPreference)findPreference(KEY_AUDIO_DRIVER_PREFERENCE);
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.preference.PreferenceFragmentCompat;
- }
+public class SettingsActivity extends androidx.appcompat.app.AppCompatActivity {
+ @SuppressLint("ResourceType")
@Override
- protected void onResume() {
- super.onResume();
- // Setup the initial values
- // Set up a listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ if (savedInstanceState == null) {
+ SettingsFragment settingsFragment = new SettingsFragment();
+ transaction.replace(android.R.id.content, settingsFragment);
+ }
+ transaction.commit();
}
- @Override
- protected void onPause() {
- super.onPause();
- // Unregister the listener whenever a key changes
- getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
- }
+ // below inner class is a fragment, which must be called in the main activity
+ public static class SettingsHolder extends PreferenceFragmentCompat {
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ // here we should call settings ui
+ addPreferencesFromResource(R.xml.settings);
+
+ }
+
+ @Override
+ public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
+ ///super.onCreate(savedInstanceState);
+ // here we should call settings ui
+ addPreferencesFromResource(R.xml.settings);
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- if (key.equals(KEY_AUDIO_DRIVER_PREFERENCE)) {
- audioDriverPreference.setSummary("Selected driver is " + audioDriverPreference.getEntry().toString());
}
}
}
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsFragment.java b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsFragment.java
new file mode 100644
index 0000000000..eee2e33ac5
--- /dev/null
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/java/com/csounds/Csound6/SettingsFragment.java
@@ -0,0 +1,27 @@
+package com.csounds.Csound6;
+
+import android.os.Bundle;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+public class SettingsFragment extends PreferenceFragmentCompat {
+ public static final String KEY_AUDIO_DRIVER_PREFERENCE = "audioDriver";
+ public ListPreference audioDriverPreference;
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ // Indicate here the XML resource you created above that holds the preferences
+ setPreferencesFromResource(R.xml.settings, rootKey);
+ /*
+ audioDriverPreference = (ListPreference) getPreferenceManager().findPreference("audioDriver");
+ audioDriverPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ return true;
+ // your code here
+ }
+ });
+ */
+ }
+}
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/layout/main.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/layout/main.xml
index 4158d438b7..1a9e4d9cad 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/layout/main.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/layout/main.xml
@@ -8,50 +8,50 @@
android:orientation="vertical"
android:backgroundTint="#000000">
-
+ android:theme="?attr/actionBarTheme">
-
-
-
-
-
-
-
-
+
@@ -490,5 +489,14 @@
android:id="@+id/portal_tab"
android:layout_width="match_parent"
android:layout_height="match_parent" />
-
+
+
+
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/arrays.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/arrays.xml
index e05a667165..e6859a3a70 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/arrays.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/arrays.xml
@@ -10,4 +10,14 @@
- OpenSL ES (input and output)
- AAudio (lower latency on Oreo or later)
+
+
+ - Reply
+ - Reply to all
+
+
+
+ - reply
+ - reply_all
+
\ No newline at end of file
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/color.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/color.xml
index f431a472a8..6d40ab4ac5 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/color.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/color.xml
@@ -8,4 +8,4 @@
#00101f
#0078ff
#ff0000
-
\ No newline at end of file
+
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/strings.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/strings.xml
index e296c00749..349c316f3a 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/strings.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/values/strings.xml
@@ -30,4 +30,18 @@
Settings
Privacy policy
Csound Settings
+
+ Messages
+ Sync
+
+
+ Your signature
+ Default reply action
+
+
+ Sync email periodically
+ Download incoming attachments
+ Automatically download attachments for incoming emails
+
+ Only download attachments when manually requested
diff --git a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/xml/settings.xml b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/xml/settings.xml
index 53867ff706..02ca12f4af 100644
--- a/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/xml/settings.xml
+++ b/CsoundForAndroid/CsoundForAndroid/CsoundApplication/src/main/res/xml/settings.xml
@@ -1,5 +1,6 @@
-
+
-
+
+
diff --git a/CsoundForAndroid/CsoundForAndroid/build.gradle b/CsoundForAndroid/CsoundForAndroid/build.gradle
index 095dbe4df4..73759c2d82 100644
--- a/CsoundForAndroid/CsoundForAndroid/build.gradle
+++ b/CsoundForAndroid/CsoundForAndroid/build.gradle
@@ -49,9 +49,8 @@ allprojects {
repositories {
google()
jcenter()
- maven {
- url 'https://jitpack.io'
- } }
+ mavenCentral()
+ }
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
diff --git a/CsoundForAndroid/CsoundForAndroid/gradle.properties b/CsoundForAndroid/CsoundForAndroid/gradle.properties
index 138e612e4b..424e11dc24 100644
--- a/CsoundForAndroid/CsoundForAndroid/gradle.properties
+++ b/CsoundForAndroid/CsoundForAndroid/gradle.properties
@@ -22,3 +22,6 @@ org.gradle.jvmargs=-Xmx2048M
android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false
+android.useAndroidX=true
+android.enableJetifier=false
+kotlin.stdlib.jdk.variants.substitution=false