mirror of
				https://github.com/nerzhul/ownCloud-SMS-App.git
				synced 2025-10-31 10:27:21 +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"); |  | ||||||
| 
 |  | ||||||
| 				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() { | 	private void errorNotification(int err) { | ||||||
| 		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