1
0
mirror of https://github.com/nerzhul/ownCloud-SMS-App.git synced 2026-08-23 06:13:04 +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
@@ -2,6 +2,7 @@ package fr.unix_experience.owncloud_sms.activities.remote_account;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
@@ -38,7 +39,12 @@ public class AccountActionsActivity extends AppCompatListActivity {
case 0:
Intent intent = new Intent(this, RestoreMessagesActivity.class);
intent.putExtra("account", _accountName);
startActivity(intent);
try {
startActivity(intent);
}
catch (IllegalStateException e) {
Log.e(AccountActionsActivity.TAG, e.getMessage());
}
break;
default: break; // Unhandled
}
@@ -1,15 +1,51 @@
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.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import fr.unix_experience.owncloud_sms.R;
public class RestoreMessagesActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_restore_messages);
}
Account _account = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
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();
}