mirror of
https://github.com/nerzhul/ownCloud-SMS-App.git
synced 2025-06-08 16:36:10 +00:00
Verify connection when restoring messages
This commit is contained in:
parent
819fa4543d
commit
1bb93a5068
@ -35,12 +35,14 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import fr.unix_experience.owncloud_sms.R;
|
import fr.unix_experience.owncloud_sms.R;
|
||||||
import fr.unix_experience.owncloud_sms.engine.ASyncSMSRecovery;
|
import fr.unix_experience.owncloud_sms.engine.ASyncSMSRecovery;
|
||||||
|
import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor;
|
||||||
|
|
||||||
public class RestoreMessagesActivity extends AppCompatActivity {
|
public class RestoreMessagesActivity extends AppCompatActivity {
|
||||||
|
|
||||||
Account _account = null;
|
Account _account = null;
|
||||||
String _defaultSmsApp;
|
String _defaultSmsApp;
|
||||||
private static final int REQUEST_DEFAULT_SMSAPP = 1;
|
private static final int REQUEST_DEFAULT_SMSAPP = 1;
|
||||||
|
boolean restoreInProgress = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -65,13 +67,58 @@ public class RestoreMessagesActivity extends AppCompatActivity {
|
|||||||
throw new IllegalStateException(getString(R.string.err_didnt_find_account_restore));
|
throw new IllegalStateException(getString(R.string.err_didnt_find_account_restore));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initInterface();
|
||||||
|
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);
|
||||||
|
|
||||||
|
final RestoreMessagesActivity me = this;
|
||||||
|
fix_button.setOnClickListener(new View.OnClickListener() {
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
||||||
|
notifyIncompatibleVersion();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!new ConnectivityMonitor(me).isValid()) {
|
||||||
|
notifyNoConnectivity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.i(RestoreMessagesActivity.TAG, "Ask to change the default SMS app");
|
||||||
|
|
||||||
|
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
|
||||||
|
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getBaseContext().getPackageName());
|
||||||
|
startActivityForResult(intent, REQUEST_DEFAULT_SMSAPP);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
launch_restore.setOnClickListener(new View.OnClickListener() {
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (!new ConnectivityMonitor(me).isValid()) {
|
||||||
|
notifyNoConnectivity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
launch_restore.setVisibility(View.INVISIBLE);
|
||||||
|
pb.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
// Verify connectivity
|
||||||
|
Log.i(RestoreMessagesActivity.TAG, "Launching restore asynchronously");
|
||||||
|
restoreInProgress = true;
|
||||||
|
new ASyncSMSRecovery.SMSRecoveryTask(me, _account).execute();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initInterface() {
|
||||||
TextView tv_error = (TextView) findViewById(R.id.tv_error_default_smsapp);
|
TextView tv_error = (TextView) findViewById(R.id.tv_error_default_smsapp);
|
||||||
tv_error.setText(R.string.error_make_default_sms_app);
|
tv_error.setText(R.string.error_make_default_sms_app);
|
||||||
findViewById(R.id.tv_restore_finished).setVisibility(View.INVISIBLE);
|
findViewById(R.id.tv_restore_finished).setVisibility(View.INVISIBLE);
|
||||||
findViewById(R.id.tv_progress_value).setVisibility(View.INVISIBLE);
|
findViewById(R.id.tv_progress_value).setVisibility(View.INVISIBLE);
|
||||||
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
|
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
|
||||||
final Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
|
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
|
||||||
final ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
|
ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
|
||||||
pb.setVisibility(View.INVISIBLE);
|
pb.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
||||||
@ -91,46 +138,28 @@ public class RestoreMessagesActivity extends AppCompatActivity {
|
|||||||
fix_button.setVisibility(View.INVISIBLE);
|
fix_button.setVisibility(View.INVISIBLE);
|
||||||
launch_restore.setVisibility(View.VISIBLE);
|
launch_restore.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
fix_button.setOnClickListener(new View.OnClickListener() {
|
|
||||||
public void onClick(View v) {
|
|
||||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
|
||||||
notifyIncompatibleVersion();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(RestoreMessagesActivity.TAG, "Ask to change the default SMS app");
|
private void errorNotification(int err) {
|
||||||
|
|
||||||
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
|
|
||||||
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getBaseContext().getPackageName());
|
|
||||||
startActivityForResult(intent, REQUEST_DEFAULT_SMSAPP);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
final RestoreMessagesActivity me = this;
|
|
||||||
launch_restore.setOnClickListener(new View.OnClickListener() {
|
|
||||||
public void onClick(View v) {
|
|
||||||
launch_restore.setVisibility(View.INVISIBLE);
|
|
||||||
pb.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
// Verify connectivity
|
|
||||||
Log.i(RestoreMessagesActivity.TAG, "Launching restore asynchronously");
|
|
||||||
new ASyncSMSRecovery.SMSRecoveryTask(me, _account).execute();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void notifyIncompatibleVersion() {
|
|
||||||
TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp);
|
TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp);
|
||||||
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
|
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
|
||||||
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
|
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
|
||||||
ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
|
ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
|
||||||
tv.setText(R.string.err_kitkat_required);
|
tv.setText(err);
|
||||||
|
tv.setVisibility(View.VISIBLE);
|
||||||
fix_button.setVisibility(View.INVISIBLE);
|
fix_button.setVisibility(View.INVISIBLE);
|
||||||
launch_restore.setVisibility(View.INVISIBLE);
|
launch_restore.setVisibility(View.INVISIBLE);
|
||||||
pb.setVisibility(View.INVISIBLE);
|
pb.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void notifyIncompatibleVersion() {
|
||||||
|
errorNotification(R.string.err_kitkat_required);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void notifyNoConnectivity() {
|
||||||
|
errorNotification(R.string.err_no_connection);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
switch (requestCode) {
|
switch (requestCode) {
|
||||||
@ -149,15 +178,33 @@ public class RestoreMessagesActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
if (!new ConnectivityMonitor(this).isValid()) {
|
||||||
|
notifyNoConnectivity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
||||||
|
notifyIncompatibleVersion();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!restoreInProgress) {
|
||||||
|
initInterface();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void onRestoreDone() {
|
public void onRestoreDone() {
|
||||||
// @TODO
|
|
||||||
Log.i(RestoreMessagesActivity.TAG, "Sync is done, updating interface");
|
|
||||||
findViewById(R.id.progressbar_restore).setVisibility(View.INVISIBLE);
|
findViewById(R.id.progressbar_restore).setVisibility(View.INVISIBLE);
|
||||||
findViewById(R.id.tv_restore_finished).setVisibility(View.VISIBLE);
|
findViewById(R.id.tv_restore_finished).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
Intent finalIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
|
Intent finalIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
|
||||||
finalIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, _defaultSmsApp);
|
finalIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, _defaultSmsApp);
|
||||||
startActivity(finalIntent);
|
startActivity(finalIntent);
|
||||||
|
|
||||||
|
restoreInProgress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onProgressUpdate(Integer value) {
|
public void onProgressUpdate(Integer value) {
|
||||||
|
@ -49,10 +49,13 @@ public interface ASyncSMSRecovery {
|
|||||||
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!new ConnectivityMonitor(_context).isValid()) {
|
||||||
|
Log.e(ASyncSMSRecovery.TAG, "Restore connectivity problems, aborting");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
Log.i(ASyncSMSRecovery.TAG, "Starting background recovery");
|
Log.i(ASyncSMSRecovery.TAG, "Starting background recovery");
|
||||||
|
|
||||||
// Verify connectivity
|
|
||||||
|
|
||||||
Long start = (long) 0;
|
Long start = (long) 0;
|
||||||
|
|
||||||
OCSMSOwnCloudClient client = new OCSMSOwnCloudClient(_context, _account);
|
OCSMSOwnCloudClient client = new OCSMSOwnCloudClient(_context, _account);
|
||||||
@ -119,6 +122,11 @@ public interface ASyncSMSRecovery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start = obj.getLong("last_id");
|
start = obj.getLong("last_id");
|
||||||
|
|
||||||
|
if (!new ConnectivityMonitor(_context).isValid()) {
|
||||||
|
Log.e(ASyncSMSRecovery.TAG, "Restore connectivity problems, aborting");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
obj = client.retrieveSomeMessages(start, 500);
|
obj = client.retrieveSomeMessages(start, 500);
|
||||||
}
|
}
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
|
@ -178,5 +178,6 @@
|
|||||||
<string name="err_kitkat_required">Android 4.4 or greater is required to use this feature.</string>
|
<string name="err_kitkat_required">Android 4.4 or greater is required to use this feature.</string>
|
||||||
<string name="error_make_default_sms_app">Please make this application default SMS application to permit restore your messages. This limitation has been introduced by Android 4.4.</string>
|
<string name="error_make_default_sms_app">Please make this application default SMS application to permit restore your messages. This limitation has been introduced by Android 4.4.</string>
|
||||||
<string name="x_messages_restored">messages restored...</string>
|
<string name="x_messages_restored">messages restored...</string>
|
||||||
|
<string name="err_no_connection">No connection available, please ensure you have a valid data connection.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -166,4 +166,5 @@
|
|||||||
<string name="err_sync_get_smslist">Erreur #1: Données invalides reçues lors de l\'obtention des messages précédents.</string>
|
<string name="err_sync_get_smslist">Erreur #1: Données invalides reçues lors de l\'obtention des messages précédents.</string>
|
||||||
<string name="error_make_default_sms_app">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.</string>
|
<string name="error_make_default_sms_app">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.</string>
|
||||||
<string name="x_messages_restored">messages restaurés...</string>
|
<string name="x_messages_restored">messages restaurés...</string>
|
||||||
|
<string name="err_no_connection">Aucune connexion disponible, assurez voir d\'avoir une connection de données valide.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -253,4 +253,5 @@
|
|||||||
<string name="err_kitkat_required">Android 4.4 or greater is required to use this feature.</string>
|
<string name="err_kitkat_required">Android 4.4 or greater is required to use this feature.</string>
|
||||||
<string name="restore_finished">SMS restauration is now finished.</string>
|
<string name="restore_finished">SMS restauration is now finished.</string>
|
||||||
<string name="x_messages_restored">messages restored...</string>
|
<string name="x_messages_restored">messages restored...</string>
|
||||||
|
<string name="err_no_connection">No connection available, please ensure you have a valid data connection.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user