diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java
index 613e63b24..ea2d96703 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java
@@ -46,6 +46,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
+import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
@@ -552,6 +553,67 @@ public class MainActivity extends AppCompatActivity
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
+ }else if( id == R.id.action_size){
+ final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
+ int textSize = sharedpreferences.getInt(Helper.SET_TEXT_SIZE,100);
+ int iconSize = sharedpreferences.getInt(Helper.SET_ICON_SIZE,100);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ builder.setTitle(R.string.text_size);
+
+ View popup_quick_settings = getLayoutInflater().inflate( R.layout.popup_text_size, null );
+ builder.setView(popup_quick_settings);
+
+ SeekBar set_text_size = (SeekBar) popup_quick_settings.findViewById(R.id.set_text_size);
+ SeekBar set_icon_size = (SeekBar) popup_quick_settings.findViewById(R.id.set_icon_size);
+ final TextView set_text_size_value = (TextView) popup_quick_settings.findViewById(R.id.set_text_size_value);
+ final TextView set_icon_size_value = (TextView) popup_quick_settings.findViewById(R.id.set_icon_size_value);
+ set_text_size_value.setText(String.format("%s%%",String.valueOf(textSize)));
+ set_icon_size_value.setText(String.format("%s%%",String.valueOf(iconSize)));
+
+ set_text_size.setMax(20);
+ set_icon_size.setMax(20);
+
+ set_text_size.setProgress(((textSize-50)/5));
+ set_icon_size.setProgress(((iconSize-50)/5));
+
+ set_text_size.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {}
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {}
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+
+ int value = 50 + progress*5;
+ set_text_size_value.setText(String.format("%s%%",String.valueOf(value)));
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putInt(Helper.SET_TEXT_SIZE, value);
+ editor.apply();
+ }
+ });
+ set_icon_size.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {}
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {}
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ int value = 50 + progress*5;
+ set_icon_size_value.setText(String.format("%s%%",String.valueOf(value)));
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putInt(Helper.SET_ICON_SIZE, value);
+ editor.apply();
+ }
+ });
+ builder.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ MainActivity.this.recreate();
+ dialog.dismiss();
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
}
return super.onOptionsItemSelected(item);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java
index 5b214f70d..be85e08bc 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java
@@ -28,6 +28,7 @@ import android.support.v7.widget.CardView;
import android.text.Html;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
+import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -152,6 +153,13 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio
} else {
holder = (ViewHolder) convertView.getTag();
}
+
+ final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
+
+ int iconSizePercent = sharedpreferences.getInt(Helper.SET_ICON_SIZE, 100);
+ int textSizePercent = sharedpreferences.getInt(Helper.SET_TEXT_SIZE, 100);
+
+
final float scale = context.getResources().getDisplayMetrics().density;
String type = notification.getType();
String typeString = "";
@@ -182,8 +190,16 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio
break;
}
holder.notification_type.setText(typeString);
+ holder.status_privacy.getLayoutParams().height = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_privacy.getLayoutParams().width = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_reply.getLayoutParams().height = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_reply.getLayoutParams().width = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+
+ holder.notification_status_content.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.notification_type.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.notification_account_username.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.status_date.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12*textSizePercent/100);
- final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
//Manages theme for icon colors
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
@@ -223,11 +239,11 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio
holder.status_document_container.setVisibility(View.VISIBLE);
if( (status.getIn_reply_to_account_id() != null && !status.getIn_reply_to_account_id().equals("null")) || (status.getIn_reply_to_id() != null && !status.getIn_reply_to_id().equals("null")) ){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_reply);
- img.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (15 * scale + 0.5f));
+ img.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (15 * iconSizePercent/100 * scale + 0.5f));
holder.notification_account_username.setCompoundDrawables( img, null, null, null);
}else if( status.isReblogged()){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_retweet);
- img.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (15 * scale + 0.5f));
+ img.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (15 * iconSizePercent/100 * scale + 0.5f));
holder.notification_account_username.setCompoundDrawables( img, null, null, null);
}else{
holder.notification_account_username.setCompoundDrawables( null, null, null, null);
@@ -302,8 +318,8 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio
else
imgReblog = ContextCompat.getDrawable(context, R.drawable.ic_retweet_black);
- imgFav.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (20 * scale + 0.5f));
- imgReblog.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (20 * scale + 0.5f));
+ imgFav.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (20 * iconSizePercent/100 * scale + 0.5f));
+ imgReblog.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (20 * iconSizePercent/100 * scale + 0.5f));
holder.status_favorite_count.setCompoundDrawables(imgFav, null, null, null);
holder.status_reblog_count.setCompoundDrawables(imgReblog, null, null, null);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java
index f5b4c1902..aa12626dd 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java
@@ -34,6 +34,7 @@ import android.text.Selection;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.util.Log;
+import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -200,6 +201,29 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
} else {
holder = (ViewHolder) convertView.getTag();
}
+
+
+ final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
+
+ int iconSizePercent = sharedpreferences.getInt(Helper.SET_ICON_SIZE, 100);
+ int textSizePercent = sharedpreferences.getInt(Helper.SET_TEXT_SIZE, 100);
+
+ holder.status_more.getLayoutParams().height = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_more.getLayoutParams().width = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_privacy.getLayoutParams().height = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_privacy.getLayoutParams().width = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_reply.getLayoutParams().height = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+ holder.status_reply.getLayoutParams().width = (int) Helper.convertDpToPixel((20*iconSizePercent/100), context);
+
+ holder.status_content.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.status_account_displayname.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.status_account_username.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12*textSizePercent/100);
+ holder.status_reblog_user.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.status_toot_date.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12*textSizePercent/100);
+ holder.status_spoiler.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+ holder.status_content_translated.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14*textSizePercent/100);
+
+
if( status.getSpoiler_text() != null && status.getSpoiler_text().trim().length() > 0 && !status.isSpoilerShown()){
holder.status_content_container.setVisibility(View.GONE);
holder.status_spoiler_container.setVisibility(View.VISIBLE);
@@ -267,7 +291,6 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
holder.status_action_container.setVisibility(View.GONE);
}
//Manages theme for icon colors
- final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
if( theme == Helper.THEME_DARK){
changeDrawableColor(context, R.drawable.ic_reply,R.color.dark_text);
@@ -301,11 +324,11 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
final float scale = context.getResources().getDisplayMetrics().density;
if( !status.getIn_reply_to_account_id().equals("null") || !status.getIn_reply_to_id().equals("null") ){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_reply);
- img.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (15 * scale + 0.5f));
+ img.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (15 * iconSizePercent/100 * scale + 0.5f));
holder.status_account_displayname.setCompoundDrawables( img, null, null, null);
}else if( status.getReblog() != null){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_retweet_black);
- img.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (15 * scale + 0.5f));
+ img.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (15 * iconSizePercent/100 * scale + 0.5f));
holder.status_account_displayname.setCompoundDrawables( img, null, null, null);
}else{
holder.status_account_displayname.setCompoundDrawables( null, null, null, null);
@@ -539,8 +562,8 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
else
imgReblog = ContextCompat.getDrawable(context, R.drawable.ic_retweet_black);
- imgFav.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (20 * scale + 0.5f));
- imgReblog.setBounds(0,0,(int) (20 * scale + 0.5f),(int) (20 * scale + 0.5f));
+ imgFav.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (20 * iconSizePercent/100 * scale + 0.5f));
+ imgReblog.setBounds(0,0,(int) (20 * iconSizePercent/100 * scale + 0.5f),(int) (20 * iconSizePercent/100 * scale + 0.5f));
holder.status_favorite_count.setCompoundDrawables(imgFav, null, null, null);
holder.status_reblog_count.setCompoundDrawables(imgReblog, null, null, null);
@@ -1079,4 +1102,5 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
builderSingle.create().requestWindowFeature(Window.FEATURE_NO_TITLE);
builderSingle.show();
}
+
}
\ No newline at end of file
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 d1eb627c9..c6c240468 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
@@ -194,6 +194,8 @@ public class Helper {
public static final String SET_NSFW_TIMEOUT = "set_nsfw_timeout";
public static final String SET_TABS = "set_tabs";
public static final String SET_MEDIA_URLS = "set_media_urls";
+ public static final String SET_TEXT_SIZE = "set_text_size";
+ public static final String SET_ICON_SIZE = "set_icon_size";
public static final int ATTACHMENT_ALWAYS = 1;
public static final int ATTACHMENT_WIFI = 2;
public static final int ATTACHMENT_ASK = 3;
diff --git a/app/src/main/res/drawable-hdpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-hdpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..751443c36
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_increase_menu.png b/app/src/main/res/drawable-hdpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..7800ba33d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/drawable-ldpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-ldpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..4d6458890
Binary files /dev/null and b/app/src/main/res/drawable-ldpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-ldpi/ic_action_increase_menu.png b/app/src/main/res/drawable-ldpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..1a39b71f8
Binary files /dev/null and b/app/src/main/res/drawable-ldpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-mdpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..88b3982fd
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_increase_menu.png b/app/src/main/res/drawable-mdpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..ed40b2b21
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-xhdpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..5265f6d39
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_increase_menu.png b/app/src/main/res/drawable-xhdpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..185be8a76
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-xxhdpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..b515e06e3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_increase_menu.png b/app/src/main/res/drawable-xxhdpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..2ab780a89
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_decrease_menu.png b/app/src/main/res/drawable-xxxhdpi/ic_action_decrease_menu.png
new file mode 100644
index 000000000..4a0b46bc0
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_action_decrease_menu.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_increase_menu.png b/app/src/main/res/drawable-xxxhdpi/ic_action_increase_menu.png
new file mode 100644
index 000000000..e6ca376b3
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_action_increase_menu.png differ
diff --git a/app/src/main/res/layout/popup_text_size.xml b/app/src/main/res/layout/popup_text_size.xml
new file mode 100644
index 000000000..7a314f002
--- /dev/null
+++ b/app/src/main/res/layout/popup_text_size.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
index a1408a377..dec1cfe65 100644
--- a/app/src/main/res/menu/main.xml
+++ b/app/src/main/res/menu/main.xml
@@ -13,6 +13,10 @@
android:id="@+id/action_about_instance"
android:title="@string/action_about_instance"
app:showAsAction="never" />
+
- Désolé ! Votre appareil ne supporte pas la commande vocale !
Tout effacer
Programmer
+ Taille du texte et des icônes
+ Modifier la taille du texte :
+ Modifier la taille des icônes :
Suivant
Précédent
Ouvrir avec
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 36bb549c9..c1a91f286 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,7 +47,9 @@
Delete all
Schedule
-
+ Text and icon sizes
+ Change the current text size:
+ Change the current icon size:
Next
Previous
Open with