Merge branch 'develop'
This commit is contained in:
commit
683a304d37
|
@ -39,6 +39,7 @@
|
|||
|
||||
|
||||
Lead developer: [@tom79](https://mastodon.social/@tom79)
|
||||
<br>
|
||||
Developer: [@kasun](https://mastodon.social/@kasun)
|
||||
|
||||
## Backers
|
||||
|
|
|
@ -7,9 +7,11 @@ android {
|
|||
applicationId "fr.gouv.etalab.mastodon"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
versionCode 260
|
||||
versionName "1.80.3"
|
||||
versionCode 261
|
||||
versionName "1.80.4"
|
||||
multiDexEnabled true
|
||||
renderscriptTargetApi 28 as int
|
||||
renderscriptSupportModeEnabled true
|
||||
}
|
||||
dexOptions {
|
||||
javaMaxHeapSize "4g"
|
||||
|
@ -95,5 +97,6 @@ dependencies {
|
|||
implementation 'com.jaredrummler:material-spinner:1.3.1'
|
||||
implementation "com.tonyodev.fetch2:fetch2:2.3.6"
|
||||
implementation 'com.github.stom79:horizontalbargraph:1.5'
|
||||
implementation 'jp.wasabeef:glide-transformations:4.0.0'
|
||||
playstoreImplementation "io.github.kobakei:ratethisapp:$ratethisappLibraryVersion"
|
||||
}
|
||||
|
|
|
@ -177,6 +177,7 @@ import static fr.gouv.etalab.mastodon.sqlite.Sqlite.importDB;
|
|||
public abstract class BaseMainActivity extends BaseActivity
|
||||
implements NavigationView.OnNavigationItemSelectedListener, OnUpdateAccountInfoInterface, OnRetrieveMetaDataInterface, OnRetrieveInstanceInterface, OnRetrieveRemoteAccountInterface, OnRetrieveEmojiAccountInterface, OnFilterActionInterface, OnSyncTimelineInterface {
|
||||
|
||||
|
||||
private FloatingActionButton toot, delete_all, add_new;
|
||||
private HashMap<String, String> tagTile = new HashMap<>();
|
||||
private HashMap<String, Integer> tagItem = new HashMap<>();
|
||||
|
@ -204,8 +205,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
private final int PICK_IMPORT = 5556;
|
||||
private AlertDialog.Builder dialogBuilderOptin;
|
||||
private List<ManageTimelines> timelines;
|
||||
private FetchConfiguration fetchConfiguration;
|
||||
private Fetch fetch;
|
||||
|
||||
|
||||
public static HashMap<Integer, Fragment> mPageReferenceMap = new HashMap<>();
|
||||
private static boolean notificationChecked = false;
|
||||
|
@ -254,7 +254,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
finish();
|
||||
return;
|
||||
}
|
||||
initializeDownload();
|
||||
final int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
||||
switch (theme){
|
||||
case Helper.THEME_LIGHT:
|
||||
|
@ -650,10 +649,39 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
|
||||
query= query.replaceAll("^#+", "");
|
||||
//It's not a peertube search
|
||||
if(displayPeertube == null){
|
||||
//Peertube search
|
||||
if(tabLayout != null && timelines != null && (timelines.get(tabLayout.getSelectedTabPosition()).getType() == ManageTimelines.Type.PEERTUBE || (timelines.get(tabLayout.getSelectedTabPosition()).getRemoteInstance() != null && timelines.get(tabLayout.getSelectedTabPosition()).getRemoteInstance().getType().equals("PEERTUBE")))){
|
||||
DisplayStatusFragment statusFragment;
|
||||
Bundle bundle = new Bundle();
|
||||
statusFragment = new DisplayStatusFragment();
|
||||
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE);
|
||||
String instance = "peertube.social";
|
||||
if(timelines.get(tabLayout.getSelectedTabPosition()).getRemoteInstance() != null && timelines.get(tabLayout.getSelectedTabPosition()).getRemoteInstance().getType().equals("PEERTUBE"))
|
||||
instance = timelines.get(tabLayout.getSelectedTabPosition()).getRemoteInstance().getHost();
|
||||
bundle.putString("remote_instance", instance);
|
||||
bundle.putString("instanceType", "PEERTUBE");
|
||||
bundle.putString("search_peertube", query);
|
||||
statusFragment.setArguments(bundle);
|
||||
String fragmentTag = "REMOTE_INSTANCE";
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).commit();
|
||||
if( main_app_container.getVisibility() == View.GONE){
|
||||
|
||||
main_app_container.setVisibility(View.VISIBLE);
|
||||
toolbarTitle.setVisibility(View.VISIBLE);
|
||||
delete_instance.setVisibility(View.VISIBLE);
|
||||
viewPager.setVisibility(View.GONE);
|
||||
tabLayout.setVisibility(View.GONE);
|
||||
}
|
||||
}else{
|
||||
if( social != UpdateAccountInfoAsyncTask.SOCIAL.GNU) {
|
||||
boolean isAccount = false;
|
||||
if( query.split("@").length > 1 ){
|
||||
isAccount = true;
|
||||
}
|
||||
if( (social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA)
|
||||
&& !query.contains("http://") && !query.contains("https://")){
|
||||
&& !query.contains("http://") && !query.contains("https://") && !isAccount){
|
||||
Intent intent = new Intent(BaseMainActivity.this, SearchResultTabActivity.class);
|
||||
intent.putExtra("search", query);
|
||||
startActivity(intent);
|
||||
|
@ -670,27 +698,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
intent.putExtras(b);
|
||||
startActivity(intent);
|
||||
}
|
||||
}else{ //Peertube search
|
||||
DisplayStatusFragment statusFragment;
|
||||
Bundle bundle = new Bundle();
|
||||
statusFragment = new DisplayStatusFragment();
|
||||
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE);
|
||||
bundle.putString("remote_instance", displayPeertube);
|
||||
bundle.putString("instanceType", "PEERTUBE");
|
||||
bundle.putString("search_peertube", query);
|
||||
statusFragment.setArguments(bundle);
|
||||
String fragmentTag = "REMOTE_INSTANCE";
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).commit();
|
||||
if( main_app_container.getVisibility() == View.GONE){
|
||||
|
||||
main_app_container.setVisibility(View.VISIBLE);
|
||||
toolbarTitle.setVisibility(View.VISIBLE);
|
||||
delete_instance.setVisibility(View.VISIBLE);
|
||||
viewPager.setVisibility(View.GONE);
|
||||
tabLayout.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
toolbar_search.setQuery("", false);
|
||||
toolbar_search.setIconified(true);
|
||||
|
@ -1700,8 +1707,6 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
ReorderTimelinesActivity.updated = false;
|
||||
new ManageTimelines().createTabs(BaseMainActivity.this, manageTimelines);
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
|
||||
boolean optimize_loading = sharedpreferences.getBoolean(Helper.SET_OPTIMIZE_LOADING, false);
|
||||
boolean displayFollowInstance = sharedpreferences.getBoolean(Helper.SET_DISPLAY_FOLLOW_INSTANCE, true);
|
||||
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
||||
final NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
|
||||
|
@ -1713,13 +1718,23 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
position = (timelines.size()-1);
|
||||
if( position < 0)
|
||||
position = 0;
|
||||
setTitle("");
|
||||
/*if( !optimize_loading)
|
||||
viewPager.setOffscreenPageLimit(countPage);*/
|
||||
if( toolbarTitle != null)
|
||||
toolbarTitle.setVisibility(View.GONE);
|
||||
viewPager.setOffscreenPageLimit(2);
|
||||
main_app_container = findViewById(R.id.main_app_container);
|
||||
adapter = new PagerAdapter
|
||||
(getSupportFragmentManager(), tabLayout.getTabCount());
|
||||
boolean iconOnly = true;
|
||||
for(ManageTimelines tl: timelines){
|
||||
if( tl.getType() == ManageTimelines.Type.INSTANCE || tl.getType() == ManageTimelines.Type.TAG || tl.getType() == ManageTimelines.Type.LIST){
|
||||
iconOnly = false;
|
||||
}
|
||||
}
|
||||
if( iconOnly && timelines.size() < 5){
|
||||
tabLayout.setTabMode(TabLayout.MODE_FIXED);
|
||||
}else{
|
||||
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
|
||||
}
|
||||
viewPager.setAdapter(adapter);
|
||||
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
||||
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
||||
|
@ -2136,83 +2151,8 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
}
|
||||
}
|
||||
|
||||
private void initializeDownload(){
|
||||
fetchConfiguration = new FetchConfiguration.Builder(this)
|
||||
.setDownloadConcurrentLimit(3)
|
||||
.build();
|
||||
fetch = Fetch.Impl.getInstance(fetchConfiguration);
|
||||
FetchListener fetchListener = new FetchListener() {
|
||||
@Override
|
||||
public void onWaitingNetwork(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onStarted(@NotNull Download download, @NotNull List<? extends DownloadBlock> list, int i) {
|
||||
}
|
||||
@Override
|
||||
public void onResumed(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onRemoved(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onQueued(@NotNull Download download, boolean b) {
|
||||
}
|
||||
@Override
|
||||
public void onProgress(@NotNull Download download, long l, long l1) {
|
||||
}
|
||||
@Override
|
||||
public void onPaused(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onError(@NotNull Download download, @NotNull Error error, @Nullable Throwable throwable) {
|
||||
Toasty.error(getApplicationContext(), getString(R.string.toast_error),Toast.LENGTH_LONG).show();
|
||||
}
|
||||
@Override
|
||||
public void onDownloadBlockUpdated(@NotNull Download download, @NotNull DownloadBlock downloadBlock, int i) {
|
||||
}
|
||||
@Override
|
||||
public void onDeleted(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onCompleted(@NotNull Download download) {
|
||||
if( download.getFileUri().getPath() != null) {
|
||||
String url = download.getUrl();
|
||||
final String fileName = URLUtil.guessFileName(url, null, null);
|
||||
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String mime = Helper.getMimeType(url);
|
||||
File file = new File(download.getFileUri().getPath());
|
||||
final Intent intent = new Intent();
|
||||
Random r = new Random();
|
||||
final int notificationIdTmp = r.nextInt(10000);
|
||||
intent.setAction(android.content.Intent.ACTION_VIEW);
|
||||
Uri uri = Uri.parse("file://" + file.getAbsolutePath() );
|
||||
intent.setDataAndType(uri, mime);
|
||||
Helper.notify_user(getApplicationContext(), intent, notificationIdTmp, BitmapFactory.decodeResource(getResources(),
|
||||
R.mipmap.ic_launcher), Helper.NotifType.STORE, getString(R.string.save_over), getString(R.string.download_from, fileName));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onCancelled(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onAdded(@NotNull Download download) {
|
||||
}
|
||||
};
|
||||
|
||||
fetch.addListener(fetchListener);
|
||||
}
|
||||
|
||||
public void download(String file, String url){
|
||||
final Request request = new Request(url, file);
|
||||
request.setPriority(Priority.HIGH);
|
||||
request.setNetworkType(NetworkType.ALL);
|
||||
fetch.enqueue(request, updatedRequest -> {
|
||||
//Request was successfully enqueued for download.
|
||||
}, error -> {
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public boolean getFloatingVisibility(){
|
||||
|
|
|
@ -93,12 +93,13 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
|
|||
private ImageView set_profile_picture, set_header_picture;
|
||||
private Button set_change_profile_picture, set_change_header_picture, set_profile_save;
|
||||
private TextView set_header_picture_overlay;
|
||||
private CheckBox set_lock_account;
|
||||
private CheckBox set_lock_account, set_sensitive_content;
|
||||
private static final int PICK_IMAGE_HEADER = 4565;
|
||||
private static final int PICK_IMAGE_PROFILE = 6545;
|
||||
private String profile_username, profile_note;
|
||||
private ByteArrayInputStream profile_picture, header_picture;
|
||||
private API.accountPrivacy profile_privacy;
|
||||
private boolean sensitive;
|
||||
private Bitmap profile_picture_bmp, profile_header_bmp;
|
||||
private ImageView pp_actionBar;
|
||||
private final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE_HEADER = 754;
|
||||
|
@ -173,22 +174,26 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
|
|||
set_profile_save = findViewById(R.id.set_profile_save);
|
||||
set_header_picture_overlay = findViewById(R.id.set_header_picture_overlay);
|
||||
set_lock_account = findViewById(R.id.set_lock_account);
|
||||
|
||||
set_sensitive_content = findViewById(R.id.set_sensitive_content);
|
||||
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(getApplicationContext()));
|
||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||
Version currentVersion = new Version(instanceVersion);
|
||||
Version minVersion = new Version("2.3");
|
||||
if(currentVersion.compareTo(minVersion) == 1)
|
||||
if(currentVersion.compareTo(minVersion) == 1) {
|
||||
set_lock_account.setVisibility(View.VISIBLE);
|
||||
else
|
||||
set_sensitive_content.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
set_lock_account.setVisibility(View.GONE);
|
||||
set_sensitive_content.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
set_profile_save.setEnabled(false);
|
||||
set_change_header_picture.setEnabled(false);
|
||||
set_change_profile_picture.setEnabled(false);
|
||||
set_profile_name.setEnabled(false);
|
||||
set_profile_description.setEnabled(false);
|
||||
set_lock_account.setEnabled(false);
|
||||
|
||||
set_sensitive_content.setEnabled(false);
|
||||
new RetrieveAccountInfoAsyncTask(getApplicationContext(), EditProfileActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
|
||||
}
|
||||
|
@ -231,10 +236,15 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
|
|||
set_profile_name.setEnabled(true);
|
||||
set_profile_description.setEnabled(true);
|
||||
set_lock_account.setEnabled(true);
|
||||
set_sensitive_content.setEnabled(true);
|
||||
if( account.isLocked())
|
||||
set_lock_account.setChecked(true);
|
||||
else
|
||||
set_lock_account.setChecked(false);
|
||||
if( account.isSensitive())
|
||||
set_sensitive_content.setChecked(true);
|
||||
else
|
||||
set_sensitive_content.setChecked(false);
|
||||
set_profile_description.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
|
@ -438,6 +448,7 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
|
|||
}
|
||||
}
|
||||
profile_privacy = set_lock_account.isChecked()?API.accountPrivacy.LOCKED:API.accountPrivacy.PUBLIC;
|
||||
sensitive = set_sensitive_content.isChecked();
|
||||
dialogBuilder.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
|
@ -467,7 +478,7 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
|
|||
newCustomFields.put(key3,val3);
|
||||
newCustomFields.put(key4,val4);
|
||||
|
||||
new UpdateCredentialAsyncTask(getApplicationContext(), newCustomFields, profile_username, profile_note, profile_picture, avatarName, header_picture, headerName, profile_privacy, EditProfileActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
new UpdateCredentialAsyncTask(getApplicationContext(), newCustomFields, profile_username, profile_note, profile_picture, avatarName, header_picture, headerName, profile_privacy, sensitive, EditProfileActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
});
|
||||
dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
|
|
|
@ -237,8 +237,12 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
|
||||
final ImageButton account_menu = findViewById(R.id.account_menu);
|
||||
ImageButton action_more = findViewById(R.id.action_more);
|
||||
if( theme == THEME_LIGHT)
|
||||
ImageButton action_back = findViewById(R.id.action_back);
|
||||
if(theme == THEME_LIGHT){
|
||||
changeDrawableColor(getApplicationContext(),action_more,R.color.dark_icon);
|
||||
changeDrawableColor(getApplicationContext(),account_menu,R.color.dark_icon);
|
||||
changeDrawableColor(getApplicationContext(),action_back,R.color.dark_icon);
|
||||
}
|
||||
account_menu.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -251,6 +255,12 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
showMenu(account_menu);
|
||||
}
|
||||
});
|
||||
action_back.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
if( account != null){
|
||||
ManageAccount();
|
||||
}
|
||||
|
|
|
@ -1771,6 +1771,9 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface,
|
|||
toot_picture.setEnabled(true);
|
||||
toot_it.setEnabled(true);
|
||||
toot_sensitive.setVisibility(View.VISIBLE);
|
||||
if( account.isSensitive()){
|
||||
toot_sensitive.setChecked(true);
|
||||
}
|
||||
picture_scrollview.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
if( attachments.size() > index && attachment.getDescription() != null) {
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.util.List;
|
|||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||
import fr.gouv.etalab.mastodon.client.API;
|
||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||
import fr.gouv.etalab.mastodon.client.Entities.InstanceNodeInfo;
|
||||
import fr.gouv.etalab.mastodon.client.Entities.Results;
|
||||
import fr.gouv.etalab.mastodon.client.GNUAPI;
|
||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||
|
@ -74,6 +75,43 @@ public class RetrieveSearchAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
if (this.type == null) {
|
||||
if (MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA) {
|
||||
API api = new API(this.contextReference.get());
|
||||
String[] split = query.trim().split("@");
|
||||
if( split.length > 1 ){
|
||||
|
||||
String domain;
|
||||
String username;
|
||||
if( split.length == 2){
|
||||
username = split[0];
|
||||
domain = split[1];
|
||||
}else{
|
||||
username = split[1];
|
||||
domain = split[2];
|
||||
}
|
||||
if( domain != null && username != null){
|
||||
InstanceNodeInfo node = api.getNodeInfo(domain);
|
||||
String url = null;
|
||||
if( node != null && node.getName() != null){
|
||||
switch (node.getName().trim()){
|
||||
case "MASTODON":
|
||||
url = "https://" + domain + "/@" + username;
|
||||
break;
|
||||
case "PEERTUBE":
|
||||
url = "https://" + domain + "/accounts/" + username;
|
||||
break;
|
||||
case "PIXELFED":
|
||||
url = "https://" + domain + "/" + username;
|
||||
break;
|
||||
case "GNU":
|
||||
url = "https://" + domain + "/profile/" + username;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( url != null)
|
||||
query = url;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!tagsOnly)
|
||||
apiResponse = api.search(query);
|
||||
else {
|
||||
|
|
|
@ -209,7 +209,8 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
for(ManageTimelines manageTimeline: manageTimelines){
|
||||
if( manageTimeline.getRemoteInstance() == null )
|
||||
continue;
|
||||
if(manageTimeline.getRemoteInstance().getHost().equals(instance.getHost())){
|
||||
|
||||
if(manageTimeline.getRemoteInstance().getHost().trim().equals(instance.getHost().trim())){
|
||||
isInDb = true;
|
||||
timelines_tmp = manageTimeline;
|
||||
break;
|
||||
|
@ -222,6 +223,7 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
manageTL.setType(ManageTimelines.Type.INSTANCE);
|
||||
manageTL.setPosition(manageTimelines.size());
|
||||
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
|
||||
manageTimelines.add(manageTL);
|
||||
}else{
|
||||
//Update list
|
||||
timelines_tmp.setRemoteInstance(instance);
|
||||
|
@ -233,7 +235,7 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
continue;
|
||||
boolean shouldBeRemoved = true;
|
||||
for(RemoteInstance instance: instancesInDb){
|
||||
if( instance.getHost().equals(manageTimelines.getRemoteInstance().getHost())){
|
||||
if( instance.getHost().trim().equals(manageTimelines.getRemoteInstance().getHost().trim())){
|
||||
shouldBeRemoved = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ public class UpdateAccountInfoAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
editor.putString(Helper.PREF_INSTANCE, instance);
|
||||
editor.apply();
|
||||
if( userExists)
|
||||
new AccountDAO(this.contextReference.get(), db).updateAccount(account);
|
||||
new AccountDAO(this.contextReference.get(), db).updateAccountCredential(account);
|
||||
else {
|
||||
if( account.getUsername() != null && account.getCreated_at() != null)
|
||||
new AccountDAO(this.contextReference.get(), db).insertAccount(account);
|
||||
|
|
|
@ -60,7 +60,7 @@ public class UpdateAccountInfoByIDAsyncTask extends AsyncTask<Void, Void, Void>
|
|||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||
Account account = null;
|
||||
if( social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA)
|
||||
account = new API(this.contextReference.get()).getAccount(userId);
|
||||
account = new API(this.contextReference.get()).verifyCredentials();
|
||||
else if( social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE) {
|
||||
account = new PeertubeAPI(this.contextReference.get()).verifyCredentials();
|
||||
account.setSocial("PEERTUBE");
|
||||
|
@ -78,7 +78,7 @@ public class UpdateAccountInfoByIDAsyncTask extends AsyncTask<Void, Void, Void>
|
|||
if( accountDb != null){
|
||||
account.setInstance(accountDb.getInstance());
|
||||
account.setToken(accountDb.getToken());
|
||||
new AccountDAO(this.contextReference.get(), db).updateAccount(account);
|
||||
new AccountDAO(this.contextReference.get(), db).updateAccountCredential(account);
|
||||
}
|
||||
}
|
||||
if( social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
|
||||
|
|
|
@ -34,6 +34,7 @@ import fr.gouv.etalab.mastodon.interfaces.OnUpdateCredentialInterface;
|
|||
public class UpdateCredentialAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
private String display_name, note, avatarName, headerName;
|
||||
private boolean senstive;
|
||||
private ByteArrayInputStream avatar, header;
|
||||
private API.accountPrivacy privacy;
|
||||
private APIResponse apiResponse;
|
||||
|
@ -41,7 +42,7 @@ public class UpdateCredentialAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
private WeakReference<Context> contextReference;
|
||||
private HashMap<String, String> customFields;
|
||||
|
||||
public UpdateCredentialAsyncTask(Context context, HashMap<String, String> customFields, String display_name, String note, ByteArrayInputStream avatar, String avatarName, ByteArrayInputStream header, String headerName, API.accountPrivacy privacy, OnUpdateCredentialInterface onUpdateCredentialInterface){
|
||||
public UpdateCredentialAsyncTask(Context context, HashMap<String, String> customFields, String display_name, String note, ByteArrayInputStream avatar, String avatarName, ByteArrayInputStream header, String headerName, API.accountPrivacy privacy, boolean senstive, OnUpdateCredentialInterface onUpdateCredentialInterface){
|
||||
this.contextReference = new WeakReference<>(context);
|
||||
this.display_name = display_name;
|
||||
this.note = note;
|
||||
|
@ -52,11 +53,12 @@ public class UpdateCredentialAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
this.avatarName = avatarName;
|
||||
this.headerName = headerName;
|
||||
this.customFields = customFields;
|
||||
this.senstive = senstive;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... params) {
|
||||
apiResponse = new API(this.contextReference.get()).updateCredential(display_name, note, avatar, avatarName, header, headerName, privacy, customFields);
|
||||
apiResponse = new API(this.contextReference.get()).updateCredential(display_name, note, avatar, avatarName, header, headerName, privacy, customFields, senstive);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ public class API {
|
|||
* Update credential of the authenticated user *synchronously*
|
||||
* @return APIResponse
|
||||
*/
|
||||
public APIResponse updateCredential(String display_name, String note, ByteArrayInputStream avatar, String avatarName, ByteArrayInputStream header, String headerName, accountPrivacy privacy, HashMap<String, String> customFields) {
|
||||
public APIResponse updateCredential(String display_name, String note, ByteArrayInputStream avatar, String avatarName, ByteArrayInputStream header, String headerName, accountPrivacy privacy, HashMap<String, String> customFields, boolean sensitive) {
|
||||
|
||||
HashMap<String, String> requestParams = new HashMap<>();
|
||||
if( display_name != null)
|
||||
|
@ -342,6 +342,9 @@ public class API {
|
|||
i++;
|
||||
}
|
||||
}
|
||||
if(sensitive){
|
||||
requestParams.put("source[sensitive]", String.valueOf(sensitive));
|
||||
}
|
||||
try {
|
||||
new HttpsConnection(context).patch(getAbsoluteUrl("/accounts/update_credentials"), 60, requestParams, avatar, avatarName, header, headerName, prefKeyOauthTokenT);
|
||||
} catch (HttpsConnection.HttpsConnectionException e) {
|
||||
|
@ -393,7 +396,7 @@ public class API {
|
|||
}
|
||||
}if( values.containsKey("refresh_token") && values.get("refresh_token") != null)
|
||||
targetedAccount.setRefresh_token(values.get("refresh_token"));
|
||||
new AccountDAO(context, db).updateAccount(targetedAccount);
|
||||
new AccountDAO(context, db).updateAccountCredential(targetedAccount);
|
||||
String response;
|
||||
try {
|
||||
response = new HttpsConnection(context).get(getAbsoluteUrl("/accounts/verify_credentials"), 60, null, targetedAccount.getToken());
|
||||
|
@ -4454,6 +4457,8 @@ public class API {
|
|||
account.setFieldsVerified(fieldsMapVerified);
|
||||
}catch (Exception ignored){}
|
||||
|
||||
|
||||
|
||||
//Retrieves emjis
|
||||
List<Emojis> emojiList = new ArrayList<>();
|
||||
try {
|
||||
|
@ -4469,6 +4474,17 @@ public class API {
|
|||
}catch (Exception e){
|
||||
account.setEmojis(new ArrayList<>());
|
||||
}
|
||||
if( resobj.has("source")){
|
||||
JSONObject source = resobj.getJSONObject("source");
|
||||
try{
|
||||
account.setPrivacy(source.getString("privacy"));
|
||||
account.setSensitive(source.getBoolean("sensitive"));
|
||||
}catch (Exception e){
|
||||
account.setPrivacy("public");
|
||||
account.setSensitive(false);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
} catch (JSONException ignored) {} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -117,6 +117,8 @@ public class Account implements Parcelable {
|
|||
private String refresh_token;
|
||||
private boolean isModerator = false;
|
||||
private boolean isAdmin = false;
|
||||
private String privacy = "public";
|
||||
private boolean sensitive = false;
|
||||
|
||||
|
||||
|
||||
|
@ -172,6 +174,8 @@ public class Account implements Parcelable {
|
|||
dest.writeString(this.refresh_token);
|
||||
dest.writeByte(this.isModerator ? (byte) 1 : (byte) 0);
|
||||
dest.writeByte(this.isAdmin ? (byte) 1 : (byte) 0);
|
||||
dest.writeString(this.privacy);
|
||||
dest.writeByte(this.sensitive ? (byte) 1 : (byte) 0);
|
||||
}
|
||||
|
||||
public Account() {
|
||||
|
@ -225,6 +229,8 @@ public class Account implements Parcelable {
|
|||
this.refresh_token = in.readString();
|
||||
this.isModerator = in.readByte() != 0;
|
||||
this.isAdmin = in.readByte() != 0;
|
||||
this.privacy = in.readString();
|
||||
this.sensitive =in.readByte() != 0;
|
||||
}
|
||||
|
||||
public static final Creator<Account> CREATOR = new Creator<Account>() {
|
||||
|
@ -384,6 +390,22 @@ public class Account implements Parcelable {
|
|||
this.updated_at = updated_at;
|
||||
}
|
||||
|
||||
public String getPrivacy() {
|
||||
return privacy;
|
||||
}
|
||||
|
||||
public void setPrivacy(String privacy) {
|
||||
this.privacy = privacy;
|
||||
}
|
||||
|
||||
public boolean isSensitive() {
|
||||
return sensitive;
|
||||
}
|
||||
|
||||
public void setSensitive(boolean sensitive) {
|
||||
this.sensitive = sensitive;
|
||||
}
|
||||
|
||||
|
||||
public enum followAction{
|
||||
FOLLOW,
|
||||
|
|
|
@ -134,6 +134,8 @@ public class Status implements Parcelable{
|
|||
private boolean isNotice = false;
|
||||
private Poll poll = null;
|
||||
|
||||
private int media_height;
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(this.id);
|
||||
|
@ -190,6 +192,7 @@ public class Status implements Parcelable{
|
|||
dest.writeByte(this.showSpoiler ? (byte) 1 : (byte) 0);
|
||||
dest.writeByte(this.isNotice ? (byte) 1 : (byte) 0);
|
||||
dest.writeParcelable(this.poll, flags);
|
||||
dest.writeInt(this.media_height);
|
||||
}
|
||||
|
||||
protected Status(Parcel in) {
|
||||
|
@ -249,6 +252,7 @@ public class Status implements Parcelable{
|
|||
this.showSpoiler = in.readByte() != 0;
|
||||
this.isNotice = in.readByte() != 0;
|
||||
this.poll = in.readParcelable(Poll.class.getClassLoader());
|
||||
this.media_height = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator<Status> CREATOR = new Creator<Status>() {
|
||||
|
@ -1340,4 +1344,12 @@ public class Status implements Parcelable{
|
|||
public void setPoll(Poll poll) {
|
||||
this.poll = poll;
|
||||
}
|
||||
|
||||
public int getMedia_height() {
|
||||
return media_height;
|
||||
}
|
||||
|
||||
public void setMedia_height(int media_height) {
|
||||
this.media_height = media_height;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ public class AccountsFollowRequestAdapter extends RecyclerView.Adapter implement
|
|||
this.context = context;
|
||||
accountsFollowRequestAdapter = this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
|
@ -78,7 +78,8 @@ public class AccountsFollowRequestAdapter extends RecyclerView.Adapter implement
|
|||
final Account account = accounts.get(position);
|
||||
holder.btn_authorize.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.green_1), PorterDuff.Mode.MULTIPLY);
|
||||
holder.btn_reject.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.red_1), PorterDuff.Mode.MULTIPLY);
|
||||
holder.account_un.setText(String.format("@%s", account.getUsername()));
|
||||
holder.account_dn.setText(Helper.shortnameToUnicode(account.getDisplay_name(),true));
|
||||
holder.account_un.setText(account.getAcct());
|
||||
//Profile picture
|
||||
Glide.with(holder.account_pp.getContext())
|
||||
.load(account.getAvatar())
|
||||
|
@ -89,6 +90,12 @@ public class AccountsFollowRequestAdapter extends RecyclerView.Adapter implement
|
|||
openAccountDetails(account);
|
||||
}
|
||||
});
|
||||
holder.account_dn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
openAccountDetails(account);
|
||||
}
|
||||
});
|
||||
holder.account_un.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -157,11 +164,13 @@ public class AccountsFollowRequestAdapter extends RecyclerView.Adapter implement
|
|||
ImageView account_pp;
|
||||
Button btn_authorize;
|
||||
Button btn_reject;
|
||||
TextView account_dn;
|
||||
TextView account_un;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
account_pp = itemView.findViewById(R.id.account_pp);
|
||||
account_dn = itemView.findViewById(R.id.account_dn);
|
||||
account_un = itemView.findViewById(R.id.account_un);
|
||||
btn_authorize = itemView.findViewById(R.id.btn_authorize);
|
||||
btn_reject = itemView.findViewById(R.id.btn_reject);
|
||||
|
|
|
@ -147,6 +147,7 @@ import fr.gouv.etalab.mastodon.sqlite.StatusCacheDAO;
|
|||
import fr.gouv.etalab.mastodon.sqlite.StatusStoredDAO;
|
||||
import fr.gouv.etalab.mastodon.sqlite.TempMuteDAO;
|
||||
import fr.gouv.etalab.mastodon.sqlite.TimelinesDAO;
|
||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
|
||||
import static fr.gouv.etalab.mastodon.activities.BaseMainActivity.mPageReferenceMap;
|
||||
import static fr.gouv.etalab.mastodon.activities.BaseMainActivity.social;
|
||||
|
@ -183,6 +184,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
private Status toot;
|
||||
private TagTimeline tagTimeline;
|
||||
public static boolean fetch_all_more = false;
|
||||
|
||||
public StatusListAdapter(Context context, RetrieveFeedsAsyncTask.Type type, String targetedId, boolean isOnWifi, List<Status> statuses){
|
||||
super();
|
||||
this.context = context;
|
||||
|
@ -300,7 +302,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
TextView status_favorite_count;
|
||||
TextView status_reblog_count;
|
||||
TextView status_toot_date;
|
||||
Button status_show_more;
|
||||
RelativeLayout status_show_more;
|
||||
ImageView status_more;
|
||||
LinearLayout status_document_container;
|
||||
RelativeLayout status_horizontal_document_container;
|
||||
|
@ -356,7 +358,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
RelativeLayout horizontal_second_image;
|
||||
|
||||
LinearLayout status_peertube_container;
|
||||
TextView status_peertube_reply, status_peertube_delete;
|
||||
TextView status_peertube_reply, status_peertube_delete, show_more_content;
|
||||
|
||||
|
||||
//Poll
|
||||
|
@ -421,6 +423,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
status_spoiler_container = itemView.findViewById(R.id.status_spoiler_container);
|
||||
status_content_container = itemView.findViewById(R.id.status_content_container);
|
||||
status_spoiler = itemView.findViewById(R.id.status_spoiler);
|
||||
show_more_content = itemView.findViewById(R.id.show_more_content);
|
||||
status_spoiler_button = itemView.findViewById(R.id.status_spoiler_button);
|
||||
yandex_translate = itemView.findViewById(R.id.yandex_translate);
|
||||
new_element = itemView.findViewById(R.id.new_element);
|
||||
|
@ -536,7 +539,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
boolean display_card = sharedpreferences.getBoolean(Helper.SET_DISPLAY_CARD, false);
|
||||
boolean display_video_preview = sharedpreferences.getBoolean(Helper.SET_DISPLAY_VIDEO_PREVIEWS, true);
|
||||
int truncate_toots_size = sharedpreferences.getInt(Helper.SET_TRUNCATE_TOOTS_SIZE, 0);
|
||||
final int timeout = sharedpreferences.getInt(Helper.SET_NSFW_TIMEOUT, 5);
|
||||
|
||||
boolean share_details = sharedpreferences.getBoolean(Helper.SET_SHARE_DETAILS, true);
|
||||
boolean confirmFav = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION_FAV, false);
|
||||
boolean confirmBoost = sharedpreferences.getBoolean(Helper.SET_NOTIF_VALIDATION, true);
|
||||
|
@ -1535,6 +1538,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (status.getReblog() == null) {
|
||||
if (status.getMedia_attachments().size() < 1) {
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
|
@ -1544,27 +1548,30 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
//If medias are loaded without any conditions or if device is on wifi
|
||||
if(behaviorWithAttachments != Helper.ATTACHMENT_ASK ) {
|
||||
if (expand_media || !status.isSensitive() && (behaviorWithAttachments == Helper.ATTACHMENT_ALWAYS || (behaviorWithAttachments == Helper.ATTACHMENT_WIFI && isOnWifi))) {
|
||||
loadAttachments(status, holder);
|
||||
loadAttachments(status, holder, false);
|
||||
holder.status_show_more.setVisibility(View.GONE);
|
||||
status.setAttachmentShown(true);
|
||||
} else {
|
||||
//Text depending if toots is sensitive or not
|
||||
String textShowMore = (status.isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.load_attachment);
|
||||
holder.status_show_more.setText(textShowMore);
|
||||
String textShowMore = (status.isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.set_attachment_action);
|
||||
holder.show_more_content.setText(textShowMore);
|
||||
if (!status.isAttachmentShown()) {
|
||||
holder.status_show_more.setVisibility(View.VISIBLE);
|
||||
if (fullAttachement)
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
else
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
if(behaviorWithAttachments == Helper.ATTACHMENT_ALWAYS || (behaviorWithAttachments == Helper.ATTACHMENT_WIFI && isOnWifi)){
|
||||
loadAttachments(status, holder, true);
|
||||
}
|
||||
} else {
|
||||
loadAttachments(status, holder);
|
||||
loadAttachments(status, holder, false);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
//Text depending if toots is sensitive or not
|
||||
String textShowMore = (status.isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.load_attachment);
|
||||
holder.status_show_more.setText(textShowMore);
|
||||
String textShowMore = (status.isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.set_attachment_action);
|
||||
holder.show_more_content.setText(textShowMore);
|
||||
if (!status.isAttachmentShown()) {
|
||||
holder.status_show_more.setVisibility(View.VISIBLE);
|
||||
if (fullAttachement)
|
||||
|
@ -1572,7 +1579,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
else
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
} else {
|
||||
loadAttachments(status, holder);
|
||||
loadAttachments(status, holder, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1588,27 +1595,30 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
if(behaviorWithAttachments != Helper.ATTACHMENT_ASK ) {
|
||||
//If medias are loaded without any conditions or if device is on wifi
|
||||
if (expand_media || !status.getReblog().isSensitive() && (behaviorWithAttachments == Helper.ATTACHMENT_ALWAYS || (behaviorWithAttachments == Helper.ATTACHMENT_WIFI && isOnWifi))) {
|
||||
loadAttachments(status.getReblog(), holder);
|
||||
loadAttachments(status.getReblog(), holder, false);
|
||||
holder.status_show_more.setVisibility(View.GONE);
|
||||
status.setAttachmentShown(true);
|
||||
} else {
|
||||
//Text depending if toots is sensitive or not
|
||||
String textShowMore = (status.getReblog().isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.load_attachment);
|
||||
holder.status_show_more.setText(textShowMore);
|
||||
String textShowMore = (status.getReblog().isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.set_attachment_action);
|
||||
holder.show_more_content.setText(textShowMore);
|
||||
if (!status.isAttachmentShown()) {
|
||||
holder.status_show_more.setVisibility(View.VISIBLE);
|
||||
if (fullAttachement)
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
else
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
if(behaviorWithAttachments == Helper.ATTACHMENT_ALWAYS || (behaviorWithAttachments == Helper.ATTACHMENT_WIFI && isOnWifi)){
|
||||
loadAttachments(status, holder, true);
|
||||
}
|
||||
} else {
|
||||
loadAttachments(status.getReblog(), holder);
|
||||
loadAttachments(status.getReblog(), holder, false);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
//Text depending if toots is sensitive or not
|
||||
String textShowMore = (status.getReblog().isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.load_attachment);
|
||||
holder.status_show_more.setText(textShowMore);
|
||||
String textShowMore = (status.getReblog().isSensitive()) ? context.getString(R.string.load_sensitive_attachment) : context.getString(R.string.set_attachment_action);
|
||||
holder.show_more_content.setText(textShowMore);
|
||||
if (!status.isAttachmentShown()) {
|
||||
holder.status_show_more.setVisibility(View.VISIBLE);
|
||||
if (fullAttachement)
|
||||
|
@ -1616,11 +1626,37 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
else
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
} else {
|
||||
loadAttachments(status.getReblog(), holder);
|
||||
loadAttachments(status.getReblog(), holder, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
holder.status_show_more.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
status.setAttachmentShown(true);
|
||||
notifyStatusChanged(status);
|
||||
/*
|
||||
Added a Countdown Timer, so that Sensitive (NSFW)
|
||||
images only get displayed for user set time,
|
||||
giving the user time to click on them to expand them,
|
||||
if they want. Images are then hidden again.
|
||||
-> Default value is set to 5 seconds
|
||||
*/
|
||||
final int timeout = sharedpreferences.getInt(Helper.SET_NSFW_TIMEOUT, 5);
|
||||
if (timeout > 0) {
|
||||
new CountDownTimer((timeout * 1000), 1000) {
|
||||
public void onTick(long millisUntilFinished) {
|
||||
}
|
||||
|
||||
public void onFinish() {
|
||||
status.setAttachmentShown(false);
|
||||
notifyStatusChanged(status);
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
}
|
||||
});
|
||||
if (theme == Helper.THEME_BLACK) {
|
||||
changeDrawableColor(context, R.drawable.ic_photo, R.color.dark_text);
|
||||
changeDrawableColor(context, R.drawable.ic_more_toot_content, R.color.dark_text);
|
||||
|
@ -2068,32 +2104,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
}
|
||||
});
|
||||
|
||||
holder.status_show_more.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
status.setAttachmentShown(true);
|
||||
notifyStatusChanged(status);
|
||||
/*
|
||||
Added a Countdown Timer, so that Sensitive (NSFW)
|
||||
images only get displayed for user set time,
|
||||
giving the user time to click on them to expand them,
|
||||
if they want. Images are then hidden again.
|
||||
-> Default value is set to 5 seconds
|
||||
*/
|
||||
|
||||
if (timeout > 0) {
|
||||
new CountDownTimer((timeout * 1000), 1000) {
|
||||
public void onTick(long millisUntilFinished) {
|
||||
}
|
||||
|
||||
public void onFinish() {
|
||||
status.setAttachmentShown(false);
|
||||
notifyStatusChanged(status);
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE)
|
||||
holder.status_more.setVisibility(View.GONE);
|
||||
|
@ -2716,17 +2726,20 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
}else{
|
||||
holder.status_toot_app.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void loadAttachments(final Status status, final ViewHolder holder){
|
||||
private void loadAttachments(final Status status, final ViewHolder holder, boolean blur){
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
boolean fullAttachement = sharedpreferences.getBoolean(Helper.SET_FULL_PREVIEW, false);
|
||||
List<Attachment> attachments = status.getMedia_attachments();
|
||||
|
||||
if( !blur)
|
||||
holder.status_show_more.setVisibility(View.GONE);
|
||||
else
|
||||
holder.status_show_more.setVisibility(View.VISIBLE);
|
||||
if( attachments != null && attachments.size() > 0){
|
||||
int i = 0;
|
||||
holder.horizontal_second_image.setVisibility(View.VISIBLE);
|
||||
|
@ -2798,6 +2811,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
int position = 1;
|
||||
for(final Attachment attachment: attachments){
|
||||
ImageView imageView;
|
||||
RelativeLayout container = holder.status_horizontal_document_container;
|
||||
if( i == 0) {
|
||||
imageView = fullAttachement?holder.status_prev1_h:holder.status_prev1;
|
||||
if( attachment.getType().toLowerCase().equals("image") || attachment.getType().toLowerCase().equals("unknown"))
|
||||
|
@ -2896,36 +2910,72 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
|
||||
if( fullAttachement){
|
||||
imageView.setImageBitmap(null);
|
||||
if( !url.trim().contains("missing.png") && !((Activity)context).isFinishing() )
|
||||
Glide.with(imageView.getContext())
|
||||
.asBitmap()
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
|
||||
.into(new SimpleTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
DrawableTransitionOptions.withCrossFade();
|
||||
int width = resource.getWidth();
|
||||
int height = resource.getHeight();
|
||||
if( !url.trim().contains("missing.png") && !((Activity)context).isFinishing() ) {
|
||||
if( !blur) {
|
||||
Glide.with(imageView.getContext())
|
||||
.asBitmap()
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
|
||||
.into(new SimpleTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
DrawableTransitionOptions.withCrossFade();
|
||||
int width = resource.getWidth();
|
||||
int height = resource.getHeight();
|
||||
|
||||
if( height < Helper.convertDpToPixel(200, context)){
|
||||
double ratio = ((double)Helper.convertDpToPixel(200, context) / (double)height);
|
||||
width = (int)(ratio * width);
|
||||
height = (int) Helper.convertDpToPixel(200, context);
|
||||
resource = Bitmap.createScaledBitmap(resource, width, height, false);
|
||||
if (height < Helper.convertDpToPixel(200, context)) {
|
||||
double ratio = ((double) Helper.convertDpToPixel(200, context) / (double) height);
|
||||
width = (int) (ratio * width);
|
||||
height = (int) Helper.convertDpToPixel(200, context);
|
||||
resource = Bitmap.createScaledBitmap(resource, width, height, false);
|
||||
}
|
||||
imageView.setImageBitmap(resource);
|
||||
status.setMedia_height(container.getHeight());
|
||||
}
|
||||
imageView.setImageBitmap(resource);
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
Glide.with(imageView.getContext())
|
||||
.asBitmap()
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new BlurTransformation(50,3), new RoundedCorners(10)))
|
||||
.into(new SimpleTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
DrawableTransitionOptions.withCrossFade();
|
||||
int width = resource.getWidth();
|
||||
int height = resource.getHeight();
|
||||
|
||||
if (height < Helper.convertDpToPixel(200, context)) {
|
||||
double ratio = ((double) Helper.convertDpToPixel(200, context) / (double) height);
|
||||
width = (int) (ratio * width);
|
||||
height = (int) Helper.convertDpToPixel(200, context);
|
||||
resource = Bitmap.createScaledBitmap(resource, width, height, false);
|
||||
}
|
||||
imageView.setImageBitmap(resource);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (!url.trim().contains("missing.png") && !((Activity) context).isFinishing())
|
||||
Glide.with(imageView.getContext())
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.into(imageView);
|
||||
if (!url.trim().contains("missing.png") && !((Activity) context).isFinishing()) {
|
||||
if( !blur) {
|
||||
Glide.with(imageView.getContext())
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.into(imageView);
|
||||
}else{
|
||||
Glide.with(imageView.getContext())
|
||||
.load(url)
|
||||
.thumbnail(0.1f)
|
||||
.apply(new RequestOptions().transforms(new BlurTransformation(50,3), new RoundedCorners(10)))
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.into(imageView);
|
||||
}
|
||||
}
|
||||
}
|
||||
final int finalPosition = position;
|
||||
if( attachment.getDescription() != null && !attachment.getDescription().equals("null"))
|
||||
|
@ -2933,15 +2983,40 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
imageView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if( attachment.getType().equals("web")){
|
||||
Helper.openBrowser(context, attachment.getUrl());
|
||||
}else {
|
||||
Intent intent = new Intent(context, MediaActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
intent.putParcelableArrayListExtra("mediaArray", status.getMedia_attachments());
|
||||
b.putInt("position", finalPosition);
|
||||
intent.putExtras(b);
|
||||
context.startActivity(intent);
|
||||
if( status.isAttachmentShown()) {
|
||||
|
||||
if (attachment.getType().equals("web")) {
|
||||
Helper.openBrowser(context, attachment.getUrl());
|
||||
} else {
|
||||
Intent intent = new Intent(context, MediaActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
intent.putParcelableArrayListExtra("mediaArray", status.getMedia_attachments());
|
||||
b.putInt("position", finalPosition);
|
||||
intent.putExtras(b);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}else{
|
||||
status.setAttachmentShown(true);
|
||||
notifyStatusChanged(status);
|
||||
/*
|
||||
Added a Countdown Timer, so that Sensitive (NSFW)
|
||||
images only get displayed for user set time,
|
||||
giving the user time to click on them to expand them,
|
||||
if they want. Images are then hidden again.
|
||||
-> Default value is set to 5 seconds
|
||||
*/
|
||||
final int timeout = sharedpreferences.getInt(Helper.SET_NSFW_TIMEOUT, 5);
|
||||
if (timeout > 0) {
|
||||
new CountDownTimer((timeout * 1000), 1000) {
|
||||
public void onTick(long millisUntilFinished) {
|
||||
}
|
||||
|
||||
public void onFinish() {
|
||||
status.setAttachmentShown(false);
|
||||
notifyStatusChanged(status);
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -2950,7 +3025,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
public boolean onLongClick(View v) {
|
||||
String myDir = sharedpreferences.getString(Helper.SET_FOLDER_RECORD, Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
|
||||
String fileName = URLUtil.guessFileName(attachment.getUrl(), null, null);
|
||||
((MainActivity)context).download(myDir+"/"+fileName, attachment.getUrl());
|
||||
Helper.download(context,myDir+"/"+fileName, attachment.getUrl());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
@ -2958,11 +3033,10 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
position++;
|
||||
}
|
||||
}else{
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
holder.status_horizontal_document_container.setVisibility(View.GONE);
|
||||
holder.status_document_container.setVisibility(View.GONE);
|
||||
holder.status_show_more.setVisibility(View.GONE);
|
||||
}
|
||||
holder.status_show_more.setVisibility(View.GONE);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -163,7 +163,6 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
|||
timelineId = bundle.getInt("timelineId");
|
||||
|
||||
}
|
||||
|
||||
if( ischannel)
|
||||
type = RetrieveFeedsAsyncTask.Type.CHANNEL;
|
||||
|
||||
|
|
|
@ -118,8 +118,18 @@ import com.jaredrummler.materialspinner.MaterialSpinner;
|
|||
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionButton;
|
||||
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionMenu;
|
||||
import com.oguzdev.circularfloatingactionmenu.library.SubActionButton;
|
||||
import com.tonyodev.fetch2.Download;
|
||||
import com.tonyodev.fetch2.Error;
|
||||
import com.tonyodev.fetch2.Fetch;
|
||||
import com.tonyodev.fetch2.FetchConfiguration;
|
||||
import com.tonyodev.fetch2.FetchListener;
|
||||
import com.tonyodev.fetch2.NetworkType;
|
||||
import com.tonyodev.fetch2.Priority;
|
||||
import com.tonyodev.fetch2.Request;
|
||||
import com.tonyodev.fetch2core.DownloadBlock;
|
||||
|
||||
import org.conscrypt.Conscrypt;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
@ -3859,5 +3869,82 @@ public class Helper {
|
|||
}
|
||||
|
||||
|
||||
public static void download(Context context, String file, String url){
|
||||
|
||||
|
||||
FetchConfiguration fetchConfiguration = new FetchConfiguration.Builder(context)
|
||||
.setDownloadConcurrentLimit(3)
|
||||
.build();
|
||||
Fetch fetch = Fetch.Impl.getInstance(fetchConfiguration);
|
||||
FetchListener fetchListener = new FetchListener() {
|
||||
@Override
|
||||
public void onWaitingNetwork(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onStarted(@NotNull Download download, @NotNull List<? extends DownloadBlock> list, int i) {
|
||||
}
|
||||
@Override
|
||||
public void onResumed(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onRemoved(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onQueued(@NotNull Download download, boolean b) {
|
||||
}
|
||||
@Override
|
||||
public void onProgress(@NotNull Download download, long l, long l1) {
|
||||
}
|
||||
@Override
|
||||
public void onPaused(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onError(@NotNull Download download, @NotNull Error error, @org.jetbrains.annotations.Nullable Throwable throwable) {
|
||||
Toasty.error(context, context.getString(R.string.toast_error),Toast.LENGTH_LONG).show();
|
||||
}
|
||||
@Override
|
||||
public void onDownloadBlockUpdated(@NotNull Download download, @NotNull DownloadBlock downloadBlock, int i) {
|
||||
}
|
||||
@Override
|
||||
public void onDeleted(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onCompleted(@NotNull Download download) {
|
||||
if( download.getFileUri().getPath() != null) {
|
||||
String url = download.getUrl();
|
||||
final String fileName = URLUtil.guessFileName(url, null, null);
|
||||
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String mime = Helper.getMimeType(url);
|
||||
File file = new File(download.getFileUri().getPath());
|
||||
final Intent intent = new Intent();
|
||||
Random r = new Random();
|
||||
final int notificationIdTmp = r.nextInt(10000);
|
||||
intent.setAction(android.content.Intent.ACTION_VIEW);
|
||||
Uri uri = Uri.parse("file://" + file.getAbsolutePath() );
|
||||
intent.setDataAndType(uri, mime);
|
||||
Helper.notify_user(context, intent, notificationIdTmp, BitmapFactory.decodeResource(context.getResources(),
|
||||
R.mipmap.ic_launcher), Helper.NotifType.STORE, context.getString(R.string.save_over), context.getString(R.string.download_from, fileName));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onCancelled(@NotNull Download download) {
|
||||
}
|
||||
@Override
|
||||
public void onAdded(@NotNull Download download) {
|
||||
}
|
||||
};
|
||||
|
||||
fetch.addListener(fetchListener);
|
||||
final Request request = new Request(url, file);
|
||||
request.setPriority(Priority.HIGH);
|
||||
request.setNetworkType(NetworkType.ALL);
|
||||
fetch.enqueue(request, updatedRequest -> {
|
||||
//Request was successfully enqueued for download.
|
||||
}, error -> {
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -82,6 +82,8 @@ public class AccountDAO {
|
|||
if( account.getToken() != null)
|
||||
values.put(Sqlite.COL_OAUTHTOKEN, account.getToken());
|
||||
|
||||
values.put(Sqlite.COL_SENSITIVE, account.isSensitive());
|
||||
values.put(Sqlite.COL_PRIVACY, account.getPrivacy());
|
||||
//Inserts account
|
||||
try{
|
||||
db.insert(Sqlite.TABLE_USER_ACCOUNT, null, values);
|
||||
|
@ -128,7 +130,49 @@ public class AccountDAO {
|
|||
}
|
||||
if( account.getToken() != null)
|
||||
values.put(Sqlite.COL_OAUTHTOKEN, account.getToken());
|
||||
return db.update(Sqlite.TABLE_USER_ACCOUNT,
|
||||
values, Sqlite.COL_USER_ID + " = ? AND " + Sqlite.COL_USERNAME + " =?",
|
||||
new String[]{account.getId(), account.getUsername()});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update an Account in database
|
||||
* @param account Account
|
||||
* @return boolean
|
||||
*/
|
||||
public int updateAccountCredential(Account account)
|
||||
{
|
||||
ContentValues values = new ContentValues();
|
||||
if( account.getNote() == null)
|
||||
account.setNote("");
|
||||
if( account.getCreated_at() == null)
|
||||
account.setCreated_at(new Date());
|
||||
values.put(Sqlite.COL_ACCT, account.getAcct());
|
||||
values.put(Sqlite.COL_DISPLAYED_NAME, account.getDisplay_name());
|
||||
values.put(Sqlite.COL_LOCKED,account.isLocked());
|
||||
values.put(Sqlite.COL_FOLLOWERS_COUNT,account.getFollowers_count());
|
||||
values.put(Sqlite.COL_FOLLOWING_COUNT,account.getFollowing_count());
|
||||
values.put(Sqlite.COL_STATUSES_COUNT,account.getStatuses_count());
|
||||
values.put(Sqlite.COL_NOTE,account.getNote());
|
||||
values.put(Sqlite.COL_URL,account.getUrl());
|
||||
values.put(Sqlite.COL_AVATAR,account.getAvatar());
|
||||
values.put(Sqlite.COL_AVATAR_STATIC,account.getAvatar_static());
|
||||
values.put(Sqlite.COL_HEADER,account.getHeader());
|
||||
values.put(Sqlite.COL_HEADER_STATIC,account.getHeader_static());
|
||||
values.put(Sqlite.COL_CREATED_AT, Helper.dateToString(account.getCreated_at()));
|
||||
values.put(Sqlite.COL_INSTANCE, account.getInstance());
|
||||
values.put(Sqlite.COL_EMOJIS, Helper.emojisToStringStorage(account.getEmojis()));
|
||||
values.put(Sqlite.COL_SOCIAL, account.getSocial());
|
||||
if( account.getClient_id() != null && account.getClient_secret() != null && account.getRefresh_token() != null) {
|
||||
values.put(Sqlite.COL_CLIENT_ID, account.getClient_id());
|
||||
values.put(Sqlite.COL_CLIENT_SECRET, account.getClient_secret());
|
||||
values.put(Sqlite.COL_REFRESH_TOKEN, account.getRefresh_token());
|
||||
}
|
||||
if( account.getToken() != null)
|
||||
values.put(Sqlite.COL_OAUTHTOKEN, account.getToken());
|
||||
values.put(Sqlite.COL_SENSITIVE, account.isSensitive());
|
||||
values.put(Sqlite.COL_PRIVACY, account.getPrivacy());
|
||||
return db.update(Sqlite.TABLE_USER_ACCOUNT,
|
||||
values, Sqlite.COL_USER_ID + " = ? AND " + Sqlite.COL_USERNAME + " =?",
|
||||
new String[]{account.getId(), account.getUsername()});
|
||||
|
@ -325,6 +369,8 @@ public class AccountDAO {
|
|||
account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID)));
|
||||
account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET)));
|
||||
account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN)));
|
||||
account.setSensitive(c.getInt(c.getColumnIndex(Sqlite.COL_SENSITIVE)) == 1);
|
||||
account.setPrivacy((c.getString(c.getColumnIndex(Sqlite.COL_PRIVACY))));
|
||||
//Close the cursor
|
||||
c.close();
|
||||
|
||||
|
@ -368,6 +414,8 @@ public class AccountDAO {
|
|||
account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID)));
|
||||
account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET)));
|
||||
account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN)));
|
||||
account.setSensitive(c.getInt(c.getColumnIndex(Sqlite.COL_SENSITIVE)) == 1);
|
||||
account.setPrivacy((c.getString(c.getColumnIndex(Sqlite.COL_PRIVACY))));
|
||||
accounts.add(account);
|
||||
}
|
||||
//Close the cursor
|
||||
|
|
|
@ -46,7 +46,7 @@ import fr.gouv.etalab.mastodon.helper.Helper;
|
|||
|
||||
public class Sqlite extends SQLiteOpenHelper {
|
||||
|
||||
public static final int DB_VERSION = 28;
|
||||
public static final int DB_VERSION = 29;
|
||||
public static final String DB_NAME = "mastodon_etalab_db";
|
||||
public static SQLiteDatabase db;
|
||||
private static Sqlite sInstance;
|
||||
|
@ -115,6 +115,8 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
static final String COL_IS_MODERATOR = "IS_MODERATOR";
|
||||
static final String COL_IS_ADMIN = "IS_ADMIN";
|
||||
static final String COL_UPDATED_AT = "UPDATED_AT";
|
||||
static final String COL_PRIVACY = "PRIVACY";
|
||||
static final String COL_SENSITIVE = "SENSITIVE";
|
||||
|
||||
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, "
|
||||
|
@ -129,6 +131,8 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
+ COL_IS_ADMIN + " INTEGER DEFAULT 0, "
|
||||
+ COL_CLIENT_ID + " TEXT, " + COL_CLIENT_SECRET + " TEXT, " + COL_REFRESH_TOKEN + " TEXT,"
|
||||
+ COL_UPDATED_AT + " TEXT, "
|
||||
+ COL_PRIVACY + " TEXT, "
|
||||
+ COL_SENSITIVE + " INTEGER DEFAULT 0, "
|
||||
+ COL_INSTANCE + " TEXT NOT NULL, " + COL_OAUTHTOKEN + " TEXT NOT NULL, " + COL_CREATED_AT + " TEXT NOT NULL)";
|
||||
|
||||
|
||||
|
@ -191,7 +195,7 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
static final String COL_REBLOGGED = "REBLOGGED";
|
||||
static final String COL_FAVOURITED = "FAVOURITED";
|
||||
static final String COL_MUTED = "MUTED";
|
||||
static final String COL_SENSITIVE = "SENSITIVE";
|
||||
|
||||
static final String COL_SPOILER_TEXT = "SPOILER_TEXT";
|
||||
static final String COL_VISIBILITY = "VISIBILITY";
|
||||
static final String COL_MEDIA_ATTACHMENTS = "MEDIA_ATTACHMENTS";
|
||||
|
@ -389,6 +393,9 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
db.execSQL(CREATE_TABLE_TRACKING_BLOCK);
|
||||
case 27:
|
||||
db.execSQL(CREATE_TABLE_TIMELINES);
|
||||
case 28:
|
||||
db.execSQL("ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_PRIVACY + " TEXT");
|
||||
db.execSQL("ALTER TABLE " + TABLE_USER_ACCOUNT + " ADD COLUMN " + COL_SENSITIVE + " INTEGER DEFAULT 0");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -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="#FFFFFFFF"
|
||||
android:pathData="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/>
|
||||
</vector>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="#77000000" />
|
||||
|
||||
<solid android:color="#77000000" />
|
||||
|
||||
<padding
|
||||
android:left="1dp"
|
||||
android:right="1dp"
|
||||
android:bottom="1dp"
|
||||
android:top="1dp" />
|
||||
|
||||
<corners android:radius="5dp" />
|
||||
</shape>
|
|
@ -91,6 +91,20 @@
|
|||
android:layout_width="40dp"
|
||||
android:layout_height="40dp" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/action_back"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:src="@drawable/ic_back"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:contentDescription="@string/go_back" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/account_menu"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
|
|
|
@ -207,6 +207,13 @@
|
|||
android:text="@string/set_lock_account"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<!-- Sensitive content -->
|
||||
<CheckBox
|
||||
android:layout_marginTop="10dp"
|
||||
android:id="@+id/set_sensitive_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/set_sensitive_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<Button
|
||||
android:layout_marginTop="5dp"
|
||||
|
|
|
@ -90,6 +90,20 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/action_back"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:src="@drawable/ic_back"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:contentDescription="@string/go_back" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/account_menu"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
|
@ -436,7 +450,7 @@
|
|||
android:text="@string/disclaimer_full"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</android.support.v7.widget.Toolbar>
|
||||
</android.support.v7.widget.Toolbar>
|
||||
<android.support.design.widget.TabLayout
|
||||
android:id="@+id/account_tabLayout"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Copyright 2017 Thomas Schneider
|
||||
|
||||
This file is a part of Mastalab
|
||||
|
@ -15,54 +14,75 @@
|
|||
You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
||||
see <http://www.gnu.org/licenses>.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/account_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/account_container"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:orientation="horizontal">
|
||||
android:layout_marginBottom="5dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_gravity="center"
|
||||
android:id="@+id/account_pp"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:contentDescription="@string/profile_picture"/>
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/profile_picture"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/account_dn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:maxLines="1"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintBottom_toTopOf="@id/account_un"
|
||||
app:layout_constraintLeft_toRightOf="@id/account_pp"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/account_un"
|
||||
android:padding="5dp"
|
||||
android:maxLines="1"
|
||||
android:gravity="center"
|
||||
android:textSize="16sp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:gravity="end"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<Button
|
||||
android:id="@+id/btn_authorize"
|
||||
android:text="@string/authorize"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_gravity="end"
|
||||
android:gravity="center"
|
||||
style="@style/Base.Widget.AppCompat.Button.Small"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<Button
|
||||
android:id="@+id/btn_reject"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:text="@string/reject"
|
||||
android:layout_gravity="end"
|
||||
android:gravity="center"
|
||||
style="@style/Base.Widget.AppCompat.Button.Small"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:maxLines="1"
|
||||
android:textSize="15sp"
|
||||
app:layout_constraintBottom_toTopOf="@id/btn_top_barrier"
|
||||
app:layout_constraintLeft_toRightOf="@id/account_pp"
|
||||
app:layout_constraintTop_toBottomOf="@id/account_dn" />
|
||||
|
||||
</LinearLayout>
|
||||
<android.support.constraint.Barrier
|
||||
android:id="@+id/btn_top_barrier"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="top"
|
||||
app:constraint_referenced_ids="btn_authorize,btn_reject" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_authorize"
|
||||
style="@style/Base.Widget.AppCompat.Button.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:text="@string/authorize"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@id/btn_reject" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_reject"
|
||||
style="@style/Base.Widget.AppCompat.Button.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:text="@string/reject"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
|
@ -416,268 +416,279 @@
|
|||
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="1dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/show_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:contentDescription="@string/show_media"
|
||||
android:id="@+id/status_prev1"
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="1dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
android:contentDescription="@string/show_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent">
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2"
|
||||
android:contentDescription="@string/show_media"
|
||||
android:id="@+id/status_prev1"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
android:layout_height="30dp" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="match_parent">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:id="@+id/status_prev2"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/status_show_more"
|
||||
android:visibility="gone"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_photo"
|
||||
android:drawableStart="@drawable/ic_photo"
|
||||
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" />
|
||||
<RelativeLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_show_more"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
>
|
||||
<TextView
|
||||
android:textSize="20sp"
|
||||
android:gravity="center"
|
||||
android:id="@+id/show_more_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_centerInParent="true"
|
||||
android:padding="12dp"
|
||||
android:background="@drawable/rounded_label_sensitive"
|
||||
android:textColor="#ffffffff"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
|
|
|
@ -372,277 +372,283 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
</FrameLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="1dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1"
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="1dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent">
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2"
|
||||
android:id="@+id/status_prev1"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="match_parent">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:id="@+id/status_prev2"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/status_show_more"
|
||||
android:visibility="gone"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_photo"
|
||||
android:drawableStart="@drawable/ic_photo"
|
||||
android:gravity="center_vertical"
|
||||
android:drawablePadding="5dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
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" />
|
||||
<RelativeLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_show_more"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
>
|
||||
<TextView
|
||||
android:textSize="20sp"
|
||||
android:gravity="center"
|
||||
android:id="@+id/show_more_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_centerInParent="true"
|
||||
android:padding="12dp"
|
||||
android:background="@drawable/rounded_label_sensitive"
|
||||
android:textColor="#ffffffff"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/status_spoiler_mention_container"
|
||||
|
|
|
@ -374,276 +374,281 @@
|
|||
android:layout_height="match_parent"/>
|
||||
</FrameLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="1dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1"
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="1dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
android:contentDescription="@string/hide_media"/>
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent">
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2"
|
||||
android:id="@+id/status_prev1"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="match_parent">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:id="@+id/status_prev2"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/status_show_more"
|
||||
android:visibility="gone"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_photo"
|
||||
android:drawableStart="@drawable/ic_photo"
|
||||
android:gravity="center_vertical"
|
||||
android:drawablePadding="5dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
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" />
|
||||
<RelativeLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_show_more"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
>
|
||||
<TextView
|
||||
android:textSize="20sp"
|
||||
android:gravity="center"
|
||||
android:id="@+id/show_more_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_centerInParent="true"
|
||||
android:padding="12dp"
|
||||
android:background="@drawable/rounded_label_sensitive"
|
||||
android:textColor="#ffffffff"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/status_spoiler_mention_container"
|
||||
|
|
|
@ -302,163 +302,130 @@
|
|||
android:layout_height="match_parent"/>
|
||||
</FrameLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="1dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1"
|
||||
android:id="@+id/status_horizontal_document_container"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/horizontal_second_image"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_h"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_width="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="1dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_h"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play_h"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:id="@+id/hide_preview_h"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
|
@ -468,102 +435,144 @@
|
|||
android:contentDescription="@string/hide_media" />
|
||||
</RelativeLayout>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent">
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:id="@+id/status_document_container"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev2"
|
||||
android:id="@+id/status_prev1"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev1_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video" />
|
||||
<ImageView
|
||||
android:id="@+id/hide_preview"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:src="@drawable/ic_remove_red_eye_img"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/hide_media" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:id="@+id/status_container2"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
android:layout_height="match_parent">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:id="@+id/status_prev2"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_prev2_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
android:contentDescription="@string/play_video" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="2dp"
|
||||
android:id="@+id/status_container3"
|
||||
android:layout_height="0dp"
|
||||
android:baselineAligned="false">
|
||||
<RelativeLayout
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev3_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:visibility="gone"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/status_prev4_container"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4"
|
||||
android:layout_width="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/status_prev4_play"
|
||||
android:layout_centerInParent="true"
|
||||
android:visibility="gone"
|
||||
android:layout_width="30dp"
|
||||
android:src="@drawable/ic_play_arrow"
|
||||
android:layout_height="30dp"
|
||||
android:contentDescription="@string/play_video"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/status_show_more"
|
||||
android:visibility="gone"
|
||||
android:textAllCaps="false"
|
||||
android:drawableLeft="@drawable/ic_photo"
|
||||
android:drawableStart="@drawable/ic_photo"
|
||||
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" />
|
||||
<RelativeLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/status_show_more"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
>
|
||||
<TextView
|
||||
android:textSize="20sp"
|
||||
android:gravity="center"
|
||||
android:id="@+id/show_more_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_centerInParent="true"
|
||||
android:padding="12dp"
|
||||
android:background="@drawable/rounded_label_sensitive"
|
||||
android:textColor="#ffffffff"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/status_spoiler_mention_container"
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
<item>هل تود حجب هذا الحساب؟</item>
|
||||
<item>هل تود الإبلاغ عن هذا التبويق؟</item>
|
||||
<item>هل تريد حظر هذا النطاق؟</item>
|
||||
<item>Unmute this account?</item>
|
||||
<item>هل تود إلغاء كتم هذا الحساب؟</item>
|
||||
</string-array>
|
||||
<string-array name="action_notification">
|
||||
<item>إشعار</item>
|
||||
|
@ -215,7 +215,7 @@
|
|||
<!-- Scheduled toots -->
|
||||
<string name="no_scheduled_toots">ليس عندك أية تبويقات مبرمَجة للعرض!</string>
|
||||
<string name="no_scheduled_toots_indications">قم بتحرير تبويق ثم اختر <b>برمَجة</b> على القائمة العلوية.</string>
|
||||
<string name="remove_scheduled">هل تود حذف التبويق المُبرمَج ؟</string>
|
||||
<string name="remove_scheduled">هل تود حذف التبويق المُبرمَج؟</string>
|
||||
<string name="media_count">الوسائط: %d</string>
|
||||
<string name="toot_scheduled">تمت برمجة التبويق بنجاح!</string>
|
||||
<string name="toot_scheduled_date">يجب أن يكون تاريخ البرمجة أكبر من الساعة الحالية!</string>
|
||||
|
@ -237,7 +237,7 @@
|
|||
<item quantity="two">و إشعارين</item>
|
||||
<item quantity="few">و %d اشعارات</item>
|
||||
<item quantity="many">و %d اشعارات</item>
|
||||
<item quantity="other">و %d اشعارات</item>
|
||||
<item quantity="other">و %d إشعارات أخرى</item>
|
||||
</plurals>
|
||||
<plurals name="other_notif_hometimeline">
|
||||
<item quantity="zero">ولا تبويق آخر لاكتشافه</item>
|
||||
|
@ -251,12 +251,12 @@
|
|||
<item quantity="zero">%d إعجاب</item>
|
||||
<item quantity="one">%d إعجاب</item>
|
||||
<item quantity="two">%d إعجابان</item>
|
||||
<item quantity="few">%d إعجابين</item>
|
||||
<item quantity="few">%d إعجابات</item>
|
||||
<item quantity="many">%d إعجابات</item>
|
||||
<item quantity="other">%d إعجابات</item>
|
||||
</plurals>
|
||||
<string name="delete_notification_ask">هل تريد حذف الإخطار؟</string>
|
||||
<string name="delete_notification_ask_all">هل تود حذف كافة الإخطارات؟</string>
|
||||
<string name="delete_notification_ask">هل تريد حذف الإشعار؟</string>
|
||||
<string name="delete_notification_ask_all">هل تود حذف كافة الإشعارات؟</string>
|
||||
<string name="delete_notification">تم حذف الإشعار بنجاح!</string>
|
||||
<string name="delete_notification_all">تم حذف جميع الإشعارات بنجاح!</string>
|
||||
<!-- HEADER -->
|
||||
|
@ -280,7 +280,7 @@
|
|||
<string name="toast_unstatus">تم حذف التبويق بنجاح!</string>
|
||||
<string name="toast_pin">تم تثبيت التبويق بنجاح!</string>
|
||||
<string name="toast_unpin">تم إلغاء تثبيت التبويق بنجاح!</string>
|
||||
<string name="toast_error">عذراً ! حدث خطأ !</string>
|
||||
<string name="toast_error">عذراً ! حدث خطأ!</string>
|
||||
<string name="toast_code_error">طرأ هناك خطأ! لم يقم مثيل الخادم بإعادة رمز المصادقة!</string>
|
||||
<string name="toast_error_instance">يبدو أنّ اسم نطاق مثيل الخادوم غير صالح!</string>
|
||||
<string name="toast_error_loading_account">طرأ هناك خطأ أثناء التحوّل مِن حساب إلى آخر!</string>
|
||||
|
@ -321,7 +321,7 @@
|
|||
<string name="set_notif_follow_share">تنبيهي عندما يقوم أحدهم بترقية منشوري</string>
|
||||
<string name="set_notif_follow_add">إخطاري عندما يُعجَب أحدهم بأحد منشوراتي</string>
|
||||
<string name="set_notif_follow_mention">إخطاري عندما يُشار إليّ</string>
|
||||
<string name="set_notif_follow_poll">Notify when a poll ended</string>
|
||||
<string name="set_notif_follow_poll">أرسل إشعاراً عند انتهاء استطلاع الرأي</string>
|
||||
<string name="set_share_validation">عرض مربع حوار للتأكيد قبل ترقية أي تبويق</string>
|
||||
<string name="set_share_validation_fav">عرض مربع حوار للتأكيد قبل إضافة أي تبويق إلى المفضلة</string>
|
||||
<string name="set_wifi_only">تفعيل الإخطار في وضع الواي فاي فقط</string>
|
||||
|
@ -590,7 +590,7 @@
|
|||
<string name="channel_notif_boost">ترقية جديدة</string>
|
||||
<string name="channel_notif_fav">مفضلة جديدة</string>
|
||||
<string name="channel_notif_mention">إشارة جديدة</string>
|
||||
<string name="channel_notif_poll">Poll Ended</string>
|
||||
<string name="channel_notif_poll">انتهى استطلاع الرأي</string>
|
||||
<string name="channel_notif_toot">تبويق جديد</string>
|
||||
<string name="channel_notif_backup">النسخ الاحتياطي للتبويقات</string>
|
||||
<string name="channel_notif_media">تنزيل الوسائط</string>
|
||||
|
@ -659,6 +659,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[افتح قائمة تبويق ما ثم اختر <b>برمجة ترقية</b>.]]></string>
|
||||
<string name="art_menu">الخيط الفني</string>
|
||||
<string name="open_menu">فتح القائمة</string>
|
||||
<string name="go_back">العودة</string>
|
||||
<string name="app_logo">شعار التطبيق</string>
|
||||
<string name="profile_picture">الصورة الشخصية</string>
|
||||
<string name="profile_banner">رأسية الصفحة الشخصية</string>
|
||||
|
@ -676,7 +677,7 @@
|
|||
<string name="card_view_image">صورة البطاقة</string>
|
||||
<string name="hide_media">إخفاء الوسائط</string>
|
||||
<string name="favicon">أيقونة المفضلة</string>
|
||||
<string name="media_description">وصف للمعاقين بصريا</string>
|
||||
<string name="media_description">إضافة وصف على الصور (للمعاقين بصريا)</string>
|
||||
<string-array name="filter_expire">
|
||||
<item>أبدًا</item>
|
||||
<item>30 دقيقة</item>
|
||||
|
@ -747,11 +748,11 @@
|
|||
<string name="video_uploaded_action">اضغط هنا لتعديل بيانات الفيديو.</string>
|
||||
<string name="delete_video">احذف الفيديو</string>
|
||||
<string name="delete_video_confirmation">هل أنت متأكد أنك تود حذف هذا الفيديو؟</string>
|
||||
<string name="no_video_uploaded">لم يتم ارسال أية فيديوهات بعد!</string>
|
||||
<string name="no_video_uploaded">لم يتم إرسال أية فيديوهات بعد!</string>
|
||||
<string name="display_nsfw_videos">عرض الفيديوهات الحساسة</string>
|
||||
<string name="default_channel_of">القناة الافتراضية لـ %s</string>
|
||||
<string name="no_video_to_display">لا توجد أية فيديوهات لعرضها!</string>
|
||||
<string name="add_image_to_favorite">إضافة إلى المفضلة</string>
|
||||
<string name="add_image_to_favorite">إضافة الوسائط إلى المفضلة</string>
|
||||
<string name="leave_a_comment">اترك تعليقاً</string>
|
||||
<string name="share">شارك</string>
|
||||
<string name="my_pictures">صوري</string>
|
||||
|
@ -814,7 +815,7 @@
|
|||
<string name="set_retrieve_metadata_share_from_extras">ارفاق صورة عند مشاركة عنوان رابط</string>
|
||||
<!-- end languages -->
|
||||
<string name="poll">استطلاع رأي</string>
|
||||
<string name="polls">Polls</string>
|
||||
<string name="polls">استطلاعات الرأي</string>
|
||||
<string name="create_poll">إنشاء استطلاع</string>
|
||||
<string name="poll_choice_1">الخيار 1</string>
|
||||
<string name="poll_choice_2">الخيار 2</string>
|
||||
|
@ -827,7 +828,7 @@
|
|||
<string name="vote">تصويت</string>
|
||||
<string name="poll_not_private">لا يمكن إرفاق استطلاع للرأي في الرسائل المباشِرة!</string>
|
||||
<string name="notif_poll">لقد انقضت مدة استطلاع رأي قد قُمتَ بالتصويت عليه مِن قَبل</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="notif_poll_self">لقد انتهت مدة استطلاع رأي قد قُمتَ بنشره</string>
|
||||
<string name="settings_category_notif_customize">تخصيص</string>
|
||||
<string name="settings_category_notif_categories">الفئات</string>
|
||||
<string name="settings_category_notif_news">الأخبار</string>
|
||||
|
@ -841,12 +842,12 @@
|
|||
<string name="hide_timeline">إخفاء الخيط الزمني</string>
|
||||
<string name="reorder_timelines">إعادة ترتيب الخيوط الزمنية</string>
|
||||
<string name="undo">إلغاء</string>
|
||||
<string name="visible_tabs_needed">You need to keep two visible tabs!</string>
|
||||
<string name="visible_tabs_needed">يجب الإبقاء على لسانَين ظاهرين!</string>
|
||||
<string name="action_reorder_timeline">إعادة ترتيب الخيوط الزمنية</string>
|
||||
<string name="warning_list_deletion">Use the lists entry for deleting this list!</string>
|
||||
<string name="warning_main_timeline">الخيوط الرئيسية يمكن فقط إخفاءها!</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="add_timeline">إضافة خيط زمني</string>
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="zero">%d votes</item>
|
||||
<item quantity="one">%d vote</item>
|
||||
|
@ -869,7 +870,7 @@
|
|||
<item>7 أيام</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_mode">
|
||||
<item>تورنت</item>
|
||||
<item>Webview</item>
|
||||
<item>تدفق مباشر</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
@ -636,6 +636,7 @@ Quan s\'esborra l\'aplicació s\'eliminen les dades immediatament.\n
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Obre el menú d'un toot i selecciona <b>Temporalitza la difusió</b>.]]></string>
|
||||
<string name="art_menu">Pissarra de l\'art</string>
|
||||
<string name="open_menu">Obrir menú</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo de l\'aplicació</string>
|
||||
<string name="profile_picture">Foto de perfil</string>
|
||||
<string name="profile_banner">Bànner de perfil</string>
|
||||
|
|
|
@ -651,6 +651,7 @@ Uživatelské jméno a heslo nejsou nikdy ukládány. Jsou použity pouze během
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Otevřete menu tootu a vyberte <b>Naplánovat boost</b>.]]></string>
|
||||
<string name="art_menu">Art časová osa</string>
|
||||
<string name="open_menu">Otevřete nabídku</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo aplikace</string>
|
||||
<string name="profile_picture">Profilový obrázek</string>
|
||||
<string name="profile_banner">Profilová hlavička</string>
|
||||
|
|
|
@ -660,6 +660,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Agorwch y ddewislen ar gyfer tŵt ac yna dewiswch <b>Trefnu bŵst</b>.]]></string>
|
||||
<string name="art_menu">Ffrwd gelf</string>
|
||||
<string name="open_menu">Agor dewislen</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo y rhaglen</string>
|
||||
<string name="profile_picture">Llun proffil</string>
|
||||
<string name="profile_banner">Baner proffil</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
<item>Diesen Nutzer blockieren?</item>
|
||||
<item>Diesen Toot melden?</item>
|
||||
<item>Diese Domäne blockieren?</item>
|
||||
<item>Nutzer nicht mehr stummschalten?</item>
|
||||
<item>Lautlosmodus für dieses Konto aufheben?</item>
|
||||
</string-array>
|
||||
<string-array name="action_notification">
|
||||
<item>Benachrichtigen</item>
|
||||
|
@ -172,8 +172,8 @@
|
|||
<string name="toot_reply_content_title">Du antwortest auf diesen Toot:</string>
|
||||
<string name="toot_sensitive">Sensibler Inhalt?</string>
|
||||
<string-array name="toot_visibility">
|
||||
<item>Absenden an öffentliche Zeitleiste</item>
|
||||
<item>Nicht an öffentliche Zeitleiste absenden</item>
|
||||
<item>In öffentliche Zeitleisten eintragen</item>
|
||||
<item>Nicht in öffentliche Zeitleisten eintragen</item>
|
||||
<item>Nur an Folgende senden</item>
|
||||
<item>Nur an erwähnten Nutzer absenden</item>
|
||||
</string-array>
|
||||
|
@ -578,7 +578,7 @@ Durch das Löschen der Anwendung werden diese Daten sofort entfernt.\n
|
|||
<string name="no_blocked_domain">Keine blockierten Domänen!</string>
|
||||
<string name="unblock_domain_confirm">Domäne nicht mehr blockieren</string>
|
||||
<string name="unblock_domain_confirm_message">Möchten Sie %s wirklich entsperren?</string>
|
||||
<string name="block_domain_confirm_message">Sicher, dass du %s blockieren möchtest?</string>
|
||||
<string name="block_domain_confirm_message">Möchten Sie %s wirklich sperren?\n\nEs werden keine Inhalte aus dieser Domain in einer öffentlichen Zeitleiste oder in Ihren Benachrichtigungen angezeigt. Ihre Follower aus dieser Domain werden entfernt.</string>
|
||||
<string name="blocked_domains">Blockierte Domänen</string>
|
||||
<string name="block_domain">Blockiere Domäne</string>
|
||||
<string name="toast_block_domain">Die Domäne ist blockiert</string>
|
||||
|
@ -635,6 +635,7 @@ Durch das Löschen der Anwendung werden diese Daten sofort entfernt.\n
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Öffne das Menü eines Toots und wähle <b>Teilen planen</b>.]]></string>
|
||||
<string name="art_menu">Kunst-Zeitlinie</string>
|
||||
<string name="open_menu">Öffne Menü</string>
|
||||
<string name="go_back">Zurück</string>
|
||||
<string name="app_logo">Logo der Anwendung</string>
|
||||
<string name="profile_picture">Profilbild</string>
|
||||
<string name="profile_banner">Profilbanner</string>
|
||||
|
@ -801,7 +802,7 @@ Sobald Sie die ersten Buchstaben eintippen, werden Namensvorschläge angezeigt\n
|
|||
<string name="vote">Abstimmen</string>
|
||||
<string name="poll_not_private">Eine Umfrage kann nicht an eine direkte Nachricht angehängt werden!</string>
|
||||
<string name="notif_poll">Eine Umfrage, in der du abgestimmt hast, ist beendet</string>
|
||||
<string name="notif_poll_self">Eine deiner Umfragen ist beendet</string>
|
||||
<string name="notif_poll_self">Eine Ihrer Umfragen ist beendet</string>
|
||||
<string name="settings_category_notif_customize">Anpassen</string>
|
||||
<string name="settings_category_notif_categories">Kategorien</string>
|
||||
<string name="settings_category_notif_news">Neuigkeiten</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Άνοιξε το κατάστιχο των επιλογών μίας φωνής και επέλεξε τον <b>Προγραμματισμό της ανύψωσης</b> .]]></string>
|
||||
<string name="art_menu">Χρονοστήλη καλλιτεχνίας</string>
|
||||
<string name="open_menu">Άνοιγμα του κατάλογου επιλογών</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Το λογότυπο της εφαρμογής</string>
|
||||
<string name="profile_picture">Εικόνα του προσώπου</string>
|
||||
<string name="profile_banner">Σημαία του προσώπου</string>
|
||||
|
|
|
@ -640,6 +640,7 @@ https://yandex.ru/legal/confidential/?lang=en </string>
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Línea de tiempo de arte</string>
|
||||
<string name="open_menu">Abrir menú</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo de la aplicación</string>
|
||||
<string name="profile_picture">Imagen del perfil</string>
|
||||
<string name="profile_banner">Banner de perfil</string>
|
||||
|
|
|
@ -644,6 +644,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Ireko toot baten menua eta hautatu <b>programatu bultzada</b>.]]></string>
|
||||
<string name="art_menu">Arte denbora-lerroa</string>
|
||||
<string name="open_menu">Ireki menua</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Aplikazioaren logoa</string>
|
||||
<string name="profile_picture">Profilaren Irudia</string>
|
||||
<string name="profile_banner">Profileko banda</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<string name="toast_account_changed" formatted="false">Fonctionne maintenant avec le compte %1$s</string>
|
||||
<string name="add_account">Ajouter un compte</string>
|
||||
<string name="clipboard">Le contenu du pouet a été copié dans le presse-papier</string>
|
||||
<string name="clipboard_url">L\'URL du toot a été copiée dans le presse-papiers</string>
|
||||
<string name="clipboard_url">L\'URL du pouet a été copiée dans le presse-papier</string>
|
||||
<string name="change">Changer</string>
|
||||
<string name="choose_picture">Sélectionnez une photo…</string>
|
||||
<string name="clear">Nettoyer</string>
|
||||
|
@ -102,7 +102,7 @@
|
|||
<string name="no_status">Aucun pouet à afficher !</string>
|
||||
<string name="fav_added">Pouet ajouté aux favoris !</string>
|
||||
<string name="fav_removed">Pouet supprimé des favoris !</string>
|
||||
<string name="reblog_added">Pouet partagé !</string>
|
||||
<string name="reblog_added">Le pouet a été partagé !</string>
|
||||
<string name="reblog_removed">Pouet supprimé du partage !</string>
|
||||
<string name="reblog_by">Partagé par %1$s</string>
|
||||
<string name="favourite_add">Ajouter ce pouet aux favoris ?</string>
|
||||
|
@ -125,7 +125,7 @@
|
|||
<item>Bloquer ce compte ?</item>
|
||||
<item>Signaler ce pouet ?</item>
|
||||
<item>Désirez-vous bloquer ce domaine ?</item>
|
||||
<item>Unmute this account?</item>
|
||||
<item>Ne plus masquer ce compte ?</item>
|
||||
</string-array>
|
||||
<string-array name="action_notification">
|
||||
<item>Notifier</item>
|
||||
|
@ -305,7 +305,7 @@
|
|||
<string name="set_notif_follow_share">Notifier lorsque quelqu’un partage mes pouets</string>
|
||||
<string name="set_notif_follow_add">Notifier lorsque quelqu’un ajoute mes pouets à ses favoris</string>
|
||||
<string name="set_notif_follow_mention">Notifier lorsque quelqu’un me mentionne</string>
|
||||
<string name="set_notif_follow_poll">Notify when a poll ended</string>
|
||||
<string name="set_notif_follow_poll">Me notifier lorsqu’un sondage est terminé</string>
|
||||
<string name="set_share_validation">Confirmer avant de partager</string>
|
||||
<string name="set_share_validation_fav">Confirmer avant d’ajouter aux favoris</string>
|
||||
<string name="set_wifi_only">Notifier en WIFI seulement</string>
|
||||
|
@ -504,7 +504,7 @@
|
|||
<string name="poxy_port">Port</string>
|
||||
<string name="poxy_login">Identifiant</string>
|
||||
<string name="poxy_password">Mot de passe</string>
|
||||
<string name="set_theme">Thèmes :</string>
|
||||
<string name="set_theme">Thème :</string>
|
||||
<string name="set_compact_mode">Mode compact</string>
|
||||
<string name="set_share_details">Ajouter les détails du pouet en le partageant</string>
|
||||
<string name="support_the_app_on_liberapay">Soutenir l’app sur Liberapay</string>
|
||||
|
@ -571,10 +571,10 @@
|
|||
<string name="expand_image">Étendre automatiquement les médias cachés</string>
|
||||
<string name="set_display_follow_instance">Afficher le bouton de suivi d’instances</string>
|
||||
<string name="channel_notif_follow">Nouvel abonnement</string>
|
||||
<string name="channel_notif_boost">Nouveau Repouet</string>
|
||||
<string name="channel_notif_boost">Nouveau partage</string>
|
||||
<string name="channel_notif_fav">Nouveau Favori</string>
|
||||
<string name="channel_notif_mention">Nouvelle mention</string>
|
||||
<string name="channel_notif_poll">Poll Ended</string>
|
||||
<string name="channel_notif_poll">Sondage terminé</string>
|
||||
<string name="channel_notif_toot">Nouveau pouet</string>
|
||||
<string name="channel_notif_backup">Sauvegarde des Pouets</string>
|
||||
<string name="channel_notif_media">Téléchargement des Médias</string>
|
||||
|
@ -620,7 +620,7 @@
|
|||
<string name="set_old_direct_timeline">Utiliser le fil direct antérieur à Mastodon 2.6</string>
|
||||
<string name="set_display_video_preview">Afficher les aperçus des vidéos</string>
|
||||
<string name="thanks_text_support">Support de Gitlab</string>
|
||||
<string name="action_bug_report">Signaler un bug</string>
|
||||
<string name="action_bug_report">Signaler un bogue</string>
|
||||
<string name="no_mail_client">Aucun client de messagerie n’est installé.</string>
|
||||
<string name="bug_report_mail">Envoyer un rapport de bogue</string>
|
||||
<string name="account_id_clipbloard">L’ID du compte été copié vers le presse-papiers !</string>
|
||||
|
@ -643,10 +643,11 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Ouvrez le menu d’un pouet puis choisissez <b>Programmer un boost</b>.]]></string>
|
||||
<string name="art_menu">Fil artistique</string>
|
||||
<string name="open_menu">Ouvrir le menu</string>
|
||||
<string name="go_back">Retour</string>
|
||||
<string name="app_logo">Logo de l’application</string>
|
||||
<string name="profile_picture">Photo du profil</string>
|
||||
<string name="profile_banner">Bannière du profil</string>
|
||||
<string name="contact_instance_admin">Contacter l\'administrateur de l\'instance</string>
|
||||
<string name="contact_instance_admin">Contacter l’administrateur de l’instance</string>
|
||||
<string name="add_new">Ajouter un nouveau</string>
|
||||
<string name="mastohost_logo">Logo de MastoHost</string>
|
||||
<string name="emoji_picker">Sélecteur d’émojis</string>
|
||||
|
@ -775,29 +776,29 @@ Le bouton de connexion s’activera une fois qu’un domaine valide sera renseig
|
|||
<string name="action_logout_account">Déconnexion du compte</string>
|
||||
<string name="set_optimize_loading">Optimiser le temps de chargement</string>
|
||||
<string name="all">Tout</string>
|
||||
<string name="about_opencollective">Soutenir l\'application</string>
|
||||
<string name="about_opencollective">Soutenir l’application</string>
|
||||
<string name="more_about_opencollective">Open Collective permet aux groupes de créer rapidement un collectif, de collecter des fonds et de les gérer de manière transparente.</string>
|
||||
<string name="copy_link">Copier le lien</string>
|
||||
<string name="connect_instance">Connecter</string>
|
||||
<string name="set_normal">Nomal</string>
|
||||
<string name="set_normal">Normal</string>
|
||||
<string name="set_compact">Compact</string>
|
||||
<string name="set_console">Terminal</string>
|
||||
<string name="set_mode">Définir le mode d’affichage</string>
|
||||
<string name="set_security_provider">Patcher le fournisseur de sécurité</string>
|
||||
<string name="update_tracking_domains">Mettre à jour les domaines de suivi</string>
|
||||
<string name="tracking_db_updated">La base de données de suivi a été mise à jour !</string>
|
||||
<string name="calls_blocked">Appels http bloqués par l\'application</string>
|
||||
<string name="calls_blocked">appels http bloqués par l’application</string>
|
||||
<string name="list_of_blocked_domains">Liste des appels bloqués</string>
|
||||
<string name="submit">Envoyer</string>
|
||||
<string name="data_base_exported">La base de données a été exportée!</string>
|
||||
<string name="featured_hashtags">Hashtags recommandés</string>
|
||||
<string name="filter_timeline_with_a_tag">Filtrer la timeline avec des tags</string>
|
||||
<string name="no_tags">Aucun tag</string>
|
||||
<string name="no_tags">Aucune étiquette</string>
|
||||
<string name="set_hide_delete_notification_on_tab">Cacher le bouton de suppression de notification sur l\'onglet de notification</string>
|
||||
<string name="set_retrieve_metadata_share_from_extras">Attacher une image lors du partage d\'une URL</string>
|
||||
<!-- end languages -->
|
||||
<string name="poll">Sondages</string>
|
||||
<string name="polls">Polls</string>
|
||||
<string name="poll">Sondage</string>
|
||||
<string name="polls">Sondages</string>
|
||||
<string name="create_poll">Créer un sondage</string>
|
||||
<string name="poll_choice_1">Choix 1</string>
|
||||
<string name="poll_choice_2">Choix 2</string>
|
||||
|
@ -808,9 +809,9 @@ Le bouton de connexion s’activera une fois qu’un domaine valide sera renseig
|
|||
<string name="poll_finish_at">fin à %s</string>
|
||||
<string name="refresh_poll">Actualiser le sondage</string>
|
||||
<string name="vote">Voter</string>
|
||||
<string name="poll_not_private">Un sondage ne peut pas être attaché à un message direct!</string>
|
||||
<string name="notif_poll">Le sondage auquel vous avez participé est maintenant terminé</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="poll_not_private">Un sondage ne peut pas être attaché à un message direct !</string>
|
||||
<string name="notif_poll">Un sondage auquel vous avez participé est maintenant terminé</string>
|
||||
<string name="notif_poll_self">Un sondage que vous avez publié est maintenant terminé</string>
|
||||
<string name="settings_category_notif_customize">Personnaliser</string>
|
||||
<string name="settings_category_notif_categories">Catégories</string>
|
||||
<string name="settings_category_notif_news">Actualités</string>
|
||||
|
@ -818,21 +819,21 @@ Le bouton de connexion s’activera une fois qu’un domaine valide sera renseig
|
|||
<string name="settings_category_notif_advanced">Avancé</string>
|
||||
<string name="set_display_new_badge">Afficher le badge \'new\' sur les pouets non lus</string>
|
||||
<string name="set_display_peertube">Afficher le fil PeerTube</string>
|
||||
<string name="peertube_menu">Peertube</string>
|
||||
<string name="peertube_menu">PeerTube</string>
|
||||
<string name="hide_tab">Cacher l’onglet</string>
|
||||
<string name="move_timeline">Déplacer le fil</string>
|
||||
<string name="hide_timeline">Cacher le fil</string>
|
||||
<string name="reorder_timelines">Réorganiser les fils</string>
|
||||
<string name="undo">Annuler</string>
|
||||
<string name="visible_tabs_needed">You need to keep two visible tabs!</string>
|
||||
<string name="visible_tabs_needed">Vous devez garder deux onglets visibles !</string>
|
||||
<string name="action_reorder_timeline">Réorganiser les fils</string>
|
||||
<string name="warning_list_deletion">Use the lists entry for deleting this list!</string>
|
||||
<string name="warning_main_timeline">Main timelines can only be hidden!</string>
|
||||
<string name="warning_main_timeline">Les fils principaux ne peuvent qu’être masqués !</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="add_timeline">Ajouter un fil</string>
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d vote</item>
|
||||
<item quantity="other">%d votes</item>
|
||||
<item quantity="one">%d voix</item>
|
||||
<item quantity="other">%d voix</item>
|
||||
</plurals>
|
||||
<string-array name="poll_choice_type">
|
||||
<item>Choix unique</item>
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
<string name="set_notif_follow_share">Notificar cando alguén promove un dos seus toots</string>
|
||||
<string name="set_notif_follow_add">Notificar cando alguén favorece un dos seus estados</string>
|
||||
<string name="set_notif_follow_mention">Notificar cando alguén a menciona</string>
|
||||
<string name="set_notif_follow_poll">Notify when a poll ended</string>
|
||||
<string name="set_notif_follow_poll">Notificar cando remate unha sondaxe</string>
|
||||
<string name="set_share_validation">Solicitar confirmación antes de promover</string>
|
||||
<string name="set_share_validation_fav">Solicitar confirmación antes de engadir a favoritos</string>
|
||||
<string name="set_wifi_only">Notificar só cando WiFi</string>
|
||||
|
@ -576,7 +576,7 @@
|
|||
<string name="channel_notif_boost">Nova promoción</string>
|
||||
<string name="channel_notif_fav">Novo favorito</string>
|
||||
<string name="channel_notif_mention">Nova mención</string>
|
||||
<string name="channel_notif_poll">Poll Ended</string>
|
||||
<string name="channel_notif_poll">Rematou a sondaxe</string>
|
||||
<string name="channel_notif_toot">Novo Toot</string>
|
||||
<string name="channel_notif_backup">Respaldo de Toots</string>
|
||||
<string name="channel_notif_media">Descarga de medios</string>
|
||||
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Abra o menú de un toot e escolla <b>Programar promoción</b>.]]></string>
|
||||
<string name="art_menu">Liña temporal Art</string>
|
||||
<string name="open_menu">Abrir menú</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo da aplicación</string>
|
||||
<string name="profile_picture">Imaxe de perfil</string>
|
||||
<string name="profile_banner">Banda do perfil</string>
|
||||
|
@ -801,7 +802,7 @@
|
|||
<string name="set_retrieve_metadata_share_from_extras">Obter metadatos se o URL os comparte desde outras apps</string>
|
||||
<!-- end languages -->
|
||||
<string name="poll">Sondaxe</string>
|
||||
<string name="polls">Polls</string>
|
||||
<string name="polls">Sondaxes</string>
|
||||
<string name="create_poll">Crear sondaxe</string>
|
||||
<string name="poll_choice_1">Opción 1</string>
|
||||
<string name="poll_choice_2">Opción 2</string>
|
||||
|
@ -814,7 +815,7 @@
|
|||
<string name="vote">Votar</string>
|
||||
<string name="poll_not_private">Unha sondaxe non se pode anexar a unha mensaxe directa!</string>
|
||||
<string name="notif_poll">Rematou a sondaxe na que participou</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="notif_poll_self">Rematou unha sondaxe na que tooteou</string>
|
||||
<string name="settings_category_notif_customize">Personalizar</string>
|
||||
<string name="settings_category_notif_categories">Categorías</string>
|
||||
<string name="settings_category_notif_news">Novas</string>
|
||||
|
@ -833,7 +834,7 @@
|
|||
<string name="warning_list_deletion">Utilice os axustes das listas para eliminar esta lista!</string>
|
||||
<string name="warning_main_timeline">As liñas temporais principais só poden ocultarse!</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="add_timeline">Engadir liña temporal</string>
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d voto</item>
|
||||
<item quantity="other">%d votos</item>
|
||||
|
|
|
@ -653,6 +653,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -637,6 +637,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[एक लेख का मेन्यू खोलें और चुनें <b>बूस्ट शैड्यूल करें</b>।]]></string>
|
||||
<string name="art_menu">कला टाइम्लाइन</string>
|
||||
<string name="open_menu">मेन्यू खोलें</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">एेप का चिह्न</string>
|
||||
<string name="profile_picture">प्रोफ़ाइल चित्र</string>
|
||||
<string name="profile_banner">प्रोफ़ाइल बैनर</string>
|
||||
|
|
|
@ -642,6 +642,7 @@ A Yandexnek megvan a saját adatvédelmi szabályzata, ami itt található: http
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Nyisd meg egy toot menüjét és válaszd az <b>Újratoot időzítése</b> opciót.]]></string>
|
||||
<string name="art_menu">Művészies idővonal</string>
|
||||
<string name="open_menu">Menü megnyitása</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Alkalmazás logója</string>
|
||||
<string name="profile_picture">Profilkép</string>
|
||||
<string name="profile_banner">Profilbanner</string>
|
||||
|
|
|
@ -644,6 +644,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -643,6 +643,7 @@ https://yandex.ru/legal/confidential/?lang=en
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
<string name="set_notif_follow_share">Notifica quando qualcuno ricondivide al tuo stato</string>
|
||||
<string name="set_notif_follow_add">Notifica quando qualcuno mette tra i preferiti il tuo stato</string>
|
||||
<string name="set_notif_follow_mention">Notifica quando qualcuno ti menziona</string>
|
||||
<string name="set_notif_follow_poll">Notify when a poll ended</string>
|
||||
<string name="set_notif_follow_poll">Notifica quando termina un sondaggio</string>
|
||||
<string name="set_share_validation">Mostra finestra di dialogo prima della ricondivisione</string>
|
||||
<string name="set_share_validation_fav">Mostra finestra di dialogo prima di aggiungere ai preferiti</string>
|
||||
<string name="set_wifi_only">Notifica solo in WIFI</string>
|
||||
|
@ -576,7 +576,7 @@
|
|||
<string name="channel_notif_boost">Un nuovo boost</string>
|
||||
<string name="channel_notif_fav">Un nuovo mi piace</string>
|
||||
<string name="channel_notif_mention">Una nuova menzione</string>
|
||||
<string name="channel_notif_poll">Poll Ended</string>
|
||||
<string name="channel_notif_poll">Sondaggio terminato</string>
|
||||
<string name="channel_notif_toot">Un nuovo toot</string>
|
||||
<string name="channel_notif_backup">Backup dei toot</string>
|
||||
<string name="channel_notif_media">Scarica i media</string>
|
||||
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Apri il menu di un toot e poi premi <b>Programma boost</b>.]]></string>
|
||||
<string name="art_menu">Timeline Arte</string>
|
||||
<string name="open_menu">Apri menu</string>
|
||||
<string name="go_back">Torna indietro</string>
|
||||
<string name="app_logo">Logo dell\'applicazione</string>
|
||||
<string name="profile_picture">Immagine di profilo</string>
|
||||
<string name="profile_banner">Immagine di copertina</string>
|
||||
|
@ -800,7 +801,7 @@
|
|||
<string name="set_retrieve_metadata_share_from_extras">Recupera metadati se l\'URL che condivide da altre applicazioni</string>
|
||||
<!-- end languages -->
|
||||
<string name="poll">Sondaggio</string>
|
||||
<string name="polls">Polls</string>
|
||||
<string name="polls">Sondaggi</string>
|
||||
<string name="create_poll">Crea un sondaggio</string>
|
||||
<string name="poll_choice_1">Scelta 1</string>
|
||||
<string name="poll_choice_2">Scelta 2</string>
|
||||
|
@ -813,7 +814,7 @@
|
|||
<string name="vote">Vota</string>
|
||||
<string name="poll_not_private">Un sondaggio non può essere allegato ad un messaggio diretto!</string>
|
||||
<string name="notif_poll">Un sondaggio in cui hai votato è terminato</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="notif_poll_self">Un tuo sondaggio è terminato</string>
|
||||
<string name="settings_category_notif_customize">Personalizza</string>
|
||||
<string name="settings_category_notif_categories">Categorie</string>
|
||||
<string name="settings_category_notif_news">Novità</string>
|
||||
|
@ -832,7 +833,7 @@
|
|||
<string name="warning_list_deletion">Usa la voce delle liste per eliminare questa lista!</string>
|
||||
<string name="warning_main_timeline">Le timeline principali possono solo essere nascoste!</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="add_timeline">Aggiungi una timeline</string>
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d voto</item>
|
||||
<item quantity="other">%d voti</item>
|
||||
|
|
|
@ -633,6 +633,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[トゥートのメニューを開いて、<b>ブースト予約</b>を選択してください。]]></string>
|
||||
<string name="art_menu">アートタイムライン</string>
|
||||
<string name="open_menu">メニューを開く</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">アプリケーションのロゴ</string>
|
||||
<string name="profile_picture">プロフィールの写真</string>
|
||||
<string name="profile_banner">プロフィールのバナー</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Ldi umuγ</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Alugu n wesnas</string>
|
||||
<string name="profile_picture">Tugna n umaγnu</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -641,6 +641,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open het menu van een toot en kies <b>Boost inplannen</b>.]]></string>
|
||||
<string name="art_menu">Kunsttijdlijn</string>
|
||||
<string name="open_menu">Menu openen</string>
|
||||
<string name="go_back">Ga terug</string>
|
||||
<string name="app_logo">Logo van de applicatie</string>
|
||||
<string name="profile_picture">Avatar</string>
|
||||
<string name="profile_banner">Omslagfoto op profiel</string>
|
||||
|
|
|
@ -305,7 +305,7 @@
|
|||
<string name="set_notif_follow_share">Varsle når noen booster tootene dine</string>
|
||||
<string name="set_notif_follow_add">Varsle når noen favoriserer tootene dine</string>
|
||||
<string name="set_notif_follow_mention">Varsle når noen nevner deg</string>
|
||||
<string name="set_notif_follow_poll">Notify when a poll ended</string>
|
||||
<string name="set_notif_follow_poll">Varsle når en avstemming er avsluttet</string>
|
||||
<string name="set_share_validation">Vis bekreftelsesdialog før du booster</string>
|
||||
<string name="set_share_validation_fav">Vis bekreftelsesdialog før du legger til i favoritter</string>
|
||||
<string name="set_wifi_only">Varsle kun på WIFI</string>
|
||||
|
@ -567,7 +567,7 @@ Du kan aktivere eller deaktivere disse meldingene senere i innstillingene (Meldi
|
|||
<string name="channel_notif_boost">Ny boost</string>
|
||||
<string name="channel_notif_fav">Ny favoritt</string>
|
||||
<string name="channel_notif_mention">Ny nevning</string>
|
||||
<string name="channel_notif_poll">Poll Ended</string>
|
||||
<string name="channel_notif_poll">Avstemming avsluttet</string>
|
||||
<string name="channel_notif_toot">Ny toot</string>
|
||||
<string name="channel_notif_backup">Backup av toots</string>
|
||||
<string name="channel_notif_media">Last ned media</string>
|
||||
|
@ -636,6 +636,7 @@ Du kan aktivere eller deaktivere disse meldingene senere i innstillingene (Meldi
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Åpne menyen på et toot, og velg <b>Planlegg boost</b>.]]></string>
|
||||
<string name="art_menu">Kunsttidslinje</string>
|
||||
<string name="open_menu">Åpne meny</string>
|
||||
<string name="go_back">Tilbake</string>
|
||||
<string name="app_logo">Applikasjonens logo</string>
|
||||
<string name="profile_picture">Profilbilde</string>
|
||||
<string name="profile_banner">Profilfane</string>
|
||||
|
@ -788,7 +789,7 @@ Adresser vil bli foreslått når du begynner å skrive.\n\n
|
|||
<string name="set_retrieve_metadata_share_from_extras">Tilknytt et bilde når du deler en URL</string>
|
||||
<!-- end languages -->
|
||||
<string name="poll">Avstemning</string>
|
||||
<string name="polls">Polls</string>
|
||||
<string name="polls">Avstemminger</string>
|
||||
<string name="create_poll">Lag en avstemming</string>
|
||||
<string name="poll_choice_1">Valg 1</string>
|
||||
<string name="poll_choice_2">Valg 2</string>
|
||||
|
@ -801,7 +802,7 @@ Adresser vil bli foreslått når du begynner å skrive.\n\n
|
|||
<string name="vote">Stem</string>
|
||||
<string name="poll_not_private">En avstemming kan ikke kobles til en direktemelding!</string>
|
||||
<string name="notif_poll">En avstemming du har stemt på er avsluttet</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="notif_poll_self">En avstemming du har tootet er avsluttet</string>
|
||||
<string name="settings_category_notif_customize">Tilpass</string>
|
||||
<string name="settings_category_notif_categories">Kategorier</string>
|
||||
<string name="settings_category_notif_news">Nyheter</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -650,6 +650,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Otwórz menu toota i wybierz <b>Zaplanuj podbicie</b>.]]></string>
|
||||
<string name="art_menu">Oś sztuki</string>
|
||||
<string name="open_menu">Otwórz menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo aplikacji</string>
|
||||
<string name="profile_picture">Zdjęcie profilowe</string>
|
||||
<string name="profile_banner">Baner profilowy</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Abrir um menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Foto do perfil</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -646,6 +646,7 @@ Aceste date sunt strict confidențiale și pot fi folosite doar de aplicație.
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -653,6 +653,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Откройте меню тута и выберите <b>Запланировать продвижение</b>.]]></string>
|
||||
<string name="art_menu">Лента Art</string>
|
||||
<string name="open_menu">Открыть меню</string>
|
||||
<string name="go_back">Назад</string>
|
||||
<string name="app_logo">Логотип приложения</string>
|
||||
<string name="profile_picture">Изображение профиля</string>
|
||||
<string name="profile_banner">Баннер профиля</string>
|
||||
|
|
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">කලා කාල රේඛාව</string>
|
||||
<string name="open_menu">මෙනුව විවෘත කරන්න</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">මෘදුකාංගයේ ලාංඡනය</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -653,6 +653,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Odprite meni objave in nato izberite <b>Doliči čas ojačanja</b>.]]></string>
|
||||
<string name="art_menu">Umetniška časovnica</string>
|
||||
<string name="open_menu">Odpri meni</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logotip aplikacije</string>
|
||||
<string name="profile_picture">Profilna slika</string>
|
||||
<string name="profile_banner">Plakat profila</string>
|
||||
|
|
|
@ -649,6 +649,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Отворите мени тута и одаберите <b>Закажи подршку</b>.]]></string>
|
||||
<string name="art_menu">Уметничка лајна</string>
|
||||
<string name="open_menu">Отвори мени</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Логотип апликације</string>
|
||||
<string name="profile_picture">Профилна слика</string>
|
||||
<string name="profile_banner">Профилни банер</string>
|
||||
|
|
|
@ -236,7 +236,7 @@
|
|||
<item quantity="other">lägg till %d till toot att utforska</item>
|
||||
</plurals>
|
||||
<plurals name="likes">
|
||||
<item quantity="one">%d like</item>
|
||||
<item quantity="one">%d gillar</item>
|
||||
<item quantity="other">%d gillar</item>
|
||||
</plurals>
|
||||
<string name="delete_notification_ask">Ta bort notifiering?</string>
|
||||
|
@ -645,6 +645,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Öppna menyn på en boost och välj <b>Schemalägg boost</b>.]]></string>
|
||||
<string name="art_menu">Konstidslinje</string>
|
||||
<string name="open_menu">Öppna menyn</string>
|
||||
<string name="go_back">Gå tillbaka</string>
|
||||
<string name="app_logo">Applikationens logo</string>
|
||||
<string name="profile_picture">Profilbild</string>
|
||||
<string name="profile_banner">Profil banner</string>
|
||||
|
@ -813,7 +814,7 @@
|
|||
<string name="vote">Rösta</string>
|
||||
<string name="poll_not_private">En undersökning kan inte bifogas i ett direktmeddelande!</string>
|
||||
<string name="notif_poll">En enkät som du röstat i har avslutats</string>
|
||||
<string name="notif_poll_self">A poll you tooted has ended</string>
|
||||
<string name="notif_poll_self">En enkät som du röstat i har avslutats</string>
|
||||
<string name="settings_category_notif_customize">Anpassa</string>
|
||||
<string name="settings_category_notif_categories">Kategorier</string>
|
||||
<string name="settings_category_notif_news">Nyheter</string>
|
||||
|
@ -832,10 +833,10 @@
|
|||
<string name="warning_list_deletion">Använd posten listor för att ta bort denna lista!</string>
|
||||
<string name="warning_main_timeline">Huvudtidslinjen kan bara döljas!</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="add_timeline">Lägg till en tidslinje</string>
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d röst</item>
|
||||
<item quantity="other">%d votes</item>
|
||||
<item quantity="other">%d röster</item>
|
||||
</plurals>
|
||||
<string-array name="poll_choice_type">
|
||||
<item>Enkel val</item>
|
||||
|
@ -851,7 +852,7 @@
|
|||
<item>7 dagar</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_mode">
|
||||
<item>Webview</item>
|
||||
<item>Direkt stream</item>
|
||||
<item>Webbvy</item>
|
||||
<item>Direktström</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
@ -638,6 +638,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -643,6 +643,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -639,6 +639,7 @@ và %d toots khác để khám phá</item>
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
|
|
@ -641,6 +641,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[打开嘟文的菜单,然后选择 <b>定时转嘟</b>。]]></string>
|
||||
<string name="art_menu">艺术时间线</string>
|
||||
<string name="open_menu">打开菜单</string>
|
||||
<string name="go_back">返回</string>
|
||||
<string name="app_logo">应用程序的徽标</string>
|
||||
<string name="profile_picture">个人资料图片</string>
|
||||
<string name="profile_banner">个人资料横幅</string>
|
||||
|
|
|
@ -641,6 +641,7 @@ Yandex 有適當的隱私權政策,可以在這裡找到:https://yandex.ru/l
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[開啟嘟文選單然後選擇<b>排程轉嘟</b>。]]></string>
|
||||
<string name="art_menu">藝術時間軸</string>
|
||||
<string name="open_menu">開啟選單</string>
|
||||
<string name="go_back">返回</string>
|
||||
<string name="app_logo">應用程式圖示</string>
|
||||
<string name="profile_picture">個人檔案照片</string>
|
||||
<string name="profile_banner">個人檔案封面照片</string>
|
||||
|
|
|
@ -718,6 +718,7 @@
|
|||
<string name="no_scheduled_boosts_indications"><![CDATA[Open the menu of a toot and then choose <b>Schedule boost</b>.]]></string>
|
||||
<string name="art_menu">Art timeline</string>
|
||||
<string name="open_menu">Open menu</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="app_logo">Logo of the application</string>
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="profile_banner">Profile banner</string>
|
||||
|
@ -939,6 +940,7 @@
|
|||
<string name="warning_main_timeline">Main timelines can only be hidden!</string>
|
||||
<string name="action_bbcode">BBCode</string>
|
||||
<string name="add_timeline">Add a timeline</string>
|
||||
<string name="set_sensitive_content">Always mark media as sensitive</string>
|
||||
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d vote</item>
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
Added
|
||||
* Blur sensitive media
|
||||
* Automatically federate accounts when searching (Mastodon/Pleroma/Peertube/Pixelfed/GNU)
|
||||
* Media can be set always as sensitive (synced with Mastodon)
|
||||
* Searches on a Peertube timeline filter videos
|
||||
|
||||
Changed
|
||||
* Add a back button in account viewer
|
||||
* Make the menu button dark in light theme for account viewer
|
||||
|
||||
Fixed
|
||||
* Fix an issue when following an instance
|
||||
* Fix layout for tabs when there are few ones
|
Loading…
Reference in New Issue