Merge branch 'develop' into pleroma_admin
This commit is contained in:
commit
2c8d0fb6d0
|
@ -1262,6 +1262,9 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
startActivity(myIntent);
|
||||
finish();
|
||||
return true;
|
||||
case R.id.action_logout_account:
|
||||
Helper.logoutCurrentUser(BaseMainActivity.this);
|
||||
return true;
|
||||
case R.id.action_privacy:
|
||||
Intent intent = new Intent(getApplicationContext(), PrivacyActivity.class);
|
||||
startActivity(intent);
|
||||
|
|
|
@ -97,11 +97,14 @@ public class LoginActivity extends BaseActivity {
|
|||
private CheckBox peertube_instance;
|
||||
private Button connectionButton;
|
||||
private String actionToken;
|
||||
|
||||
private String autofilledInstance;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Bundle b = getIntent().getExtras();
|
||||
if(b != null) {
|
||||
autofilledInstance = b.getString("instance", null);
|
||||
}
|
||||
if( getIntent() != null && getIntent().getData() != null && getIntent().getData().toString().contains("mastalab://backtomastalab?code=")){
|
||||
String url = getIntent().getData().toString();
|
||||
String val[] = url.split("code=");
|
||||
|
@ -190,6 +193,7 @@ public class LoginActivity extends BaseActivity {
|
|||
info_2FA = findViewById(R.id.info_2FA);
|
||||
peertube_instance = findViewById(R.id.peertube_instance);
|
||||
|
||||
|
||||
peertube_instance.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
|
@ -386,6 +390,11 @@ public class LoginActivity extends BaseActivity {
|
|||
}
|
||||
});
|
||||
}
|
||||
if( autofilledInstance != null){
|
||||
login_instance.setText(autofilledInstance.trim());
|
||||
retrievesClientId();
|
||||
login_uid.requestFocus();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -82,6 +82,7 @@ public class Account implements Parcelable {
|
|||
private String display_name, stored_displayname;
|
||||
private boolean locked;
|
||||
private Date created_at;
|
||||
private Date updated_at;
|
||||
private int followers_count;
|
||||
private int following_count;
|
||||
private int statuses_count;
|
||||
|
@ -136,6 +137,7 @@ public class Account implements Parcelable {
|
|||
dest.writeString(this.stored_displayname);
|
||||
dest.writeByte(this.locked ? (byte) 1 : (byte) 0);
|
||||
dest.writeLong(this.created_at != null ? this.created_at.getTime() : -1);
|
||||
dest.writeLong(this.updated_at != null ? this.updated_at.getTime() : -1);
|
||||
dest.writeInt(this.followers_count);
|
||||
dest.writeInt(this.following_count);
|
||||
dest.writeInt(this.statuses_count);
|
||||
|
@ -186,6 +188,8 @@ public class Account implements Parcelable {
|
|||
this.locked = in.readByte() != 0;
|
||||
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.followers_count = in.readInt();
|
||||
this.following_count = in.readInt();
|
||||
this.statuses_count = in.readInt();
|
||||
|
@ -372,6 +376,14 @@ public class Account implements Parcelable {
|
|||
isAdmin = admin;
|
||||
}
|
||||
|
||||
public Date getUpdated_at() {
|
||||
return updated_at;
|
||||
}
|
||||
|
||||
public void setUpdated_at(Date updated_at) {
|
||||
this.updated_at = updated_at;
|
||||
}
|
||||
|
||||
|
||||
public enum followAction{
|
||||
FOLLOW,
|
||||
|
|
|
@ -290,7 +290,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
ImageView conversation_pp_3;
|
||||
ImageView conversation_pp_4;
|
||||
LinearLayout conversation_pp;
|
||||
LinearLayout vertical_content;
|
||||
RelativeLayout status_prev4_container;
|
||||
TextView status_reply;
|
||||
ImageView status_pin;
|
||||
|
@ -399,7 +398,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
conversation_pp_4 = itemView.findViewById(R.id.conversation_pp_4);
|
||||
conversation_pp_2_container = itemView.findViewById(R.id.conversation_pp_2_container);
|
||||
conversation_pp_3_container = itemView.findViewById(R.id.conversation_pp_3_container);
|
||||
vertical_content = itemView.findViewById(R.id.vertical_content);
|
||||
left_buttons = itemView.findViewById(R.id.left_buttons);
|
||||
status_show_more_content = itemView.findViewById(R.id.status_show_more_content);
|
||||
spark_button_fav = itemView.findViewById(R.id.spark_button_fav);
|
||||
|
@ -786,24 +784,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
holder.status_account_displayname.setCompoundDrawables(null, null, null, null);
|
||||
holder.status_account_displayname_owner.setCompoundDrawables(null, null, imgConversation, null);
|
||||
}
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
LinearLayout.LayoutParams paramsB = new LinearLayout.LayoutParams((int) Helper.convertDpToPixel(60, context), LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
if (status.getReblog() == null && !isCompactMode && getItemViewType(viewHolder.getAdapterPosition()) != FOCUSED_STATUS) {
|
||||
params.setMargins(0, -(int) Helper.convertDpToPixel(10, context), 0, 0);
|
||||
if (status.getSpoiler_text() != null && status.getSpoiler_text().trim().length() > 0)
|
||||
paramsB.setMargins(0, (int) Helper.convertDpToPixel(10, context), 0, 0);
|
||||
else
|
||||
paramsB.setMargins(0, (int) Helper.convertDpToPixel(15, context), 0, 0);
|
||||
} else if (!isCompactMode && getItemViewType(viewHolder.getAdapterPosition()) != FOCUSED_STATUS) {
|
||||
if (status.getContent() == null || status.getContent().trim().equals("")) {
|
||||
params.setMargins(0, -(int) Helper.convertDpToPixel(20, context), 0, 0);
|
||||
paramsB.setMargins(0, (int) Helper.convertDpToPixel(20, context), 0, 0);
|
||||
} else {
|
||||
params.setMargins(0, 0, 0, 0);
|
||||
paramsB.setMargins(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
}
|
||||
if( expand_media && status.isSensitive() || (status.getReblog() != null && status.getReblog().isSensitive())) {
|
||||
changeDrawableColor(context, holder.hide_preview, R.color.red_1);
|
||||
changeDrawableColor(context, holder.hide_preview_h, R.color.red_1);
|
||||
|
@ -812,8 +792,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
changeDrawableColor(context, holder.hide_preview_h, R.color.white);
|
||||
}
|
||||
|
||||
holder.vertical_content.setLayoutParams(params);
|
||||
holder.left_buttons.setLayoutParams(paramsB);
|
||||
if (!status.isClickable())
|
||||
Status.transform(context, status);
|
||||
if (!status.isEmojiFound())
|
||||
|
@ -1157,6 +1135,13 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
}
|
||||
/*if (expand_cw)
|
||||
holder.status_spoiler_button.setVisibility(View.GONE);*/
|
||||
String contentCheck = "";
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
contentCheck = Html.fromHtml(status.getReblog() == null?status.getContent():status.getReblog().getContent(), Html.FROM_HTML_MODE_LEGACY).toString();
|
||||
else
|
||||
//noinspection deprecation
|
||||
contentCheck = Html.fromHtml(status.getReblog() == null?status.getContent():status.getReblog().getContent()).toString();
|
||||
|
||||
if (status.getReblog() == null) {
|
||||
if (status.getSpoiler_text() != null && status.getSpoiler_text().trim().length() > 0) {
|
||||
holder.status_spoiler_container.setVisibility(View.VISIBLE);
|
||||
|
@ -1198,6 +1183,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
holder.status_content_container.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
if (status.getReblog() == null) {
|
||||
if (status.getMedia_attachments().size() < 1) {
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
|
@ -1296,7 +1282,10 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
holder.status_content.setVisibility(View.VISIBLE);
|
||||
holder.status_content_translated_container.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if( contentCheck.trim().length() < 2)
|
||||
holder.status_content.setVisibility(View.GONE);
|
||||
else
|
||||
holder.status_content.setVisibility(View.VISIBLE);
|
||||
//TODO:It sounds that sometimes this value is null - need deeper investigation
|
||||
if (status.getVisibility() == null)
|
||||
status.setVisibility("public");
|
||||
|
|
|
@ -69,11 +69,11 @@ public class CrossActions {
|
|||
private static List<Account> connectedAccounts(Context context, Status status, boolean limitedToOwner){
|
||||
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
List<Account> accountstmp = new AccountDAO(context, db).getAllAccount();
|
||||
List<Account> accountstmp = new AccountDAO(context, db).getAllAccountCrossAction();
|
||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||
Account currentAccount = new AccountDAO(context, db).getAccountByID(userId);
|
||||
List<Account> accounts = new ArrayList<>();
|
||||
if( !limitedToOwner && accountstmp.size() > 1 ){
|
||||
if( accountstmp != null && !limitedToOwner && accountstmp.size() > 1 ){
|
||||
//It's for a reply
|
||||
if( status != null){
|
||||
//Status is private or direct
|
||||
|
|
|
@ -543,6 +543,45 @@ public class Helper {
|
|||
editor.apply();
|
||||
}
|
||||
|
||||
/**
|
||||
* Log out the authenticated user by removing its token
|
||||
* @param context Context
|
||||
*/
|
||||
public static void logoutCurrentUser(Activity activity) {
|
||||
SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
//Current user
|
||||
String currentToken = sharedpreferences.getString(PREF_KEY_OAUTH_TOKEN, null);
|
||||
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
Account account = new AccountDAO(activity, db).getAccountByToken(currentToken);
|
||||
account.setToken("null");
|
||||
new AccountDAO(activity, db).updateAccount(account);
|
||||
Account newAccount = new AccountDAO(activity, db).getLastUsedAccount();
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
if( newAccount == null){
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, null);
|
||||
editor.putString(Helper.CLIENT_ID, null);
|
||||
editor.putString(Helper.CLIENT_SECRET, null);
|
||||
editor.putString(Helper.PREF_KEY_ID, null);
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, false);
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, false);
|
||||
editor.putString(Helper.PREF_INSTANCE, null);
|
||||
editor.putString(Helper.ID, null);
|
||||
editor.apply();
|
||||
}else{
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, newAccount.getToken());
|
||||
editor.putString(Helper.PREF_KEY_ID, newAccount.getId());
|
||||
editor.putString(Helper.PREF_INSTANCE, newAccount.getInstance().trim());
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, newAccount.isModerator());
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, newAccount.isAdmin());
|
||||
editor.commit();
|
||||
Intent changeAccount = new Intent(activity, MainActivity.class);
|
||||
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
activity.finish();
|
||||
activity.startActivity(changeAccount);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert String date from Mastodon
|
||||
|
@ -1681,21 +1720,27 @@ public class Helper {
|
|||
subActionButtonAcc.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
|
||||
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
|
||||
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, accountChoice.isModerator());
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, accountChoice.isAdmin());
|
||||
editor.commit();
|
||||
if(accountChoice.getSocial() != null && accountChoice.getSocial().equals("PEERTUBE"))
|
||||
Toasty.info(activity, activity.getString(R.string.toast_account_changed, "@" + accountChoice.getAcct()), Toast.LENGTH_LONG).show();
|
||||
else
|
||||
Toasty.info(activity, activity.getString(R.string.toast_account_changed, "@" + accountChoice.getAcct() + "@" + accountChoice.getInstance()), Toast.LENGTH_LONG).show();
|
||||
Intent changeAccount = new Intent(activity, MainActivity.class);
|
||||
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
activity.finish();
|
||||
activity.startActivity(changeAccount);
|
||||
if( !accountChoice.getToken().equals("null")) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
|
||||
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
|
||||
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, accountChoice.isModerator());
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, accountChoice.isAdmin());
|
||||
editor.commit();
|
||||
if (accountChoice.getSocial() != null && accountChoice.getSocial().equals("PEERTUBE"))
|
||||
Toasty.info(activity, activity.getString(R.string.toast_account_changed, "@" + accountChoice.getAcct()), Toast.LENGTH_LONG).show();
|
||||
else
|
||||
Toasty.info(activity, activity.getString(R.string.toast_account_changed, "@" + accountChoice.getAcct() + "@" + accountChoice.getInstance()), Toast.LENGTH_LONG).show();
|
||||
Intent changeAccount = new Intent(activity, MainActivity.class);
|
||||
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
activity.finish();
|
||||
activity.startActivity(changeAccount);
|
||||
}else{ //The account was logged out
|
||||
Intent intent = new Intent(activity, LoginActivity.class);
|
||||
intent.putExtra("instance", accountChoice.getInstance());
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
actionMenuAccBuilder.addSubActionView(subActionButtonAcc);
|
||||
|
@ -1736,17 +1781,23 @@ public class Helper {
|
|||
public void onClick(View v) {
|
||||
for(final Account accountChoice: accounts) {
|
||||
if (!currrentUserId.equals(accountChoice.getId())) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
|
||||
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
|
||||
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, accountChoice.isModerator());
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, accountChoice.isAdmin());
|
||||
editor.commit();
|
||||
Intent changeAccount = new Intent(activity, MainActivity.class);
|
||||
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
activity.finish();
|
||||
activity.startActivity(changeAccount);
|
||||
if( !accountChoice.getToken().equals("null")) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, accountChoice.getToken());
|
||||
editor.putString(Helper.PREF_KEY_ID, accountChoice.getId());
|
||||
editor.putString(Helper.PREF_INSTANCE, accountChoice.getInstance().trim());
|
||||
editor.putBoolean(Helper.PREF_IS_MODERATOR, accountChoice.isModerator());
|
||||
editor.putBoolean(Helper.PREF_IS_ADMINISTRATOR, accountChoice.isAdmin());
|
||||
editor.commit();
|
||||
Intent changeAccount = new Intent(activity, MainActivity.class);
|
||||
changeAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
activity.finish();
|
||||
activity.startActivity(changeAccount);
|
||||
}else{ //The account was logged out
|
||||
Intent intent = new Intent(activity, LoginActivity.class);
|
||||
intent.putExtra("instance", accountChoice.getInstance());
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ public class NotificationsSyncJob extends Job {
|
|||
return;
|
||||
//If WIFI only and on WIFI OR user defined any connections to use the service.
|
||||
if(!sharedpreferences.getBoolean(Helper.SET_WIFI_ONLY, false) || Helper.isOnWIFI(getContext())) {
|
||||
List<Account> accounts = new AccountDAO(getContext(),db).getAllAccount();
|
||||
List<Account> accounts = new AccountDAO(getContext(),db).getAllAccountCrossAction();
|
||||
//It means there is no user in DB.
|
||||
if( accounts == null )
|
||||
return;
|
||||
|
|
|
@ -126,7 +126,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
}
|
||||
it.remove();
|
||||
}
|
||||
List<Account> accountStreams = new AccountDAO(getApplicationContext(), db).getAllAccount();
|
||||
List<Account> accountStreams = new AccountDAO(getApplicationContext(), db).getAllAccountCrossAction();
|
||||
if (accountStreams != null) {
|
||||
for (final Account accountStream : accountStreams) {
|
||||
if( accountStream.getSocial() == null || accountStream.getSocial().equals("MASTODON")) {
|
||||
|
|
|
@ -148,6 +148,20 @@ public class AccountDAO {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns last used account
|
||||
* @return Account
|
||||
*/
|
||||
public Account getLastUsedAccount(){
|
||||
|
||||
try {
|
||||
Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_OAUTHTOKEN + " != 'null'", null, null, null, Sqlite.COL_UPDATED_AT + " DESC", "1");
|
||||
return cursorToUser(c);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an Account by its id and acct
|
||||
* @param accountId String
|
||||
|
@ -192,6 +206,34 @@ public class AccountDAO {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all Account in db
|
||||
* @return Account List<Account>
|
||||
*/
|
||||
public List<Account> getAllAccountActivated(){
|
||||
|
||||
try {
|
||||
Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_OAUTHTOKEN + " != 'null'", null, null, null, Sqlite.COL_INSTANCE + " ASC", null);
|
||||
return cursorToListUser(c);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all Account in db
|
||||
* @return Account List<Account>
|
||||
*/
|
||||
public List<Account> getAllAccountCrossAction(){
|
||||
|
||||
try {
|
||||
Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_SOCIAL + " != 'PEERTUBE' AND " + Sqlite.COL_OAUTHTOKEN + " != 'null'", null, null, null, Sqlite.COL_INSTANCE + " ASC", null);
|
||||
return cursorToListUser(c);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns an Account by token
|
||||
|
@ -252,6 +294,7 @@ public class AccountDAO {
|
|||
account.setAvatar_static(c.getString(c.getColumnIndex(Sqlite.COL_AVATAR_STATIC)));
|
||||
account.setHeader(c.getString(c.getColumnIndex(Sqlite.COL_HEADER)));
|
||||
account.setHeader_static(c.getString(c.getColumnIndex(Sqlite.COL_HEADER_STATIC)));
|
||||
account.setUpdated_at(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_UPDATED_AT))));
|
||||
account.setCreated_at(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT))));
|
||||
account.setInstance(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE)));
|
||||
account.setEmojis(Helper.restoreEmojisFromString(c.getString(c.getColumnIndex(Sqlite.COL_EMOJIS))));
|
||||
|
@ -295,6 +338,7 @@ public class AccountDAO {
|
|||
account.setAvatar_static(c.getString(c.getColumnIndex(Sqlite.COL_AVATAR_STATIC)));
|
||||
account.setHeader(c.getString(c.getColumnIndex(Sqlite.COL_HEADER)));
|
||||
account.setHeader_static(c.getString(c.getColumnIndex(Sqlite.COL_HEADER_STATIC)));
|
||||
account.setUpdated_at(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_UPDATED_AT))));
|
||||
account.setCreated_at(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT))));
|
||||
account.setInstance(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE)));
|
||||
account.setToken(c.getString(c.getColumnIndex(Sqlite.COL_OAUTHTOKEN)));
|
||||
|
|
|
@ -26,7 +26,7 @@ import android.database.sqlite.SQLiteOpenHelper;
|
|||
|
||||
public class Sqlite extends SQLiteOpenHelper {
|
||||
|
||||
public static final int DB_VERSION = 25;
|
||||
public static final int DB_VERSION = 26;
|
||||
public static final String DB_NAME = "mastodon_etalab_db";
|
||||
public static SQLiteDatabase db;
|
||||
private static Sqlite sInstance;
|
||||
|
@ -88,6 +88,7 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
static final String COL_REFRESH_TOKEN = "REFRESH_TOKEN";
|
||||
static final String COL_IS_MODERATOR = "IS_MODERATOR";
|
||||
static final String COL_IS_ADMIN = "IS_ADMIN";
|
||||
static final String COL_UPDATED_AT = "UPDATED_AT";
|
||||
|
||||
private static final String CREATE_TABLE_USER_ACCOUNT = "CREATE TABLE " + TABLE_USER_ACCOUNT + " ("
|
||||
+ COL_USER_ID + " TEXT PRIMARY KEY, " + COL_USERNAME + " TEXT NOT NULL, " + COL_ACCT + " TEXT NOT NULL, "
|
||||
|
@ -101,6 +102,7 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
+ COL_IS_MODERATOR + " INTEGER DEFAULT 0, "
|
||||
+ COL_IS_ADMIN + " INTEGER DEFAULT 0, "
|
||||
+ COL_CLIENT_ID + " TEXT, " + COL_CLIENT_SECRET + " TEXT, " + COL_REFRESH_TOKEN + " TEXT,"
|
||||
+ COL_UPDATED_AT + " TEXT, "
|
||||
+ COL_INSTANCE + " TEXT NOT NULL, " + COL_OAUTHTOKEN + " TEXT NOT NULL, " + COL_CREATED_AT + " TEXT NOT NULL)";
|
||||
|
||||
|
||||
|
@ -325,6 +327,8 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
case 24:
|
||||
db.execSQL("ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_IS_MODERATOR + " INTEGER DEFAULT 0");
|
||||
db.execSQL("ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_IS_ADMIN + " INTEGER DEFAULT 0");
|
||||
case 25:
|
||||
db.execSQL("ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_UPDATED_AT + " TEXT");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -34,13 +34,14 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<!-- LEFT COLUMN -->
|
||||
<LinearLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="50dp"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<RelativeLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="60dp"
|
||||
android:layout_width="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
|
@ -130,7 +131,43 @@
|
|||
android:visibility="gone"
|
||||
android:contentDescription="@string/profile_picture" />
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/left_buttons"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/new_element"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:src="@drawable/ic_fiber_new"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/new_toot" />
|
||||
<ImageButton
|
||||
android:id="@+id/status_translate"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:src="@drawable/ic_translate"
|
||||
android:contentDescription="@string/translate"
|
||||
style="@style/Base.Widget.AppCompat.Button.Colored"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/status_bookmark"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:tint="@android:color/white"
|
||||
style="@style/Base.Widget.AppCompat.Button.Colored"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:contentDescription="@string/bookmarks"
|
||||
android:src="@drawable/ic_bookmark_border"
|
||||
android:layout_marginTop="5dp"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- RIGHT COLUMN -->
|
||||
<LinearLayout
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
|
@ -180,82 +217,33 @@
|
|||
android:gravity="end"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
|
||||
android:id="@+id/vertical_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:layout_marginStart="60dp"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:id="@+id/status_spoiler_container"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content">
|
||||
<fr.gouv.etalab.mastodon.helper.CustomTextView
|
||||
android:id="@+id/status_spoiler"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:textIsSelectable="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<Button
|
||||
android:id="@+id/status_spoiler_button"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_remove_red_eye"
|
||||
android:drawableStart="@drawable/ic_remove_red_eye"
|
||||
android:gravity="center_vertical"
|
||||
android:drawablePadding="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:maxLines="1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="?attr/borderless"
|
||||
android:text="@string/load_attachment_spoiler" />
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<!-- SPOILER CONTAINER -->
|
||||
<LinearLayout
|
||||
android:id="@+id/left_buttons"
|
||||
android:id="@+id/status_spoiler_container"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="60dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/new_element"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:src="@drawable/ic_fiber_new"
|
||||
android:layout_width="wrap_content"
|
||||
<fr.gouv.etalab.mastodon.helper.CustomTextView
|
||||
android:id="@+id/status_spoiler"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:textIsSelectable="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<Button
|
||||
android:id="@+id/status_spoiler_button"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_remove_red_eye"
|
||||
android:drawableStart="@drawable/ic_remove_red_eye"
|
||||
android:gravity="center_vertical"
|
||||
android:drawablePadding="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:maxLines="1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/new_toot" />
|
||||
<ImageButton
|
||||
android:id="@+id/status_translate"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:src="@drawable/ic_translate"
|
||||
android:contentDescription="@string/translate"
|
||||
style="@style/Base.Widget.AppCompat.Button.Colored"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/status_bookmark"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:tint="@android:color/white"
|
||||
style="@style/Base.Widget.AppCompat.Button.Colored"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:contentDescription="@string/bookmarks"
|
||||
android:src="@drawable/ic_bookmark_border"
|
||||
android:layout_marginTop="5dp"
|
||||
/>
|
||||
style="?attr/borderless"
|
||||
android:text="@string/load_attachment_spoiler" />
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/status_content_container"
|
||||
|
@ -586,7 +574,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
/>
|
||||
<ImageView
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
|
@ -636,7 +624,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
|
@ -666,151 +654,150 @@
|
|||
style="?attr/borderless"
|
||||
android:text="@string/load_attachment" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_marginStart="60dp"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:id="@+id/status_spoiler_mention_container"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@+id/status_mention_spoiler"
|
||||
android:layout_marginBottom="10dp"
|
||||
<LinearLayout
|
||||
android:id="@+id/status_spoiler_mention_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_marginStart="60dp"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:id="@+id/status_peertube_container"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="?colorAccent"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
android:text="@string/reply"
|
||||
android:id="@+id/status_peertube_reply"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:visibility="gone"
|
||||
android:textColor="?colorAccent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/delete"
|
||||
android:id="@+id/status_peertube_delete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>/
|
||||
<LinearLayout
|
||||
android:layout_marginStart="60dp"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:id="@+id/status_action_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/status_reply"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@+id/status_mention_spoiler"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="wrap_content">
|
||||
<com.varunest.sparkbutton.SparkButton
|
||||
android:id="@+id/spark_button_reblog"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
app:sparkbutton_activeImage="@drawable/ic_repeat_boost"
|
||||
app:sparkbutton_inActiveImage="@drawable/ic_repeat"
|
||||
app:sparkbutton_iconSize="20dp"
|
||||
android:contentDescription="@string/reblog"
|
||||
/>
|
||||
android:id="@+id/status_peertube_container"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/status_reblog_count"
|
||||
android:textColor="?colorAccent"
|
||||
android:visibility="gone"
|
||||
android:text="@string/reply"
|
||||
android:id="@+id/status_peertube_reply"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:visibility="gone"
|
||||
android:textColor="?colorAccent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/delete"
|
||||
android:id="@+id/status_peertube_delete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="wrap_content">
|
||||
<com.varunest.sparkbutton.SparkButton
|
||||
android:id="@+id/spark_button_fav"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
app:sparkbutton_activeImage="@drawable/ic_star"
|
||||
app:sparkbutton_inActiveImage="@drawable/ic_star_border"
|
||||
android:contentDescription="@string/favourite"
|
||||
app:sparkbutton_iconSize="20dp"
|
||||
/>
|
||||
android:id="@+id/status_action_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/status_favorite_count"
|
||||
android:id="@+id/status_reply"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:id="@+id/status_pin"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/pin_add"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_pin_drop"/>
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="end"
|
||||
android:gravity="end"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_privacy"
|
||||
<LinearLayout
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="25dp"
|
||||
android:contentDescription="@string/toot_visibility_tilte"/>
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="wrap_content">
|
||||
<com.varunest.sparkbutton.SparkButton
|
||||
android:id="@+id/spark_button_reblog"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
app:sparkbutton_activeImage="@drawable/ic_repeat_boost"
|
||||
app:sparkbutton_inActiveImage="@drawable/ic_repeat"
|
||||
app:sparkbutton_iconSize="20dp"
|
||||
android:contentDescription="@string/reblog"
|
||||
/>
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/status_reblog_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="wrap_content">
|
||||
<com.varunest.sparkbutton.SparkButton
|
||||
android:id="@+id/spark_button_fav"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
app:sparkbutton_activeImage="@drawable/ic_star"
|
||||
app:sparkbutton_inActiveImage="@drawable/ic_star_border"
|
||||
android:contentDescription="@string/favourite"
|
||||
app:sparkbutton_iconSize="20dp"
|
||||
/>
|
||||
<TextView
|
||||
android:drawablePadding="2dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/status_favorite_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:id="@+id/status_more"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="25dp"
|
||||
android:src="@drawable/ic_more_horiz"
|
||||
android:contentDescription="@string/display_toot_truncate" />
|
||||
android:id="@+id/status_pin"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/pin_add"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_pin_drop"/>
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="end"
|
||||
android:gravity="end"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_privacy"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="25dp"
|
||||
android:contentDescription="@string/toot_visibility_tilte"/>
|
||||
<ImageView
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:id="@+id/status_more"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="25dp"
|
||||
android:src="@drawable/ic_more_horiz"
|
||||
android:contentDescription="@string/display_toot_truncate" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/fetch_more"
|
||||
android:visibility="gone"
|
||||
|
|
|
@ -129,12 +129,6 @@
|
|||
android:contentDescription="@string/profile_picture" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/vertical_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/left_buttons"
|
||||
android:orientation="vertical"
|
||||
|
|
|
@ -81,12 +81,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/profile_picture" />
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/vertical_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/left_buttons"
|
||||
android:orientation="vertical"
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
android:id="@+id/action_import_data"
|
||||
android:title="@string/import_data"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_logout_account"
|
||||
android:title="@string/action_logout_account"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_logout"
|
||||
android:title="@string/action_logout"
|
||||
|
|
|
@ -654,13 +654,12 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<item>1 día</item>
|
||||
<item>1 semana</item>
|
||||
</string-array>
|
||||
<string name="showcase_instance"> In this field, you need to write your instance host name.\nFor example, if you created your account on https://mastodon.social\nJust write <b>mastodon.social</b> (without https://)\n
|
||||
You can start writing first letters and names will be suggested.\n\n
|
||||
⚠ The Login button will only work if the instance name is valid and the instance is up!
|
||||
<string name="showcase_instance">En este campo, debe escribir el nombre de host de su instancia. \ Npor ejemplo, si creó su cuenta en https: //mastodon.social \ nSólo escriba <b> mastodon.social </b> (sin https: //) \norte
|
||||
Puede comenzar a escribir las primeras letras y se sugerirán los nombres. \ N \ n
|
||||
⚠ El botón Iniciar sesión solo funcionará si el nombre de la instancia es válido y la instancia está activa! </string>
|
||||
<string name="showcase_uid"> En este campo, escriba el correo electrónico que está conectado a tu cuenta de Mastodon.
|
||||
</string>
|
||||
<string name="showcase_uid"> In this field, write the email that is attached to your Mastodon account.
|
||||
</string>
|
||||
<string name="showcase_pwd"> Last step is to enter your password and click on Login.
|
||||
<string name="showcase_pwd"> Último paso es introducir su contraseña y haga clic en Inicio de sesión.
|
||||
</string>
|
||||
<string name="more_information">Más información</string>
|
||||
<string name="showcase_2FA">Si utilizas 2FA (autenticación de dos factores), es necesario utilizar este enlace. \nTu también puedes utilizarlo si no deseas ingresar tus credenciales aquí.</string>
|
||||
|
@ -723,7 +722,7 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<string name="leave_a_comment">Dejar un comentario</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="my_pictures">Mis imágenes</string>
|
||||
<string name="choose_schedule">Choose a schedule mode</string>
|
||||
<string name="choose_schedule">Elija un modo de programación</string>
|
||||
<string name="device_schedule">Desde dispositivo</string>
|
||||
<string name="server_schedule">Desde servidor</string>
|
||||
<string name="toots_server">Toots (Servidor)</string>
|
||||
|
@ -735,7 +734,7 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<string name="settings_category_label_notification">Servicio de notificaciones</string>
|
||||
<string name="settings_category_label_interface">Interfaz</string>
|
||||
<string name="settings_category_label_hiddencontent">Contenido oculto</string>
|
||||
<string name="settings_category_label_composing">Composing</string>
|
||||
<string name="settings_category_label_composing">Composición</string>
|
||||
<string name="contact">Contactos</string>
|
||||
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> commented your video <b>%2$s</b>]]></string>
|
||||
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> is following your channel <b>%2$s</b>]]></string>
|
||||
|
@ -743,9 +742,9 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<string name="peertube_video_published"><![CDATA[Your video <b>%1$s</b> has been published]]></string>
|
||||
<string name="peertube_video_import_success"><![CDATA[Your video import <b>%1$s</b> succeeded]]></string>
|
||||
<string name="peertube_video_import_error"><![CDATA[Your video import <b>%1$s</b> failed]]></string>
|
||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publicó un nuevo video: <b>%2$s</b>]]></string>
|
||||
<string name="peertube_video_blacklist"><![CDATA[Su video <b>%1$s</b> esta en lista negra]]></string>
|
||||
<string name="peertube_video_unblacklist"><![CDATA[Su video <b>%1$s</b> ha sido unblacklisted]]></string>
|
||||
<string name="export_data">Exportar datos</string>
|
||||
<string name="import_data">Importar Datos</string>
|
||||
<string name="toot_select_import">Selecciona el archivo para importar</string>
|
||||
|
@ -754,7 +753,7 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<string name="add_public_comment">Agrega un comentario público</string>
|
||||
<string name="send_comment">Enviar comentario</string>
|
||||
<string name="toast_toot_saved_error">No hay conexión a internet. Su mensaje ha sido almacenado en borradores.</string>
|
||||
<string name="action_plain_text">Plain text</string>
|
||||
<string name="action_plain_text">Texto plano</string>
|
||||
<string name="action_html">HTML</string>
|
||||
<string name="action_markdown">Markdown</string>
|
||||
<!-- end languages -->
|
||||
|
|
|
@ -482,9 +482,9 @@
|
|||
<string name="data_export_toots">Esportatu %1$s(e)ren mezuak</string>
|
||||
<string name="data_export_success">%1$s toot esportatu dira %2$stik.</string>
|
||||
<string name="data_export_error">Zerbait ez da behar bezala joan %1$s(e)ko datuak esportatzean</string>
|
||||
<string name="data_export_error_simple">Something went wrong when exporting data!</string>
|
||||
<string name="data_import_success_simple">Data have been imported!</string>
|
||||
<string name="data_import_error_simple">Something went wrong when importing data!</string>
|
||||
<string name="data_export_error_simple">Zerbait ez da behar bezala joan datuak esportatzean!</string>
|
||||
<string name="data_import_success_simple">Datuak inportatu dira!</string>
|
||||
<string name="data_import_error_simple">Zerbait ez da behar bezala joan datuak inportatzean!</string>
|
||||
<!-- Proxy -->
|
||||
<string name="proxy_set">Proxya</string>
|
||||
<string name="proxy_type">Mota</string>
|
||||
|
@ -726,20 +726,20 @@
|
|||
<string name="leave_a_comment">Egin iruzkin bat</string>
|
||||
<string name="share">Partekatu</string>
|
||||
<string name="my_pictures">Nire irudiak</string>
|
||||
<string name="choose_schedule">Choose a schedule mode</string>
|
||||
<string name="device_schedule">From device</string>
|
||||
<string name="server_schedule">From server</string>
|
||||
<string name="toots_server">Toots (Server)</string>
|
||||
<string name="toots_client">Toots (Device)</string>
|
||||
<string name="modify">Modify</string>
|
||||
<string name="choose_schedule">Hautatu programazio modua</string>
|
||||
<string name="device_schedule">Gailutik</string>
|
||||
<string name="server_schedule">Zerbitzaritik</string>
|
||||
<string name="toots_server">Tootak (zerbitzaria)</string>
|
||||
<string name="toots_client">Tootak (gailua)</string>
|
||||
<string name="modify">Aldatu</string>
|
||||
<string name="set_display_content_after_fetch_more">Display new toots above the \"Fetch more\" button</string>
|
||||
<string name="settings_category_label_confirmations">Confirmations</string>
|
||||
<string name="settings_category_label_timelines">Timelines</string>
|
||||
<string name="settings_category_label_notification">Notification service</string>
|
||||
<string name="settings_category_label_interface">Interface</string>
|
||||
<string name="settings_category_label_hiddencontent">Hidden content</string>
|
||||
<string name="settings_category_label_confirmations">Berrespenak</string>
|
||||
<string name="settings_category_label_timelines">Denbora-lerroak</string>
|
||||
<string name="settings_category_label_notification">Jakinarazpen zerbitzua</string>
|
||||
<string name="settings_category_label_interface">Interfazea</string>
|
||||
<string name="settings_category_label_hiddencontent">Eduki ezkutua</string>
|
||||
<string name="settings_category_label_composing">Composing</string>
|
||||
<string name="contact">Contacts</string>
|
||||
<string name="contact">Kontaktuak</string>
|
||||
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> commented your video <b>%2$s</b>]]></string>
|
||||
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> is following your channel <b>%2$s</b>]]></string>
|
||||
<string name="peertube_follow_account"><![CDATA[<b>%1$s</b> is following your account]]></string>
|
||||
|
@ -749,13 +749,13 @@
|
|||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||
<string name="export_data">Export data</string>
|
||||
<string name="import_data">Import Data</string>
|
||||
<string name="toot_select_import">Select the file to import</string>
|
||||
<string name="export_data">Esportatu datuak</string>
|
||||
<string name="import_data">Inportatu datuak</string>
|
||||
<string name="toot_select_import">Hautatu inportatu beharreko fitxategia</string>
|
||||
<string name="toot_select_file_error">An error occurred when selecting the backup file!</string>
|
||||
<string name="data_import_start">Please, don\'t kill the app while processing. That can\'t be quite long.</string>
|
||||
<string name="add_public_comment">Add a public comment</string>
|
||||
<string name="send_comment">Send comment</string>
|
||||
<string name="send_comment">Bidali iruzkina</string>
|
||||
<string name="toast_toot_saved_error">There is no Internet connection. Your message has been stored in drafts.</string>
|
||||
<string name="action_plain_text">Plain text</string>
|
||||
<string name="action_html">HTML</string>
|
||||
|
|
|
@ -866,6 +866,7 @@
|
|||
<string name="action_plain_text">Plain text</string>
|
||||
<string name="action_html">HTML</string>
|
||||
<string name="action_markdown">Markdown</string>
|
||||
<string name="action_logout_account">Logout account</string>
|
||||
<!-- end languages -->
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue