Prepares layout + fixes attribute in API

This commit is contained in:
stom79 2017-12-17 10:09:16 +01:00
parent 15fe273fb3
commit 469d485ab3
7 changed files with 97 additions and 6 deletions

View File

@ -91,6 +91,8 @@ import fr.gouv.etalab.mastodon.interfaces.OnRetrieveFeedsAccountInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveFeedsInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface;
import fr.gouv.etalab.mastodon.client.Entities.Relationship;
import static fr.gouv.etalab.mastodon.helper.Helper.THEME_DARK;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
import static fr.gouv.etalab.mastodon.helper.Helper.withSuffix;
@ -494,6 +496,23 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
startActivity(intent);
}
});
//This account was moved to another one
if( account.getMoved_to_account() != null){
TextView account_moved = findViewById(R.id.account_moved);
account_moved.setVisibility(View.VISIBLE);
if( theme == THEME_DARK)
changeDrawableColor(ShowAccountActivity.this, R.drawable.ic_card_travel,R.color.dark_icon);
else
changeDrawableColor(ShowAccountActivity.this, R.drawable.ic_card_travel,R.color.black);
Drawable imgTravel = ContextCompat.getDrawable(ShowAccountActivity.this, R.drawable.ic_card_travel);
assert imgTravel != null;
imgTravel.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (20 * scale + 0.5f));
account_moved.setCompoundDrawables(imgTravel, null, null, null);
//Retrieves content and make account names clickable
SpannableString spannableString = account.moveToText(ShowAccountActivity.this);
account_moved.setText(spannableString, TextView.BufferType.SPANNABLE);
}
if( account.getAcct().contains("@") )
warning_message.setVisibility(View.VISIBLE);
else

View File

@ -1752,8 +1752,8 @@ public class API {
account.setStatuses_count(Integer.valueOf(resobj.get("statuses_count").toString()));
account.setNote(resobj.get("note").toString());
try{
account.setMoved_to_account(parseAccountResponse(context, resobj.getJSONObject("moved_to_account")));
}catch (Exception ignored){}
account.setMoved_to_account(parseAccountResponse(context, resobj.getJSONObject("moved")));
}catch (Exception ignored){ignored.printStackTrace();}
account.setUrl(resobj.get("url").toString());
account.setAvatar(resobj.get("avatar").toString());
account.setAvatar_static(resobj.get("avatar_static").toString());

View File

@ -14,12 +14,22 @@
* see <http://www.gnu.org/licenses>. */
package fr.gouv.etalab.mastodon.client.Entities;
import android.content.*;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.style.ClickableSpan;
import android.view.View;
import java.io.Serializable;
import java.util.Date;
import fr.gouv.etalab.mastodon.R;
import fr.gouv.etalab.mastodon.activities.ShowAccountActivity;
/**
* Created by Thomas on 23/04/2017.
* Manage accounts
@ -52,6 +62,7 @@ public class Account implements Parcelable {
private boolean isMakingAction = false;
private Account moved_to_account;
public followAction getFollowType() {
return followType;
}
@ -313,4 +324,36 @@ public class Account implements Parcelable {
public void setStatuses_count_str(String statuses_count_str) {
this.statuses_count_str = statuses_count_str;
}
/**
* Makes the move to account clickable
* @param context Context
* @return SpannableString
*/
public SpannableString moveToText(final android.content.Context context){
SpannableString spannableString = null;
if( this.getMoved_to_account() != null) {
spannableString = new SpannableString(context.getString(R.string.account_moved_to, this.getAcct(), "@"+this.getMoved_to_account().getAcct()));
int startPositionTar = spannableString.toString().indexOf("@"+this.getMoved_to_account().getAcct());
int endPositionTar = startPositionTar + ("@"+this.getMoved_to_account().getAcct()).length();
final String idTar = this.getMoved_to_account().getId();
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(View textView) {
Intent intent = new Intent(context, ShowAccountActivity.class);
Bundle b = new Bundle();
b.putString("accountId", idTar);
intent.putExtras(b);
context.startActivity(intent);
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
}
},
startPositionTar, endPositionTar,
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}
return spannableString;
}
}

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M20,6h-3L17,4c0,-1.11 -0.89,-2 -2,-2L9,2c-1.11,0 -2,0.89 -2,2v2L4,6c-1.11,0 -2,0.89 -2,2v11c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,8c0,-1.11 -0.89,-2 -2,-2zM9,4h6v2L9,6L9,4zM20,19L4,19v-2h16v2zM20,14L4,14L4,8h3v2h2L9,8h6v2h2L17,8h3v6z"/>
</vector>

View File

@ -186,6 +186,16 @@
android:layout_height="wrap_content"
/>
</LinearLayout>
<TextView
android:layout_marginTop="5dp"
android:textSize="16sp"
android:drawablePadding="4dp"
android:visibility="gone"
android:id="@+id/account_moved"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>

View File

@ -120,14 +120,15 @@
android:gravity="center"
android:orientation="horizontal"
android:layout_height="wrap_content"
>
android:baselineAligned="false">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
tools:ignore="UselessParent">
<TextView
android:id="@+id/account_dn"
android:textColor="@color/mastodonC4"
@ -150,7 +151,6 @@
android:textSize="14sp"
android:layout_height="wrap_content"
/>
</LinearLayout>
<LinearLayout
@ -183,6 +183,16 @@
android:layout_height="wrap_content"
/>
</LinearLayout>
<TextView
android:layout_marginTop="5dp"
android:textSize="16sp"
android:visibility="gone"
android:drawablePadding="4dp"
android:id="@+id/account_moved"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>

View File

@ -465,5 +465,5 @@
<string name="action_lists_owner">Your lists</string>
<!-- Migration -->
<string name="account_moved_to">%1$s has moved to: %2$s</string>
<string name="account_moved_to">%1$s has moved to %2$s</string>
</resources>