mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2025-02-17 21:06:48 +01:00
Dashboard: Draw widgets matching device resolution
This commit is contained in:
parent
cc5eadbc62
commit
2fe53ee563
@ -18,6 +18,7 @@ package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
|||||||
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -27,6 +28,7 @@ import android.widget.TextView;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
||||||
|
|
||||||
@ -106,8 +108,14 @@ public class DashboardActiveTimeWidget extends AbstractDashboardWidget {
|
|||||||
String activeMinutes = String.format("%02d", (int) (totalActiveMinutes % 60f));
|
String activeMinutes = String.format("%02d", (int) (totalActiveMinutes % 60f));
|
||||||
activeTime.setText(activeHours + ":" + activeMinutes);
|
activeTime.setText(activeHours + ":" + activeMinutes);
|
||||||
|
|
||||||
|
final int width = (int) TypedValue.applyDimension(
|
||||||
|
TypedValue.COMPLEX_UNIT_DIP,
|
||||||
|
150,
|
||||||
|
GBApplication.getContext().getResources().getDisplayMetrics()
|
||||||
|
);
|
||||||
|
|
||||||
// Draw gauge
|
// Draw gauge
|
||||||
activeTimeGauge.setImageBitmap(drawGauge(200, 15, color_active_time, dashboardData.getActiveMinutesGoalFactor()));
|
activeTimeGauge.setImageBitmap(drawGauge(width, Math.round(width * 0.075f), color_active_time, dashboardData.getActiveMinutesGoalFactor()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -16,8 +16,11 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
||||||
|
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -27,6 +30,7 @@ import android.widget.TextView;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.FormatUtils;
|
import nodomain.freeyourgadget.gadgetbridge.util.FormatUtils;
|
||||||
@ -105,9 +109,14 @@ public class DashboardDistanceWidget extends AbstractDashboardWidget {
|
|||||||
String distanceFormatted = FormatUtils.getFormattedDistanceLabel(dashboardData.getDistanceTotal());
|
String distanceFormatted = FormatUtils.getFormattedDistanceLabel(dashboardData.getDistanceTotal());
|
||||||
distanceText.setText(distanceFormatted);
|
distanceText.setText(distanceFormatted);
|
||||||
|
|
||||||
// Draw gauge
|
final int width = (int) TypedValue.applyDimension(
|
||||||
distanceGauge.setImageBitmap(drawGauge(200, 15, color_distance, dashboardData.getDistanceGoalFactor()));
|
TypedValue.COMPLEX_UNIT_DIP,
|
||||||
|
150,
|
||||||
|
GBApplication.getContext().getResources().getDisplayMetrics()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Draw gauge
|
||||||
|
distanceGauge.setImageBitmap(drawGauge(width, Math.round(width * 0.075f), color_distance, dashboardData.getDistanceGoalFactor()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -16,6 +16,7 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
||||||
|
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
@ -117,9 +118,9 @@ public class DashboardGoalsWidget extends AbstractDashboardWidget {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
int width = 500;
|
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
|
||||||
int height = 500;
|
int height = width;
|
||||||
int barWidth = 20;
|
int barWidth = Math.round(height * 0.04f);
|
||||||
int barMargin = (int) Math.ceil(barWidth / 2f);
|
int barMargin = (int) Math.ceil(barWidth / 2f);
|
||||||
|
|
||||||
goalsBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
goalsBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
||||||
|
@ -18,6 +18,7 @@ package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
|||||||
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -27,6 +28,7 @@ import android.widget.TextView;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
||||||
|
|
||||||
@ -106,8 +108,14 @@ public class DashboardSleepWidget extends AbstractDashboardWidget {
|
|||||||
String sleepMinutes = String.format("%02d", (int) (totalSleepMinutes % 60f));
|
String sleepMinutes = String.format("%02d", (int) (totalSleepMinutes % 60f));
|
||||||
sleepAmount.setText(sleepHours + ":" + sleepMinutes);
|
sleepAmount.setText(sleepHours + ":" + sleepMinutes);
|
||||||
|
|
||||||
|
final int width = (int) TypedValue.applyDimension(
|
||||||
|
TypedValue.COMPLEX_UNIT_DIP,
|
||||||
|
150,
|
||||||
|
GBApplication.getContext().getResources().getDisplayMetrics()
|
||||||
|
);
|
||||||
|
|
||||||
// Draw gauge
|
// Draw gauge
|
||||||
sleepGauge.setImageBitmap(drawGauge(200, 15, color_light_sleep, dashboardData.getSleepMinutesGoalFactor()));
|
sleepGauge.setImageBitmap(drawGauge(width, Math.round(width * 0.075f), color_light_sleep, dashboardData.getSleepMinutesGoalFactor()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,6 +18,7 @@ package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
|||||||
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -27,6 +28,7 @@ import android.widget.TextView;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.DashboardFragment;
|
||||||
|
|
||||||
@ -101,9 +103,14 @@ public class DashboardStepsWidget extends AbstractDashboardWidget {
|
|||||||
// Update text representation
|
// Update text representation
|
||||||
stepsCount.setText(String.valueOf(dashboardData.getStepsTotal()));
|
stepsCount.setText(String.valueOf(dashboardData.getStepsTotal()));
|
||||||
|
|
||||||
// Draw gauge
|
final int width = (int) TypedValue.applyDimension(
|
||||||
stepsGauge.setImageBitmap(drawGauge(200, 15, color_activity, dashboardData.getStepsGoalFactor()));
|
TypedValue.COMPLEX_UNIT_DIP,
|
||||||
|
150,
|
||||||
|
GBApplication.getContext().getResources().getDisplayMetrics()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Draw gauge
|
||||||
|
stepsGauge.setImageBitmap(drawGauge(width, Math.round(width * 0.075f), color_activity, dashboardData.getStepsGoalFactor()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -16,6 +16,7 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
package nodomain.freeyourgadget.gadgetbridge.activities.dashboard;
|
||||||
|
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
@ -142,10 +143,10 @@ public class DashboardTodayWidget extends AbstractDashboardWidget {
|
|||||||
|
|
||||||
// Prepare circular chart
|
// Prepare circular chart
|
||||||
long midDaySecond = dashboardData.timeFrom + (12 * 60 * 60);
|
long midDaySecond = dashboardData.timeFrom + (12 * 60 * 60);
|
||||||
int width = 500;
|
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
|
||||||
int height = 500;
|
int height = width;
|
||||||
int barWidth = 40;
|
int barWidth = Math.round(width * 0.08f);
|
||||||
int hourTextSp = 12;
|
int hourTextSp = Math.round(width * 0.024f);
|
||||||
float hourTextPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, hourTextSp, requireContext().getResources().getDisplayMetrics());
|
float hourTextPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, hourTextSp, requireContext().getResources().getDisplayMetrics());
|
||||||
float outerCircleMargin = mode_24h ? barWidth / 2f : barWidth / 2f + hourTextPixels * 1.3f;
|
float outerCircleMargin = mode_24h ? barWidth / 2f : barWidth / 2f + hourTextPixels * 1.3f;
|
||||||
float innerCircleMargin = outerCircleMargin + barWidth * 1.3f;
|
float innerCircleMargin = outerCircleMargin + barWidth * 1.3f;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user