1
0
mirror of https://github.com/nerzhul/ownCloud-SMS-App.git synced 2025-06-10 01:16:15 +00:00

RestoreMessagesActivity: find account to load

+ some fixes
This commit is contained in:
Loic Blot 2016-12-06 23:17:46 +01:00
parent f76de90a6e
commit 80a91635dd
7 changed files with 53 additions and 8 deletions

View File

@ -2,6 +2,7 @@ package fr.unix_experience.owncloud_sms.activities.remote_account;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.ListView; import android.widget.ListView;
@ -38,7 +39,12 @@ public class AccountActionsActivity extends AppCompatListActivity {
case 0: case 0:
Intent intent = new Intent(this, RestoreMessagesActivity.class); Intent intent = new Intent(this, RestoreMessagesActivity.class);
intent.putExtra("account", _accountName); intent.putExtra("account", _accountName);
try {
startActivity(intent); startActivity(intent);
}
catch (IllegalStateException e) {
Log.e(AccountActionsActivity.TAG, e.getMessage());
}
break; break;
default: break; // Unhandled default: break; // Unhandled
} }

View File

@ -1,15 +1,51 @@
package fr.unix_experience.owncloud_sms.activities.remote_account; package fr.unix_experience.owncloud_sms.activities.remote_account;
import android.Manifest;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import fr.unix_experience.owncloud_sms.R; import fr.unix_experience.owncloud_sms.R;
public class RestoreMessagesActivity extends AppCompatActivity { public class RestoreMessagesActivity extends AppCompatActivity {
Account _account = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_restore_messages); setContentView(R.layout.activity_restore_messages);
assert getIntent().getExtras() != null;
String accountName = getIntent().getExtras().getString("account");
// accountName cannot be null, devel error
assert accountName != null;
AccountManager accountManager = AccountManager.get(getBaseContext());
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNTS) != 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)) {
_account = element;
}
}
if (_account == null) {
throw new IllegalStateException(getString(R.string.err_didnt_find_account_restore));
}
}
private static final String TAG = RestoreMessagesActivity.class.getSimpleName();
} }

View File

@ -53,7 +53,7 @@ public interface ASyncSMSSync {
OCSMSNotificationUI.cancel(_context); OCSMSNotificationUI.cancel(_context);
} catch (IllegalStateException e) { // Fail to read account data } catch (IllegalStateException e) { // Fail to read account data
OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error), OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error),
e.toString(), OCSMSNotificationType.SYNC_FAILED.ordinal()); e.getMessage(), OCSMSNotificationType.SYNC_FAILED.ordinal());
} catch (OCSyncException e) { } catch (OCSyncException e) {
Log.e(ASyncSMSSync.TAG, _context.getString(e.getErrorId())); Log.e(ASyncSMSSync.TAG, _context.getString(e.getErrorId()));
OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error), OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error),

View File

@ -55,7 +55,7 @@ class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
OCSMSNotificationUI.cancel(getContext()); OCSMSNotificationUI.cancel(getContext());
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error), OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error),
e.toString(), OCSMSNotificationType.SYNC_FAILED.ordinal()); e.getMessage(), OCSMSNotificationType.SYNC_FAILED.ordinal());
} catch (OCSyncException e) { } catch (OCSyncException e) {
OCSMSNotificationUI.cancel(getContext()); OCSMSNotificationUI.cancel(getContext());
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error), OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error),

View File

@ -174,5 +174,6 @@
<string name="nothing_to_sync">There is nothing to sync.</string> <string name="nothing_to_sync">There is nothing to sync.</string>
<string name="feature_not_already_implemented">This feature is not already implemented and will be available soon.</string> <string name="feature_not_already_implemented">This feature is not already implemented and will be available soon.</string>
<string name="pref_title_minimum_sync_chars">Minimum phonenumber length</string> <string name="pref_title_minimum_sync_chars">Minimum phonenumber length</string>
<string name="err_didnt_find_account_restore">We didn\'t find your account to restore your message, this is a very strange situation.</string>
</resources> </resources>

View File

@ -161,4 +161,5 @@
<string name="nothing_to_sync">Il n\'y a rien à synchroniser.</string> <string name="nothing_to_sync">Il n\'y a rien à synchroniser.</string>
<string name="feature_not_already_implemented">Cette fonctionnalité n\'est pas implémentée mais elle sera disponible bientôt.</string> <string name="feature_not_already_implemented">Cette fonctionnalité n\'est pas implémentée mais elle sera disponible bientôt.</string>
<string name="pref_title_minimum_sync_chars">Longueur minimale du numéro de téléphone</string> <string name="pref_title_minimum_sync_chars">Longueur minimale du numéro de téléphone</string>
<string name="err_didnt_find_account_restore">Nous n\'avons pas retrouvé le compte que nous souhaitions utiliser pour la restauration. Cette situation est vraiment étrange.</string>
</resources> </resources>

View File

@ -246,4 +246,5 @@
<string name="nothing_to_sync">There is nothing to sync.</string> <string name="nothing_to_sync">There is nothing to sync.</string>
<string name="feature_not_already_implemented">This feature is not already implemented and will be available soon.</string> <string name="feature_not_already_implemented">This feature is not already implemented and will be available soon.</string>
<string name="pref_title_minimum_sync_chars">Minimum phonenumber length</string> <string name="pref_title_minimum_sync_chars">Minimum phonenumber length</string>
<string name="err_didnt_find_account_restore">We didn\'t find your account to restore your message, this is a very strange situation.</string>
</resources> </resources>