1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-03 11:33:19 +02:00

add_rotate_watchface_button_hybridhr (#2408)

This adds a button which rotates the selected watchface by 90 degrees counter-clockwise to the hybridqr.
I did not manage to fix the autoorientation.

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2408
Co-authored-by: HelloCodeberg <hellocodeberg@noreply.codeberg.org>
Co-committed-by: HelloCodeberg <hellocodeberg@noreply.codeberg.org>
This commit is contained in:
HelloCodeberg 2021-10-14 11:00:37 +02:00 committed by Andreas Shimokawa
parent 9168c46afe
commit ca4f996e9b
3 changed files with 51 additions and 3 deletions

View File

@ -155,6 +155,9 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem
findViewById(R.id.button_set_background).setOnClickListener(this);
findViewById(R.id.button_add_widget).setOnClickListener(this);
findViewById(R.id.button_watchface_settings).setOnClickListener(this);
findViewById(R.id.watchface_rotate_left).setOnClickListener(this);
findViewById(R.id.watchface_rotate_right).setOnClickListener(this);
}
@Override
@ -236,6 +239,18 @@ public class HybridHRWatchfaceDesignerActivity extends AbstractGBActivity implem
} else if (v.getId() == R.id.button_watchface_settings) {
showWatchfaceSettingsPopup();
}
else if (v.getId() == R.id.watchface_rotate_left) {
if (selectedBackgroundImage != null) {
selectedBackgroundImage = BitmapUtil.rotateImage(selectedBackgroundImage, -90);
renderWatchfacePreview();
}
}
else if (v.getId() == R.id.watchface_rotate_right) {
if (selectedBackgroundImage != null) {
selectedBackgroundImage = BitmapUtil.rotateImage(selectedBackgroundImage, 90);
renderWatchfacePreview();
}
}
}
@Override

View File

@ -21,6 +21,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
@ -177,4 +178,16 @@ public class BitmapUtil {
// Return the circular bitmap
return dstBitmap;
}
/**
* Rotates a given Bitmap
* @param bitmap input bitmap
* @param degree int Degree of rotation
* @return new bitmap
*/
public static Bitmap rotateImage(Bitmap bitmap, int degree) {
Matrix matrix = new Matrix();
matrix.postRotate(degree);
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}
}

View File

@ -42,17 +42,37 @@
android:text="@string/button_watchface_edit_name" />
</RelativeLayout>
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/watchface_invert_colors"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignStart="@+id/watchface_preview_layout"
app:srcCompat="@drawable/ic_invert_colors" />
<ImageView
android:id="@+id/watchface_rotate_left"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignStart="@+id/watchface_invert_colors"
app:srcCompat="@drawable/ic_rotate_left" />
<ImageView
android:id="@+id/watchface_rotate_right"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignStart="@+id/watchface_rotate_left"
android:rotationY="180"
app:srcCompat="@drawable/ic_rotate_left" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/watchface_preview_layout"
android:layout_width="match_parent"