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.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.PorterDuff;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
@ -36,6 +37,7 @@ import android.widget.Toast;
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBar;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -54,18 +56,22 @@ import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnAdminActionInterface; import app.fedilab.android.interfaces.OnAdminActionInterface;
import es.dmoral.toasty.Toasty; 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.DISABLE;
import static app.fedilab.android.client.API.adminAction.NONE; 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.SILENCE;
import static app.fedilab.android.client.API.adminAction.SUSPEND; import static app.fedilab.android.client.API.adminAction.SUSPEND;
public class AccountReportActivity extends BaseActivity implements OnAdminActionInterface { public class AccountReportActivity extends BaseActivity implements OnAdminActionInterface {
TextView permissions, username, email, email_status, login_status, joined, recent_ip, comment_label; 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 String account_id;
private CheckBox email_user; private CheckBox email_user;
private EditText comment; private EditText comment;
private Report report;
private Group allow_reject_group;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -73,7 +79,7 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
setTheme(R.style.AppAdminTheme); setTheme(R.style.AppAdminTheme);
Report report = null; report = null;
AccountAdmin targeted_account = null; AccountAdmin targeted_account = null;
Bundle b = getIntent().getExtras(); Bundle b = getIntent().getExtras();
if (b != null) { if (b != null) {
@ -107,6 +113,14 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
disable = findViewById(R.id.disable); disable = findViewById(R.id.disable);
silence = findViewById(R.id.silence); silence = findViewById(R.id.silence);
suspend = findViewById(R.id.suspend); 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); comment_label = findViewById(R.id.comment_label);
permissions = findViewById(R.id.permissions); permissions = findViewById(R.id.permissions);
username = findViewById(R.id.username); 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(); Toasty.error(getApplicationContext(), getString(R.string.toast_error), Toast.LENGTH_LONG).show();
finish(); finish();
} }
assign.setVisibility(View.GONE);
status.setVisibility(View.GONE);
if( account_id != null){ if( account_id != null){
new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.GET_ONE_ACCOUNT, account_id, null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.GET_ONE_ACCOUNT, account_id, null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
return; return;
@ -176,9 +191,13 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
} }
return; 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)); fillReport(apiResponse.getAccountAdmins().get(0));
} }
} }
private void fillReport(AccountAdmin accountAdmin){ 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(); Toasty.error(getApplicationContext(), getString(R.string.toast_error), Toast.LENGTH_LONG).show();
return; 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->{ warn.setOnClickListener(view->{
AdminAction adminAction = new AdminAction(); 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); new PostAdminActionAsyncTask(getApplicationContext(), API.adminAction.ENABLE, account_id, null, AccountReportActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} }
}); });
if( !accountAdmin.isSuspended() ) { if( !accountAdmin.isSuspended() ) {
suspend.setText(getString(R.string.suspend)); suspend.setText(getString(R.string.suspend));
}else{ }else{
@ -248,6 +281,7 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
} }
}); });
if( accountAdmin.getAction() != null) { if( accountAdmin.getAction() != null) {
String message = null; String message = null;
switch (accountAdmin.getAction()) { switch (accountAdmin.getAction()) {
@ -272,6 +306,14 @@ public class AccountReportActivity extends BaseActivity implements OnAdminAction
case NONE: case NONE:
message = getString(R.string.account_warned); message = getString(R.string.account_warned);
break; 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){ if( message != null){
Toasty.success(getApplicationContext(), message, Toast.LENGTH_LONG).show(); 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())); 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_menu">Display the admin menu</string>
<string name="set_display_admin_toot">Display the admin feature in statuses</string> <string name="set_display_admin_toot">Display the admin feature in statuses</string>
<string name="allow">Allow</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"> <plurals name="number_of_vote">
<item quantity="one">%d vote</item> <item quantity="one">%d vote</item>
<item quantity="other">%d votes</item> <item quantity="other">%d votes</item>