diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
index bc6c8cbd3..17bc2d870 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
@@ -337,8 +337,21 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
toot_visibility.setImageResource(R.drawable.ic_action_lock_closed);
}else {
if( tootReply == null){
- visibility = "public";
- toot_visibility.setImageResource(R.drawable.ic_action_globe);
+ visibility = sharedpreferences.getString(Helper.SET_TOOT_VISIBILITY + "@" + account.getAcct() + "@" + account.getInstance(), "public");
+ switch (visibility) {
+ case "public":
+ toot_visibility.setImageResource(R.drawable.ic_action_globe);
+ break;
+ case "unlisted":
+ toot_visibility.setImageResource(R.drawable.ic_action_lock_open);
+ break;
+ case "private":
+ toot_visibility.setImageResource(R.drawable.ic_action_lock_closed);
+ break;
+ case "direct":
+ toot_visibility.setImageResource(R.drawable.ic_local_post_office);
+ break;
+ }
}
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java
index 26da5ad9a..0804bdc89 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java
@@ -16,11 +16,14 @@ package fr.gouv.etalab.mastodon.fragments;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
+import android.app.AlertDialog;
import android.content.ContentUris;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -32,19 +35,29 @@ import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
+import android.widget.Toast;
import fr.gouv.etalab.mastodon.activities.MainActivity;
+import fr.gouv.etalab.mastodon.activities.TootActivity;
+import fr.gouv.etalab.mastodon.client.Entities.Account;
import fr.gouv.etalab.mastodon.helper.Helper;
+import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
+import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import mastodon.etalab.gouv.fr.mastodon.R;
import static android.app.Activity.RESULT_OK;
import static fr.gouv.etalab.mastodon.helper.Helper.CHANGE_THEME_INTENT;
import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
+import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
+import static fr.gouv.etalab.mastodon.helper.Helper.loadPPInActionBar;
+import static fr.gouv.etalab.mastodon.helper.Helper.updateHeaderAccountInfo;
/**
@@ -61,7 +74,7 @@ public class SettingsFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_settings, container, false);
+ final View rootView = inflater.inflate(R.layout.fragment_settings, container, false);
context = getContext();
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
@@ -240,9 +253,108 @@ public class SettingsFragment extends Fragment {
}
});
+
+
+ LinearLayout toot_visibility_container = (LinearLayout) rootView.findViewById(R.id.toot_visibility_container);
+ String prefKeyOauthTokenT = sharedpreferences.getString(Helper.PREF_KEY_OAUTH_TOKEN, null);
+ SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
+ final Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT);
+ final ImageView set_toot_visibility = (ImageView) rootView.findViewById(R.id.set_toot_visibility);
+ //Only displayed for non locked accounts
+ if (account != null && !account.isLocked()) {
+ String tootVisibility = sharedpreferences.getString(Helper.SET_TOOT_VISIBILITY + "@" + account.getAcct() + "@" + account.getInstance(), "public");
+ switch (tootVisibility) {
+ case "public":
+ set_toot_visibility.setImageResource(R.drawable.ic_action_globe);
+ break;
+ case "unlisted":
+ set_toot_visibility.setImageResource(R.drawable.ic_action_lock_open);
+ break;
+ case "private":
+ set_toot_visibility.setImageResource(R.drawable.ic_action_lock_closed);
+ break;
+ case "direct":
+ set_toot_visibility.setImageResource(R.drawable.ic_local_post_office);
+ break;
+ }
+ changeColor();
+ }else {
+ toot_visibility_container.setVisibility(View.GONE);
+ }
+
+ set_toot_visibility.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ AlertDialog.Builder dialog = new AlertDialog.Builder(context);
+ dialog.setTitle(R.string.toot_visibility_tilte);
+ final String[] stringArray = getResources().getStringArray(R.array.toot_visibility);
+ final ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, stringArray);
+ dialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int position) {
+ dialog.dismiss();
+ }
+ });
+
+ dialog.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int position) {
+ String visibility = "public";
+
+ switch (position){
+ case 0:
+ visibility = "public";
+ set_toot_visibility.setImageResource(R.drawable.ic_action_globe);
+ break;
+ case 1:
+ visibility = "unlisted";
+ set_toot_visibility.setImageResource(R.drawable.ic_action_lock_open);
+ break;
+ case 2:
+ visibility = "private";
+ set_toot_visibility.setImageResource(R.drawable.ic_action_lock_closed);
+ break;
+ case 3:
+ visibility = "direct";
+ set_toot_visibility.setImageResource(R.drawable.ic_local_post_office);
+ break;
+ }
+ if( account != null) {
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putString(Helper.SET_TOOT_VISIBILITY + "@" + account.getAcct() + "@" + account.getInstance(), visibility);
+ editor.apply();
+ Toast.makeText(context, context.getString(R.string.toast_visibility_changed, "@" + account.getAcct() + "@" + account.getInstance()), Toast.LENGTH_SHORT).show();
+ }else {
+ Toast.makeText(context, R.string.toast_error,Toast.LENGTH_SHORT).show();
+ }
+ changeColor();
+ dialog.dismiss();
+ }
+ });
+ dialog.show();
+ }
+ });
+
return rootView;
}
+
+ private void changeColor(){
+ SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
+ int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
+ if( theme == Helper.THEME_DARK){
+ changeDrawableColor(context, R.drawable.ic_action_globe,R.color.dark_text);
+ changeDrawableColor(context, R.drawable.ic_action_lock_open,R.color.dark_text);
+ changeDrawableColor(context, R.drawable.ic_action_lock_closed,R.color.dark_text);
+ changeDrawableColor(context, R.drawable.ic_local_post_office,R.color.dark_text);
+ }else {
+ changeDrawableColor(context, R.drawable.ic_action_globe,R.color.black);
+ changeDrawableColor(context, R.drawable.ic_action_lock_open,R.color.black);
+ changeDrawableColor(context, R.drawable.ic_action_lock_closed,R.color.black);
+ changeDrawableColor(context, R.drawable.ic_local_post_office,R.color.black);
+ }
+
+ }
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
index dd52bd547..a7b8f3f91 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
@@ -205,6 +205,7 @@ public class Helper {
public static final String SET_JAVASCRIPT = "set_javascript";
public static final String SET_COOKIES = "set_cookies";
public static final String SET_FOLDER_RECORD = "set_folder_record";
+ public static final String SET_TOOT_VISIBILITY = "set_toot_visibility";
//End points
public static final String EP_AUTHORIZE = "/oauth/authorize";
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index 20d88aab1..9f1ab0c16 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -166,6 +166,29 @@
android:layout_height="wrap_content"
/>
+
+
+
+
+
+
Supprimer le média ?
Votre pouet est vide !
Visibilité du pouet
+ Visibilité des pouets par défaut :
Le pouet a été envoyé !
Vous répondez à ce pouet :
Contenu sensible ?
@@ -252,6 +253,7 @@
Le média a été enregistré !
Une erreur est survenue lors de la traduction !
Brouillon enregistré !
+ La visibilité des pouets a été changée pour le compte %1$s
Optimisation du chargement
Nombre de pouets par chargement
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 027cadf9f..345349bf2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -160,6 +160,7 @@
Delete this media?
Your toot is empty!
Visibility of the toot
+ Visibility of the toots by default:
The toot has been sent!
You are replying to this toot:
Sensitive content?
@@ -258,7 +259,7 @@
The media has been saved!
An error occurred while translating!
Draft saved!
-
+ Visibility of the toots has been changed for the account %1$s
Optimisation of loading
Number of toots per load