diff --git a/build.gradle b/build.gradle index b69f104..198151f 100644 --- a/build.gradle +++ b/build.gradle @@ -20,9 +20,9 @@ android { defaultConfig { applicationId "fr.unix_experience.owncloud_sms" - minSdkVersion 14 + minSdkVersion 16 targetSdkVersion 25 - maxSdkVersion 24 + maxSdkVersion 25 } buildTypes { diff --git a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java index df4ea5f..191b99c 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/activities/remote_account/RestoreMessagesActivity.java @@ -46,10 +46,6 @@ public class RestoreMessagesActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_restore_messages); - if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) { - // @TODO Change message to define Android 4.4 or greated is required - return; - } assert getIntent().getExtras() != null; @@ -58,16 +54,6 @@ public class RestoreMessagesActivity extends AppCompatActivity { // accountName cannot be null, devel error assert accountName != null; AccountManager accountManager = AccountManager.get(getBaseContext()); - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) { - // TODO: Consider calling - // ActivityCompat#requestPermissions - // here to request the missing permissions, and then overriding - // public void onRequestPermissionsResult(int requestCode, String[] permissions, - // int[] grantResults) - // to handle the case where the user grants the permission. See the documentation - // for ActivityCompat#requestPermissions for more details. - return; - } Account[] accountList = accountManager.getAccountsByType(getString(R.string.account_type)); for (Account element : accountList) { if (element.name.equals(accountName)) { @@ -79,13 +65,19 @@ public class RestoreMessagesActivity extends AppCompatActivity { throw new IllegalStateException(getString(R.string.err_didnt_find_account_restore)); } - _defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(this); TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp); + tv.setText(R.string.error_make_default_sms_app); Button fix_button = (Button) findViewById(R.id.button_fix_permissions); final Button launch_restore = (Button) findViewById(R.id.button_launch_restore); final ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore); pb.setVisibility(View.INVISIBLE); + if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) { + notifyIncompatibleVersion(); + return; + } + + _defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(this); if (!Telephony.Sms.getDefaultSmsPackage(this).equals(getPackageName())) { _defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(getBaseContext()); tv.setVisibility(View.VISIBLE); @@ -101,7 +93,7 @@ public class RestoreMessagesActivity extends AppCompatActivity { fix_button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) { - // @TODO Change message to define Android 4.4 or greated is required + notifyIncompatibleVersion(); return; } @@ -128,11 +120,21 @@ public class RestoreMessagesActivity extends AppCompatActivity { startActivity(finalIntent);*/ } + private void notifyIncompatibleVersion() { + TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp); + Button fix_button = (Button) findViewById(R.id.button_fix_permissions); + Button launch_restore = (Button) findViewById(R.id.button_launch_restore); + ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore); + tv.setText(R.string.err_kitkat_required); + fix_button.setVisibility(View.INVISIBLE); + launch_restore.setVisibility(View.INVISIBLE); + pb.setVisibility(View.INVISIBLE); + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case RestoreMessagesActivity.REQUEST_DEFAULT_SMSAPP: - Log.i(RestoreMessagesActivity.TAG, "RC: " + Integer.toString(resultCode)); if (resultCode == Activity.RESULT_OK) { TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp); Button fix_button = (Button) findViewById(R.id.button_fix_permissions); diff --git a/src/main/res/values-en/strings.xml b/src/main/res/values-en/strings.xml index ebf44d6..cd69cce 100644 --- a/src/main/res/values-en/strings.xml +++ b/src/main/res/values-en/strings.xml @@ -175,5 +175,7 @@ This feature is not already implemented and will be available soon. Minimum phonenumber length We didn\'t find your account to restore your message, this is a very strange situation. + Android 4.4 or greater is required to use this feature. + Please make this application default SMS application to permit restore your messages. This limitation has been introduced by Android 4.4. diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index 668d2c1..9470c4b 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -162,4 +162,7 @@ Cette fonctionnalité n\'est pas implémentée mais elle sera disponible bientôt. Longueur minimale du numéro de téléphone Nous n\'avons pas retrouvé le compte que nous souhaitions utiliser pour la restauration. Cette situation est vraiment étrange. + Android 4.4 ou plus est requis pour utiliser cette fonctionnalité. + Erreur #1: Données invalides reçues lors de l\'obtention des messages précédents. + Merci de bien vouloir mettre cette application en application SMS par défaut le temps de restaurer les messages. Cette limitation a été ajoutée depuis Android 4.4. diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 7402629..21ad5e3 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -248,6 +248,7 @@ Minimum phonenumber length We didn\'t find your account to restore your message, this is a very strange situation. Restore my SMS - Please make this application default SMS application to permit restore your messages. + Please make this application default SMS application to permit restore your messages. This limitation has been introduced by Android 4.4. Fix permissions + Android 4.4 or greater is required to use this feature.