diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0193cb596..55b27fbb0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -173,7 +173,7 @@
android:label="@string/app_name"
/>
\ No newline at end of file
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
index c79078fa8..42d523a30 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
@@ -749,8 +749,14 @@ public abstract class BaseMainActivity extends AppCompatActivity
popup.show();
}
});
-
-
+ final ImageView optionInfo = headerLayout.findViewById(R.id.header_option_info);
+ optionInfo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(getApplicationContext(), InstanceHealthActivity.class);
+ startActivity(intent);
+ }
+ });
updateHeaderAccountInfo(BaseMainActivity.this, account, headerLayout, imageLoader, options);
//Locked account can see follow request
if (account.isLocked()) {
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceActivity.java
index b4f0d4c25..ff783a4e1 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceActivity.java
@@ -103,7 +103,6 @@ public class InstanceActivity extends AppCompatActivity implements OnRetrieveIns
TextView instance_version = findViewById(R.id.instance_version);
TextView instance_uri = findViewById(R.id.instance_uri);
FloatingActionButton instance_contact = findViewById(R.id.instance_contact);
- FloatingActionButton instance_health = findViewById(R.id.instance_health);
instance_title.setText(instance.getTitle());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
@@ -127,12 +126,5 @@ public class InstanceActivity extends AppCompatActivity implements OnRetrieveIns
startActivity(Intent.createChooser(emailIntent, getString(R.string.send_email)));
}
});
- instance_health.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(getApplicationContext(), InstanceHealthActivity.class);
- startActivity(intent);
- }
- });
}
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceHealthActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceHealthActivity.java
index b8c95af0f..196b75bb9 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceHealthActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/InstanceHealthActivity.java
@@ -17,8 +17,7 @@ package fr.gouv.etalab.mastodon.activities;
import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.SharedPreferences;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -27,13 +26,19 @@ import android.graphics.LightingColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
+import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
+import android.text.SpannableString;
+import android.text.style.UnderlineSpan;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.view.Window;
+import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -57,6 +62,8 @@ import fr.gouv.etalab.mastodon.client.HttpsConnection;
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
import fr.gouv.etalab.mastodon.helper.Helper;
+import static fr.gouv.etalab.mastodon.helper.Helper.withSuffix;
+
/**
* Created by Thomas on 24/11/2017.
@@ -76,26 +83,44 @@ public class InstanceHealthActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
- int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
- if( theme == Helper.THEME_LIGHT){
- setTheme(R.style.AppTheme);
- }else {
- setTheme(R.style.AppThemeDark);
- }
+ setTheme(R.style.AppThemeDark_NoActionBar);
setContentView(R.layout.activity_instance_social);
+ getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Bundle b = getIntent().getExtras();
+ if( getSupportActionBar() != null)
+ getSupportActionBar().hide();
instance = Helper.getLiveInstance(getApplicationContext());
if(b != null)
instance = b.getString("instance", Helper.getLiveInstance(getApplicationContext()));
-
+ Button close = findViewById(R.id.close);
name = findViewById(R.id.name);
values = findViewById(R.id.values);
checked_at = findViewById(R.id.checked_at);
up = findViewById(R.id.up);
uptime = findViewById(R.id.uptime);
container = findViewById(R.id.container);
+
+
+ close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ finish();
+ }
+ });
+
+ TextView ref_instance = findViewById(R.id.ref_instance);
+ SpannableString content = new SpannableString(ref_instance.getText().toString());
+ content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
+ ref_instance.setText(content);
+ ref_instance.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://instances.social"));
+ startActivity(browserIntent);
+ }
+ });
+
option = new DisplayImageOptions.Builder().displayer(new SimpleBitmapDisplayer()).cacheInMemory(false)
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
imageLoader = ImageLoader.getInstance();
@@ -137,7 +162,7 @@ public class InstanceHealthActivity extends AppCompatActivity {
if( response != null)
instanceSocial = API.parseInstanceSocialResponse(getApplicationContext(), new JSONObject(response));
runOnUiThread(new Runnable() {
- @SuppressLint("SetTextI18n")
+ @SuppressLint({"SetTextI18n", "DefaultLocale"})
public void run() {
if( instanceSocial.getThumbnail() != null && !instanceSocial.getThumbnail().equals("null"))
imageLoader.loadImage(instanceSocial.getThumbnail(), option, new SimpleImageLoadingListener() {
@@ -161,10 +186,16 @@ public class InstanceHealthActivity extends AppCompatActivity {
}
});
name.setText(instanceSocial.getName());
- up.setText(Boolean.toString(instanceSocial.isUp()));
- uptime.setText(Float.toString(instanceSocial.getUptime()));
- checked_at.setText(Helper.dateToString(getApplicationContext(), instanceSocial.getUpdated_at()));
- values.setText(String.format("version: %s - %s users - %s statuses", instanceSocial.getVersion(), Long.toString(instanceSocial.getUsers()), Long.toString(instanceSocial.getStatuses())));
+ if( instanceSocial.isUp()) {
+ up.setText("Is up!");
+ up.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.green));
+ }else {
+ up.setText("Is down!");
+ up.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.red));
+ }
+ uptime.setText(String.format("Uptime: %.2f %%", (instanceSocial.getUptime()*100)));
+ checked_at.setText(String.format("Checked at: %s", Helper.dateToString(getApplicationContext(), instanceSocial.getUpdated_at())));
+ values.setText(String.format("version: %s \n %s users - %s statuses", instanceSocial.getVersion(), withSuffix(instanceSocial.getUsers()), withSuffix(instanceSocial.getStatuses())));
}
});
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
index 9a958a964..392b74326 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
@@ -94,6 +94,7 @@ import fr.gouv.etalab.mastodon.interfaces.OnRetrieveFeedsInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface;
import fr.gouv.etalab.mastodon.client.Entities.Relationship;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
+import static fr.gouv.etalab.mastodon.helper.Helper.withSuffix;
/**
@@ -562,11 +563,11 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
account_note.setMovementMethod(LinkMovementMethod.getInstance());
if (tabLayout.getTabAt(0) != null && tabLayout.getTabAt(1) != null && tabLayout.getTabAt(2) != null) {
//noinspection ConstantConditions
- tabLayout.getTabAt(0).setText(getString(R.string.status_cnt, account.getStatuses_count()));
+ tabLayout.getTabAt(0).setText(getString(R.string.status_cnt, withSuffix(account.getStatuses_count())));
//noinspection ConstantConditions
- tabLayout.getTabAt(1).setText(getString(R.string.following_cnt, account.getFollowing_count()));
+ tabLayout.getTabAt(1).setText(getString(R.string.following_cnt, withSuffix(account.getFollowing_count())));
//noinspection ConstantConditions
- tabLayout.getTabAt(2).setText(getString(R.string.followers_cnt, account.getFollowers_count()));
+ tabLayout.getTabAt(2).setText(getString(R.string.followers_cnt, withSuffix(account.getFollowers_count())));
//Allows to filter by long click
final LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsListAdapter.java
index c90207606..c0e00aac2 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsListAdapter.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsListAdapter.java
@@ -51,6 +51,8 @@ import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
import fr.gouv.etalab.mastodon.activities.ShowAccountActivity;
import fr.gouv.etalab.mastodon.asynctasks.PostActionAsyncTask;
+import static fr.gouv.etalab.mastodon.helper.Helper.withSuffix;
+
/**
* Created by Thomas on 27/04/2017.
@@ -160,9 +162,9 @@ public class AccountsListAdapter extends RecyclerView.Adapter implements OnPostA
//noinspection deprecation
holder.account_ds.setText(Html.fromHtml(account.getNote()));
holder.account_ds.setAutoLinkMask(Linkify.WEB_URLS);
- holder.account_sc.setText(String.valueOf(account.getStatuses_count()));
- holder.account_fgc.setText(String.valueOf(account.getFollowing_count()));
- holder.account_frc.setText(String.valueOf(account.getFollowers_count()));
+ holder.account_sc.setText(withSuffix(account.getStatuses_count()));
+ holder.account_fgc.setText(withSuffix(account.getFollowing_count()));
+ holder.account_frc.setText(withSuffix(account.getFollowers_count()));
//Profile picture
imageLoader.displayImage(account.getAvatar(), holder.account_pp, options);
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 f7e980f70..5dbfa4397 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
@@ -17,6 +17,7 @@
package fr.gouv.etalab.mastodon.helper;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -1767,4 +1768,22 @@ public class Helper {
return Bitmap.createScaledBitmap(originalPicture, width, height, false);
}
+ @SuppressLint("DefaultLocale")
+ public static String withSuffix(long count) {
+ if (count < 1000) return "" + count;
+ int exp = (int) (Math.log(count) / Math.log(1000));
+ Locale locale = null;
+ try {
+ locale = Locale.getDefault();
+ }catch (Exception ignored){}
+ if(locale != null)
+ return String.format(locale, "%.1f %c",
+ count / Math.pow(1000, exp),
+ "kMGTPE".charAt(exp-1));
+ else
+ return String.format( "%.1f %c",
+ count / Math.pow(1000, exp),
+ "kMGTPE".charAt(exp-1));
+ }
+
}
diff --git a/app/src/main/res/drawable-anydpi/ic_info_outline.xml b/app/src/main/res/drawable-anydpi/ic_info_outline.xml
new file mode 100644
index 000000000..9567ecd77
--- /dev/null
+++ b/app/src/main/res/drawable-anydpi/ic_info_outline.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-hdpi/ic_network_check.png b/app/src/main/res/drawable-hdpi/ic_network_check.png
deleted file mode 100644
index f31dfd329..000000000
Binary files a/app/src/main/res/drawable-hdpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/drawable-ldpi/ic_network_check.png b/app/src/main/res/drawable-ldpi/ic_network_check.png
deleted file mode 100644
index f894f1aff..000000000
Binary files a/app/src/main/res/drawable-ldpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_network_check.png b/app/src/main/res/drawable-mdpi/ic_network_check.png
deleted file mode 100644
index 9c580c862..000000000
Binary files a/app/src/main/res/drawable-mdpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_network_check.png b/app/src/main/res/drawable-xhdpi/ic_network_check.png
deleted file mode 100644
index 45b6ffa74..000000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_network_check.png b/app/src/main/res/drawable-xxhdpi/ic_network_check.png
deleted file mode 100644
index 733955c14..000000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_network_check.png b/app/src/main/res/drawable-xxxhdpi/ic_network_check.png
deleted file mode 100644
index 14e499dc1..000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ic_network_check.png and /dev/null differ
diff --git a/app/src/main/res/layout/activity_instance.xml b/app/src/main/res/layout/activity_instance.xml
index d16061079..d04fb5a9a 100644
--- a/app/src/main/res/layout/activity_instance.xml
+++ b/app/src/main/res/layout/activity_instance.xml
@@ -77,14 +77,6 @@
android:layout_height="wrap_content" />
-
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="300dp">
-
-
-
-
-
+
+
-
-
-
+ />
-
-
-
-
+ />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml
index 3963211f9..44ee6c380 100644
--- a/app/src/main/res/layout/nav_header_main.xml
+++ b/app/src/main/res/layout/nav_header_main.xml
@@ -83,4 +83,11 @@
android:maxLines="1"
android:layout_height="wrap_content"
/>
+
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index c604b8fee..54152c2c6 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -207,11 +207,11 @@
Keinen Nutzer gefunden
Keine Folgen-Anfrage
Toots \n
- %d
+ %1$s
Following \n
- %d
+ %1$s
Followers \n
- %d
+ %1$s
Angeheftet\n
%d
Authorisieren
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 7f3a318be..f7690012f 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -203,9 +203,9 @@
Aucun compte à afficher
Aucune demande d\'abonnement
- Pouets \n %d
- Abonnements \n %d
- Abonnés \n %d
+ Pouets \n %1$s
+ Abonnements \n %1$s
+ Abonnés \n %1$s
Autoriser
Rejeter
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 0ddef77b0..ac9413cd3 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -201,9 +201,9 @@
Geen account om weer te geven
Geen volgverzoeken
- Toots \n %d
- Volgt \n %d
- Volgers \n %d
+ Toots \n %1$s
+ Volgt \n %1$s
+ Volgers \n %1$s
Vastgezet \n %d
Goedkeuren
Afkeuren
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 7e64a35da..ffd90ce90 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -202,9 +202,9 @@
Sem contas para exibir
Sem solicitações de seguidor
- Toots \n %d
- Seguindo \n %d
- Seguidores \n %d
+ Toots \n %1$s
+ Seguindo \n %1$s
+ Seguidores \n %1$s
Fixado \n %d
Autorizar
Rejeitar
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f2a582305..e95fe46d0 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -29,6 +29,10 @@
#282c37
#009688
#F44336
+ #B2DFDB
+ #FFCDD2
+ #B3E5FC
+ #D7CCC8
#000
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 76cb78368..6ad7c113a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -215,9 +215,9 @@
No account to display
No follow request
- Toots \n %d
- Following \n %d
- Followers \n %d
+ Toots \n %1$s
+ Following \n %1$s
+ Followers \n %1$s
Pinned \n %d
Authorize
Reject
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index e5a829c53..4bbd95f5d 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -36,6 +36,7 @@
-
-
-