Apply changes

This commit is contained in:
tom79 2019-06-22 14:49:50 +02:00
parent ffdd76f873
commit a1dc8ad4c6
2 changed files with 87 additions and 5 deletions

View File

@ -20,6 +20,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.PorterDuff;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
@ -36,6 +37,7 @@ import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -54,18 +56,22 @@ import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnAdminActionInterface;
import es.dmoral.toasty.Toasty;
import static app.fedilab.android.client.API.adminAction.APPROVE;
import static app.fedilab.android.client.API.adminAction.DISABLE;
import static app.fedilab.android.client.API.adminAction.NONE;
import static app.fedilab.android.client.API.adminAction.REJECT;
import static app.fedilab.android.client.API.adminAction.SILENCE;
import static app.fedilab.android.client.API.adminAction.SUSPEND;
public class AccountReportActivity extends BaseActivity implements OnAdminActionInterface {
TextView permissions, username, email, email_status, login_status, joined, recent_ip, comment_label;
Button warn, disable, silence, suspend;
Button warn, disable, silence, suspend, allow, reject, assign, status;
private String account_id;
private CheckBox email_user;
private EditText comment;
private Report report;
private Group allow_reject_group;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -73,7 +79,7 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
setTheme(R.style.AppAdminTheme);
Report report = null;
report = null;
AccountAdmin targeted_account = null;
Bundle b = getIntent().getExtras();
if (b != null) {
@ -107,6 +113,14 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
disable = findViewById(R.id.disable);
silence = findViewById(R.id.silence);
suspend = findViewById(R.id.suspend);
allow = findViewById(R.id.allow);
reject = findViewById(R.id.reject);
status = findViewById(R.id.status);
assign = findViewById(R.id.assign);
allow_reject_group = findViewById(R.id.allow_reject_group);
allow_reject_group.setVisibility(View.GONE);
allow.getBackground().setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.green_1), PorterDuff.Mode.MULTIPLY);
reject.getBackground().setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.red_1), PorterDuff.Mode.MULTIPLY);
comment_label = findViewById(R.id.comment_label);
permissions = findViewById(R.id.permissions);
username = findViewById(R.id.username);
@ -123,7 +137,8 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
Toasty.error(getApplicationContext(), getString(R.string.toast_error), Toast.LENGTH_LONG).show();
finish();
}
assign.setVisibility(View.GONE);
status.setVisibility(View.GONE);
if( account_id != null){
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.GET_ONE_ACCOUNT, account_id, null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
return;
@ -176,9 +191,13 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
}
return;
}
if( apiResponse.getAccountAdmins() != null && apiResponse.getAccountAdmins().size() > 0) {
if( apiResponse.getReports() != null && apiResponse.getReports().size() > 0){
report = apiResponse.getReports().get(0);
fillReport(apiResponse.getAccountAdmins().get(0));
} else if( apiResponse.getAccountAdmins() != null && apiResponse.getAccountAdmins().size() > 0) {
fillReport(apiResponse.getAccountAdmins().get(0));
}
}
private void fillReport(AccountAdmin accountAdmin){
@ -187,6 +206,21 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
Toasty.error(getApplicationContext(), getString(R.string.toast_error), Toast.LENGTH_LONG).show();
return;
}
if(!accountAdmin.isConfirmed()){
allow_reject_group.setVisibility(View.VISIBLE);
}
reject.setOnClickListener(view->{
AdminAction adminAction = new AdminAction();
adminAction.setType(REJECT);
new PostAdminActionAsyncTask(getApplicationContext(), REJECT, account_id, adminAction, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
});
allow.setOnClickListener(view->{
AdminAction adminAction = new AdminAction();
adminAction.setType(APPROVE);
new PostAdminActionAsyncTask(getApplicationContext(), APPROVE, account_id, adminAction, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
});
warn.setOnClickListener(view->{
AdminAction adminAction = new AdminAction();
@ -230,7 +264,6 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.ENABLE, account_id, null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
if( !accountAdmin.isSuspended() ) {
suspend.setText(getString(R.string.suspend));
}else{
@ -248,6 +281,7 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
}
});
if( accountAdmin.getAction() != null) {
String message = null;
switch (accountAdmin.getAction()) {
@ -272,6 +306,14 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
case NONE:
message = getString(R.string.account_warned);
break;
case APPROVE:
allow_reject_group.setVisibility(View.GONE);
message = getString(R.string.account_approved);
break;
case REJECT:
allow_reject_group.setVisibility(View.GONE);
message = getString(R.string.account_rejected);
break;
}
if( message != null){
Toasty.success(getApplicationContext(), message, Toast.LENGTH_LONG).show();
@ -344,5 +386,39 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
joined.setText(Helper.dateToString(accountAdmin.getCreated_at()));
if( report != null){
assign.setVisibility(View.VISIBLE);
status.setVisibility(View.VISIBLE);
if( report.getAssigned_account() == null){
assign.setText(getString(R.string.assign_to_me));
}else{
assign.setText(getString(R.string.unassign));
}
assign.setOnClickListener(view ->{
if( report.getAssigned_account() == null){
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.ASSIGN_TO_SELF, report.getId(), null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}else{
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.UNASSIGN, report.getId(), null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
if( report.isAction_taken()){
status.setText(getString(R.string.mark_unresolved));
}else{
status.setText(getString(R.string.mark_resolved));
}
status.setOnClickListener(view ->{
if( report.isAction_taken() ){
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.REOPEN, report.getId(), null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}else{
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.RESOLVE, report.getId(), null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
}else{
assign.setVisibility(View.GONE);
status.setVisibility(View.GONE);
}
}
}

View File

@ -1073,6 +1073,12 @@
<string name="set_display_admin_menu">Display the admin menu</string>
<string name="set_display_admin_toot">Display the admin feature in statuses</string>
<string name="allow">Allow</string>
<string name="account_approved">The account is approved!</string>
<string name="account_rejected">The account is rejected!</string>
<string name="assign_to_me">Assign to me</string>
<string name="unassign">Unassign</string>
<string name="mark_resolved">Mark as resolved</string>
<string name="mark_unresolved">Mark as unresolved</string>
<plurals name="number_of_vote">
<item quantity="one">%d vote</item>
<item quantity="other">%d votes</item>