Fix an issue when parsing

This commit is contained in:
tom79 2019-06-19 18:42:07 +02:00
parent fb107e6274
commit eb6a87c776
4 changed files with 75 additions and 58 deletions

View File

@ -5050,22 +5050,24 @@ public class API {
Report report = new Report();
try {
report.setId(resobj.getString("id"));
report.setAction_taken(resobj.getString("action_taken"));
report.setAction_taken(resobj.getBoolean("action_taken"));
report.setComment(resobj.getString("comment"));
report.setCreated_at(Helper.mstStringToDate(context, resobj.getString("created_at")));
report.setUpdated_at(Helper.mstStringToDate(context, resobj.getString("updated_at")));
if( !resobj.isNull("account")) {
report.setAccount(parseAccountResponse(context, resobj.getJSONObject("account")));
report.setAccount(parseAccountAdminResponse(context, resobj.getJSONObject("account")));
}
if( !resobj.isNull("target_account")) {
report.setTarget_account(parseAccountResponse(context, resobj.getJSONObject("target_account")));
report.setTarget_account(parseAccountAdminResponse(context, resobj.getJSONObject("target_account")));
}
if( !resobj.isNull("assigned_account")) {
report.setAssigned_account(parseAccountResponse(context, resobj.getJSONObject("assigned_account")));
report.setAssigned_account(parseAccountAdminResponse(context, resobj.getJSONObject("assigned_account")));
}
if( !resobj.isNull("action_taken_by_account")) {
report.setAction_taken_by_account(parseAccountAdminResponse(context, resobj.getJSONObject("action_taken_by_account")));
}
report.setAction_taken_by_account_id(resobj.getString("action_taken_by_account_id"));
report.setStatuses(parseStatuses(context, resobj.getJSONArray("statuses")));
}catch (Exception ignored){}
}catch (Exception ignored){ignored.printStackTrace();}
return report;
}
@ -5107,11 +5109,27 @@ public class API {
accountAdmin.setEmail(resobj.getString("email"));
accountAdmin.setRole(resobj.getString("role"));
accountAdmin.setIp(resobj.getString("ip"));
accountAdmin.setConfirmed(resobj.getBoolean("confirmed"));
accountAdmin.setSuspended(resobj.getBoolean("suspended"));
accountAdmin.setSilenced(resobj.getBoolean("silenced"));
accountAdmin.setDisabled(resobj.getBoolean("disabled"));
accountAdmin.setAccount(parseAccountResponse(context, resobj.getJSONObject("account")));
if( !resobj.isNull("confirmed")) {
accountAdmin.setConfirmed(resobj.getBoolean("confirmed"));
}else{
accountAdmin.setConfirmed(true);
}
if( !resobj.isNull("suspended")) {
accountAdmin.setSuspended(resobj.getBoolean("suspended"));
}else{
accountAdmin.setSuspended(false);
}
if( !resobj.isNull("silenced")) {
accountAdmin.setSilenced(resobj.getBoolean("silenced"));
}else{
accountAdmin.setSilenced(false);
}
if( !resobj.isNull("disabled")) {
accountAdmin.setDisabled(resobj.getBoolean("disabled"));
}else{
accountAdmin.setDisabled(false);
}
}catch (Exception ignored){}
return accountAdmin;
}

View File

@ -24,14 +24,14 @@ import java.util.List;
public class Report implements Parcelable {
private String id;
private String action_taken;
private boolean action_taken;
private String comment;
private Date created_at;
private Date updated_at;
private Account account;
private Account target_account;
private Account assigned_account;
private String action_taken_by_account_id;
private AccountAdmin account;
private AccountAdmin target_account;
private AccountAdmin assigned_account;
private AccountAdmin action_taken_by_account;
private List<Status> statuses;
@ -43,13 +43,6 @@ public class Report implements Parcelable {
this.id = id;
}
public String getAction_taken() {
return action_taken;
}
public void setAction_taken(String action_taken) {
this.action_taken = action_taken;
}
public String getComment() {
return comment;
@ -75,15 +68,6 @@ public class Report implements Parcelable {
this.updated_at = updated_at;
}
public String getAction_taken_by_account_id() {
return action_taken_by_account_id;
}
public void setAction_taken_by_account_id(String action_taken_by_account_id) {
this.action_taken_by_account_id = action_taken_by_account_id;
}
public List<Status> getStatuses() {
return statuses;
}
@ -96,30 +80,46 @@ public class Report implements Parcelable {
public Report() {
}
public Account getAccount() {
public AccountAdmin getAccount() {
return account;
}
public void setAccount(Account account) {
public void setAccount(AccountAdmin account) {
this.account = account;
}
public Account getTarget_account() {
public AccountAdmin getTarget_account() {
return target_account;
}
public void setTarget_account(Account target_account) {
public void setTarget_account(AccountAdmin target_account) {
this.target_account = target_account;
}
public Account getAssigned_account() {
public AccountAdmin getAssigned_account() {
return assigned_account;
}
public void setAssigned_account(Account assigned_account) {
public void setAssigned_account(AccountAdmin assigned_account) {
this.assigned_account = assigned_account;
}
public boolean isAction_taken() {
return action_taken;
}
public void setAction_taken(boolean action_taken) {
this.action_taken = action_taken;
}
public AccountAdmin getAction_taken_by_account() {
return action_taken_by_account;
}
public void setAction_taken_by_account(AccountAdmin action_taken_by_account) {
this.action_taken_by_account = action_taken_by_account;
}
@Override
public int describeContents() {
return 0;
@ -128,29 +128,29 @@ public class Report implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.id);
dest.writeString(this.action_taken);
dest.writeByte(this.action_taken ? (byte) 1 : (byte) 0);
dest.writeString(this.comment);
dest.writeLong(this.created_at != null ? this.created_at.getTime() : -1);
dest.writeLong(this.updated_at != null ? this.updated_at.getTime() : -1);
dest.writeParcelable(this.account, flags);
dest.writeParcelable(this.target_account, flags);
dest.writeParcelable(this.assigned_account, flags);
dest.writeString(this.action_taken_by_account_id);
dest.writeParcelable(this.action_taken_by_account, flags);
dest.writeTypedList(this.statuses);
}
protected Report(Parcel in) {
this.id = in.readString();
this.action_taken = in.readString();
this.action_taken = in.readByte() != 0;
this.comment = in.readString();
long tmpCreated_at = in.readLong();
this.created_at = tmpCreated_at == -1 ? null : new Date(tmpCreated_at);
long tmpUpdated_at = in.readLong();
this.updated_at = tmpUpdated_at == -1 ? null : new Date(tmpUpdated_at);
this.account = in.readParcelable(Account.class.getClassLoader());
this.target_account = in.readParcelable(Account.class.getClassLoader());
this.assigned_account = in.readParcelable(Account.class.getClassLoader());
this.action_taken_by_account_id = in.readString();
this.account = in.readParcelable(AccountAdmin.class.getClassLoader());
this.target_account = in.readParcelable(AccountAdmin.class.getClassLoader());
this.assigned_account = in.readParcelable(AccountAdmin.class.getClassLoader());
this.action_taken_by_account = in.readParcelable(AccountAdmin.class.getClassLoader());
this.statuses = in.createTypedArrayList(Status.CREATOR);
}

View File

@ -15,9 +15,6 @@ package app.fedilab.android.drawers;
* see <http://www.gnu.org/licenses>. */
import android.content.Context;
import android.os.Build;
import android.text.Html;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -28,7 +25,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import app.fedilab.android.R;
@ -72,12 +68,12 @@ public class ReportsListAdapter extends RecyclerView.Adapter implements OnRetrie
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
final ReportsListAdapter.ViewHolder holder = (ReportsListAdapter.ViewHolder) viewHolder;
Report report = reports.get(position);
Account account = report.getAccount();
Account target_account = report.getTarget_account();
Account account = report.getAccount().getAccount();
Account target_account = report.getTarget_account().getAccount();
account.makeAccountNameEmoji(context, ReportsListAdapter.this, account);
target_account.makeAccountNameEmoji(context, ReportsListAdapter.this, target_account);
/*account.makeAccountNameEmoji(context, ReportsListAdapter.this, account);
target_account.makeAccountNameEmoji(context, ReportsListAdapter.this, target_account);*/
if( account.getdisplayNameSpan() == null || account.getdisplayNameSpan().toString().trim().equals("")) {
if( account.getDisplay_name() != null && !account.getDisplay_name().trim().equals(""))
holder.account_dn_reporter.setText(Helper.shortnameToUnicode(account.getDisplay_name(), true));
@ -95,7 +91,8 @@ public class ReportsListAdapter extends RecyclerView.Adapter implements OnRetrie
holder.account_dn.setText( target_account.getdisplayNameSpan(), TextView.BufferType.SPANNABLE);
Helper.loadGiF(context, account.getAvatar(), holder.account_pp);
Helper.loadGiF(context, target_account.getAvatar(), holder.account_pp);
Helper.loadGiF(context, account.getAvatar(), holder.account_pp_reporter);
holder.account_un.setText(String.format("@%s",account.getUsername()));
holder.account_ac.setText(account.getAcct());
@ -104,7 +101,7 @@ public class ReportsListAdapter extends RecyclerView.Adapter implements OnRetrie
else
holder.account_ac.setVisibility(View.VISIBLE);
holder.report_action_taken.setText(report.getAction_taken());
holder.report_comment.setText(report.getComment());
}
@ -148,7 +145,7 @@ public class ReportsListAdapter extends RecyclerView.Adapter implements OnRetrie
TextView account_ac;
TextView account_dn, account_dn_reporter;
TextView account_un;
TextView report_action_taken;
TextView report_comment;
LinearLayout account_container;
@ -160,7 +157,7 @@ public class ReportsListAdapter extends RecyclerView.Adapter implements OnRetrie
account_dn_reporter = itemView.findViewById(R.id.account_dn_reporter);
account_ac = itemView.findViewById(R.id.account_ac);
account_un = itemView.findViewById(R.id.account_un);
report_action_taken = itemView.findViewById(R.id.report_action_taken);
report_comment = itemView.findViewById(R.id.report_comment);
account_container = itemView.findViewById(R.id.account_container);
}
}

View File

@ -70,6 +70,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
@ -79,6 +80,7 @@
android:layout_height="40dp"
android:contentDescription="@string/profile_picture"/>
<TextView
android:layout_marginStart="10dp"
android:id="@+id/account_dn_reporter"
android:maxLines="1"
android:layout_width="80dp"
@ -86,9 +88,9 @@
android:textSize="18sp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:visibility="gone"
android:id="@+id/report_action_taken"
android:id="@+id/report_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>