feat: default placeholder as ente's icon and different image everytime
This commit is contained in:
parent
95588c8aef
commit
16c5e24cc7
3 changed files with 33 additions and 19 deletions
|
@ -5,9 +5,11 @@ import android.content.Context
|
|||
import android.content.SharedPreferences
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BitmapFactory
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.RemoteViews
|
||||
import androidx.core.content.ContextCompat
|
||||
import es.antonborri.home_widget.HomeWidgetLaunchIntent
|
||||
import es.antonborri.home_widget.HomeWidgetProvider
|
||||
import java.io.File
|
||||
|
@ -40,15 +42,22 @@ class SlideshowWidgetProvider : HomeWidgetProvider() {
|
|||
if (imageExists) {
|
||||
Log.d("SlideshowWidgetProvider", "Image exists: $imagePath")
|
||||
setViewVisibility(R.id.widget_img, View.VISIBLE)
|
||||
setViewVisibility(R.id.widget_title, View.GONE)
|
||||
setViewVisibility(R.id.widget_placeholder, View.GONE)
|
||||
|
||||
val myBitmap: Bitmap = BitmapFactory.decodeFile(imagePath)
|
||||
setImageViewBitmap(R.id.widget_img, myBitmap)
|
||||
val bitmap: Bitmap = BitmapFactory.decodeFile(imagePath)
|
||||
setImageViewBitmap(R.id.widget_img, bitmap)
|
||||
} else {
|
||||
Log.d("SlideshowWidgetProvider", "Image doesn't exists: $imagePath")
|
||||
Log.d("SlideshowWidgetProvider", "Image doesn't exists")
|
||||
setViewVisibility(R.id.widget_img, View.GONE)
|
||||
setViewVisibility(R.id.widget_title, View.VISIBLE)
|
||||
setTextViewText(R.id.widget_title, "No Image Loaded")
|
||||
setViewVisibility(R.id.widget_placeholder, View.VISIBLE)
|
||||
|
||||
val drawable =
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.ic_launcher_foreground
|
||||
)
|
||||
val bitmap = (drawable as BitmapDrawable).bitmap
|
||||
setImageViewBitmap(R.id.widget_placeholder, bitmap)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,19 +6,16 @@
|
|||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/widget_container">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/widget_title"
|
||||
<ImageView
|
||||
android:id="@+id/widget_placeholder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/widget_background"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
android:visibility="visible"
|
||||
tools:visibility="visible"
|
||||
tools:text="Title" />
|
||||
|
||||
android:background="@drawable/widget_background"
|
||||
/>
|
||||
<ImageView
|
||||
android:id="@+id/widget_img"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -251,11 +251,15 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
galleryLoadStartTime,
|
||||
galleryLoadEndTime,
|
||||
);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
final files = res.files;
|
||||
final previousGeneratedId = prefs.getInt("home_widget_last_img");
|
||||
final files = res.files
|
||||
.where((element) => element.generatedID != previousGeneratedId);
|
||||
final randomNumber = Random().nextInt(files.length);
|
||||
final randomFile = files[randomNumber];
|
||||
final randomFile = files.elementAt(randomNumber);
|
||||
final cachedThumbnail = await getThumbnailFromServer(randomFile);
|
||||
|
||||
var img = Image.memory(cachedThumbnail);
|
||||
var imgProvider = img.image;
|
||||
await precacheImage(imgProvider, context);
|
||||
|
@ -289,6 +293,10 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
iOSName: 'SlideshowWidget',
|
||||
);
|
||||
|
||||
if (randomFile.generatedID != null) {
|
||||
await prefs.setInt("home_widget_last_img", randomFile.generatedID!);
|
||||
}
|
||||
|
||||
_logger
|
||||
.info(">>> HomeWidget rendered with size ${img.width}x${img.height}");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue