Added warning dialog if no root permissions, work around dialogs being shown more than once.
This commit is contained in:
parent
95b26b80d4
commit
6f935dc672
2 changed files with 50 additions and 21 deletions
|
@ -8,6 +8,8 @@ import android.widget.ListView;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import eu.chainfire.libsuperuser.Shell;
|
||||||
|
|
||||||
public class MainActivity extends ListActivity {
|
public class MainActivity extends ListActivity {
|
||||||
|
|
||||||
private ListView mListView;
|
private ListView mListView;
|
||||||
|
@ -18,6 +20,10 @@ public class MainActivity extends ListActivity {
|
||||||
|
|
||||||
private MovedCertificatesStorage mMovedCertificatesStorage;
|
private MovedCertificatesStorage mMovedCertificatesStorage;
|
||||||
|
|
||||||
|
private AlertDialog mNoRootDialog;
|
||||||
|
|
||||||
|
private AlertDialog mMoveCertificatesDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets up ListView showing all certificates.
|
* Sets up ListView showing all certificates.
|
||||||
*/
|
*/
|
||||||
|
@ -33,6 +39,37 @@ public class MainActivity extends ListActivity {
|
||||||
mCertificateAdapter.onCertificateChanged();
|
mCertificateAdapter.onCertificateChanged();
|
||||||
mCertificateManager.setOnCertificateChangedListener(mCertificateAdapter);
|
mCertificateManager.setOnCertificateChangedListener(mCertificateAdapter);
|
||||||
mListView.setAdapter(mCertificateAdapter);
|
mListView.setAdapter(mCertificateAdapter);
|
||||||
|
|
||||||
|
mMoveCertificatesDialog = new AlertDialog.Builder(this)
|
||||||
|
.setTitle(R.string.dialog_move_certs_title)
|
||||||
|
.setMessage(R.string.dialog_move_certs_message)
|
||||||
|
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
for (Certificate c : mCertificateManager.getCertificates(false)) {
|
||||||
|
c = mCertificateManager.moveCertificateToSystem(c);
|
||||||
|
mMovedCertificatesStorage.insert(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton(android.R.string.no, null)
|
||||||
|
.create();
|
||||||
|
|
||||||
|
mNoRootDialog = new AlertDialog.Builder(this)
|
||||||
|
.setTitle(R.string.dialog_no_root_title)
|
||||||
|
.setMessage(R.string.dialog_no_root_message)
|
||||||
|
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,28 +79,16 @@ public class MainActivity extends ListActivity {
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
|
// Make sure the list is updated in case of external changes.
|
||||||
mCertificateAdapter.onCertificateChanged();
|
mCertificateAdapter.onCertificateChanged();
|
||||||
final List<Certificate> list = mCertificateManager.getCertificates(false);
|
|
||||||
if (!list.isEmpty()) {
|
if (!Shell.SU.available()) {
|
||||||
new AlertDialog.Builder(this)
|
mNoRootDialog.show();
|
||||||
.setTitle(R.string.dialog_move_certs_title)
|
return;
|
||||||
.setMessage(R.string.dialog_move_certs_message)
|
|
||||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
new Thread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
for (Certificate c : list) {
|
|
||||||
c = mCertificateManager.moveCertificateToSystem(c);
|
|
||||||
mMovedCertificatesStorage.insert(c);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}).start();
|
if (!mCertificateManager.getCertificates(false).isEmpty()) {
|
||||||
}
|
mMoveCertificatesDialog.show();
|
||||||
})
|
|
||||||
.setNegativeButton(android.R.string.no, null)
|
|
||||||
.show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,4 +11,8 @@
|
||||||
|
|
||||||
<string name="delete">Delete</string>
|
<string name="delete">Delete</string>
|
||||||
|
|
||||||
|
<string name="dialog_no_root_title">No root permissions</string>
|
||||||
|
|
||||||
|
<string name="dialog_no_root_message">This app requires root access to work. Make sure your device is rooted and try again.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Reference in a new issue