aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/mygram/droid/Ui.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/mygram/droid/Ui.java')
-rw-r--r--app/src/main/java/mygram/droid/Ui.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/src/main/java/mygram/droid/Ui.java b/app/src/main/java/mygram/droid/Ui.java
index 172fbff..6667d33 100644
--- a/app/src/main/java/mygram/droid/Ui.java
+++ b/app/src/main/java/mygram/droid/Ui.java
@@ -33,6 +33,8 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.bumptech.glide.Glide;
+
import java.util.ArrayList;
import java.util.List;
@@ -156,17 +158,42 @@ final class Ui {
/** Back arrow and title, for screens outside the main view. */
static LinearLayout header(Activity a, String title) {
+ return header(a, title, null);
+ }
+
+ /** Back arrow, the folder picture when there is one, and title. */
+ static LinearLayout header(Activity a, String title, String avatarUrl) {
LinearLayout header = new LinearLayout(a);
header.setGravity(Gravity.CENTER_VERTICAL);
int p = dp(a, 16);
header.setPadding(p * 2, p, p * 2, 0);
header.addView(iconButton(a, R.drawable.ic_arrow_back, "Back", v -> a.finish()));
+ ImageView avatar = avatar(a, 40);
+ ((LinearLayout.LayoutParams) avatar.getLayoutParams()).leftMargin = p;
+ header.addView(avatar);
+ setAvatar(avatar, avatarUrl);
TextView t = text(a, title, 24);
t.setPadding(p, 0, 0, 0);
header.addView(t);
return header;
}
+ /** A round folder picture of size dp, for a horizontal LinearLayout. */
+ static ImageView avatar(Context c, int size) {
+ ImageView v = new ImageView(c);
+ v.setLayoutParams(new LinearLayout.LayoutParams(dp(c, size), dp(c, size)));
+ return v;
+ }
+
+ /** Loads url round, or hides the view when the folder has no picture. */
+ static void setAvatar(ImageView v, String url) {
+ v.setVisibility(url == null ? View.GONE : View.VISIBLE);
+ if (url == null)
+ Glide.with(v).clear(v);
+ else
+ Glide.with(v).load(url).circleCrop().into(v);
+ }
+
static void blur(ImageView v, float radius) {
v.setRenderEffect(RenderEffect.createBlurEffect(radius, radius, Shader.TileMode.CLAMP));
}