Loading app/src/main/AndroidManifest.xml +5 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,11 @@ android:name=".activities.AdminAccountActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/account" /> <activity android:name=".activities.AccountReportActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/account" android:theme="@style/AppThemeBar" /> <activity android:name=".activities.AdminReportActivity" android:configChanges="keyboardHidden|orientation|screenSize" Loading app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java +13 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import android.app.Activity; import android.graphics.PorterDuff; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; Loading @@ -31,7 +32,7 @@ import java.util.ArrayList; import app.fedilab.android.R; import app.fedilab.android.client.entities.api.AdminAccount; import app.fedilab.android.client.entities.api.Report; import app.fedilab.android.client.entities.api.AdminReport; import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.ActivityAdminReportBinding; import app.fedilab.android.helper.Helper; Loading @@ -44,7 +45,7 @@ public class AccountReportActivity extends BaseActivity { private String account_id; private Report report; private AdminReport report; private ActivityAdminReportBinding binding; private AdminVM adminVM; Loading @@ -66,7 +67,7 @@ public class AccountReportActivity extends BaseActivity { if (b != null) { account_id = b.getString(Helper.ARG_ACCOUNT_ID, null); targeted_account = (AdminAccount) b.getSerializable(Helper.ARG_ACCOUNT); report = (Report) b.getSerializable(Helper.ARG_REPORT); report = (AdminReport) b.getSerializable(Helper.ARG_REPORT); } Loading Loading @@ -330,6 +331,15 @@ public class AccountReportActivity extends BaseActivity { } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } public enum actionType { ENABLE, APPROVE, Loading app/src/main/java/app/fedilab/android/activities/AdminActionActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import app.fedilab.android.ui.fragment.admin.FragmentAdminReport; public class AdminActionActivity extends BaseActivity { public static Boolean local = true, remote = true, active = true, pending = true, disabled = true, silenced = true, suspended = true, staff = null, orderByMostRecent = true; public static Boolean resolved = false, reportLocal = true, reportRemote = true; public static Boolean resolved = null, reportLocal = true, reportRemote = true; private ActivityAdminActionsBinding binding; private boolean canGoBack; private FragmentAdminReport fragmentAdminReport; Loading Loading @@ -227,7 +227,7 @@ public class AdminActionActivity extends BaseActivity { if (checkedId == R.id.status_resolved) { resolved = true; } else if (checkedId == R.id.status_unresolved) { resolved = false; resolved = null; } }); if (reportLocal != null && reportRemote == null) { Loading app/src/main/java/app/fedilab/android/client/entities/api/AdminReport.java +4 −4 Original line number Diff line number Diff line Loading @@ -25,13 +25,13 @@ public class AdminReport implements Serializable { @SerializedName("id") public String id; @SerializedName("account") public Account account; public AdminAccount account; @SerializedName("action_taken") public String action_taken; public Boolean action_taken; @SerializedName("action_taken_by_account") public String action_taken_by_account; @SerializedName("assigned_account") public Account assigned_account; public AdminAccount assigned_account; @SerializedName("category") public String category; @SerializedName("comment") Loading @@ -39,7 +39,7 @@ public class AdminReport implements Serializable { @SerializedName("created_at") public Date created_at; @SerializedName("target_account") public Account target_account; public AdminAccount target_account; @SerializedName("statuses") public List<Status> statuses; @SerializedName("rules") Loading app/src/main/java/app/fedilab/android/ui/drawer/ReportAdapter.java 0 → 100644 +123 −0 Original line number Diff line number Diff line package app.fedilab.android.ui.drawer; /* Copyright 2022 Thomas Schneider * * This file is a part of Fedilab * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 3 of the * License, or (at your option) any later version. * * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import org.jetbrains.annotations.NotNull; import java.lang.ref.WeakReference; import java.util.List; import app.fedilab.android.activities.AccountReportActivity; import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.client.entities.api.AdminReport; import app.fedilab.android.databinding.DrawerReportBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; public class ReportAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final List<AdminReport> reports; private Context context; public ReportAdapter(List<AdminReport> reports) { this.reports = reports; } @NotNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { context = parent.getContext(); DrawerReportBinding itemBinding = DrawerReportBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); return new ReportViewHolder(itemBinding); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { ReportViewHolder holder = (ReportViewHolder) viewHolder; AdminReport report = reports.get(position); Account account = report.account.account; Account target_account = report.target_account.account; if (account.display_name == null || account.display_name.trim().equals("")) { if (account.display_name != null && !account.display_name.trim().equals("")) holder.binding.accountDnReporter.setText(account.display_name); else holder.binding.accountDnReporter.setText(account.username.replace("@", "")); } else holder.binding.accountDnReporter.setText(account.display_name, TextView.BufferType.SPANNABLE); holder.binding.accountDn.setText( report.account.account.getSpanDisplayName(context, new WeakReference<>(holder.binding.accountDn)), TextView.BufferType.SPANNABLE); MastodonHelper.loadPPMastodon(holder.binding.accountPp, target_account); MastodonHelper.loadPPMastodon(holder.binding.accountPpReporter, account); if (target_account.acct != null) { holder.binding.accountAc.setText(target_account.acct); } holder.binding.reportComment.setText(report.comment); if (report.statuses != null) { holder.binding.reportNumberStatus.setText(String.valueOf(report.statuses.size())); } else { holder.binding.reportNumberStatus.setText("0"); } holder.binding.mainContainer.setOnClickListener(view -> { Intent intent = new Intent(context, AccountReportActivity.class); Bundle b = new Bundle(); b.putSerializable(Helper.ARG_REPORT, report); intent.putExtras(b); context.startActivity(intent); }); } @Override public long getItemId(int position) { return position; } @Override public int getItemCount() { return reports.size(); } public static class ReportViewHolder extends RecyclerView.ViewHolder { DrawerReportBinding binding; ReportViewHolder(DrawerReportBinding itemView) { super(itemView.getRoot()); binding = itemView; } } } No newline at end of file Loading
app/src/main/AndroidManifest.xml +5 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,11 @@ android:name=".activities.AdminAccountActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/account" /> <activity android:name=".activities.AccountReportActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/account" android:theme="@style/AppThemeBar" /> <activity android:name=".activities.AdminReportActivity" android:configChanges="keyboardHidden|orientation|screenSize" Loading
app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java +13 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import android.app.Activity; import android.graphics.PorterDuff; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; Loading @@ -31,7 +32,7 @@ import java.util.ArrayList; import app.fedilab.android.R; import app.fedilab.android.client.entities.api.AdminAccount; import app.fedilab.android.client.entities.api.Report; import app.fedilab.android.client.entities.api.AdminReport; import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.ActivityAdminReportBinding; import app.fedilab.android.helper.Helper; Loading @@ -44,7 +45,7 @@ public class AccountReportActivity extends BaseActivity { private String account_id; private Report report; private AdminReport report; private ActivityAdminReportBinding binding; private AdminVM adminVM; Loading @@ -66,7 +67,7 @@ public class AccountReportActivity extends BaseActivity { if (b != null) { account_id = b.getString(Helper.ARG_ACCOUNT_ID, null); targeted_account = (AdminAccount) b.getSerializable(Helper.ARG_ACCOUNT); report = (Report) b.getSerializable(Helper.ARG_REPORT); report = (AdminReport) b.getSerializable(Helper.ARG_REPORT); } Loading Loading @@ -330,6 +331,15 @@ public class AccountReportActivity extends BaseActivity { } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } public enum actionType { ENABLE, APPROVE, Loading
app/src/main/java/app/fedilab/android/activities/AdminActionActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import app.fedilab.android.ui.fragment.admin.FragmentAdminReport; public class AdminActionActivity extends BaseActivity { public static Boolean local = true, remote = true, active = true, pending = true, disabled = true, silenced = true, suspended = true, staff = null, orderByMostRecent = true; public static Boolean resolved = false, reportLocal = true, reportRemote = true; public static Boolean resolved = null, reportLocal = true, reportRemote = true; private ActivityAdminActionsBinding binding; private boolean canGoBack; private FragmentAdminReport fragmentAdminReport; Loading Loading @@ -227,7 +227,7 @@ public class AdminActionActivity extends BaseActivity { if (checkedId == R.id.status_resolved) { resolved = true; } else if (checkedId == R.id.status_unresolved) { resolved = false; resolved = null; } }); if (reportLocal != null && reportRemote == null) { Loading
app/src/main/java/app/fedilab/android/client/entities/api/AdminReport.java +4 −4 Original line number Diff line number Diff line Loading @@ -25,13 +25,13 @@ public class AdminReport implements Serializable { @SerializedName("id") public String id; @SerializedName("account") public Account account; public AdminAccount account; @SerializedName("action_taken") public String action_taken; public Boolean action_taken; @SerializedName("action_taken_by_account") public String action_taken_by_account; @SerializedName("assigned_account") public Account assigned_account; public AdminAccount assigned_account; @SerializedName("category") public String category; @SerializedName("comment") Loading @@ -39,7 +39,7 @@ public class AdminReport implements Serializable { @SerializedName("created_at") public Date created_at; @SerializedName("target_account") public Account target_account; public AdminAccount target_account; @SerializedName("statuses") public List<Status> statuses; @SerializedName("rules") Loading
app/src/main/java/app/fedilab/android/ui/drawer/ReportAdapter.java 0 → 100644 +123 −0 Original line number Diff line number Diff line package app.fedilab.android.ui.drawer; /* Copyright 2022 Thomas Schneider * * This file is a part of Fedilab * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 3 of the * License, or (at your option) any later version. * * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import org.jetbrains.annotations.NotNull; import java.lang.ref.WeakReference; import java.util.List; import app.fedilab.android.activities.AccountReportActivity; import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.client.entities.api.AdminReport; import app.fedilab.android.databinding.DrawerReportBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; public class ReportAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final List<AdminReport> reports; private Context context; public ReportAdapter(List<AdminReport> reports) { this.reports = reports; } @NotNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) { context = parent.getContext(); DrawerReportBinding itemBinding = DrawerReportBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); return new ReportViewHolder(itemBinding); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { ReportViewHolder holder = (ReportViewHolder) viewHolder; AdminReport report = reports.get(position); Account account = report.account.account; Account target_account = report.target_account.account; if (account.display_name == null || account.display_name.trim().equals("")) { if (account.display_name != null && !account.display_name.trim().equals("")) holder.binding.accountDnReporter.setText(account.display_name); else holder.binding.accountDnReporter.setText(account.username.replace("@", "")); } else holder.binding.accountDnReporter.setText(account.display_name, TextView.BufferType.SPANNABLE); holder.binding.accountDn.setText( report.account.account.getSpanDisplayName(context, new WeakReference<>(holder.binding.accountDn)), TextView.BufferType.SPANNABLE); MastodonHelper.loadPPMastodon(holder.binding.accountPp, target_account); MastodonHelper.loadPPMastodon(holder.binding.accountPpReporter, account); if (target_account.acct != null) { holder.binding.accountAc.setText(target_account.acct); } holder.binding.reportComment.setText(report.comment); if (report.statuses != null) { holder.binding.reportNumberStatus.setText(String.valueOf(report.statuses.size())); } else { holder.binding.reportNumberStatus.setText("0"); } holder.binding.mainContainer.setOnClickListener(view -> { Intent intent = new Intent(context, AccountReportActivity.class); Bundle b = new Bundle(); b.putSerializable(Helper.ARG_REPORT, report); intent.putExtras(b); context.startActivity(intent); }); } @Override public long getItemId(int position) { return position; } @Override public int getItemCount() { return reports.size(); } public static class ReportViewHolder extends RecyclerView.ViewHolder { DrawerReportBinding binding; ReportViewHolder(DrawerReportBinding itemView) { super(itemView.getRoot()); binding = itemView; } } } No newline at end of file