From c575415c51ddf0da9317e43901d4200202fbaa58 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 27 Nov 2016 11:21:47 +0100 Subject: [PATCH] properly update the gravity of widgets too --- .../notes/MyWidgetProvider.kt | 27 +++++++++++++++---- .../notes/activities/SettingsActivity.kt | 1 + app/src/main/res/layout/widget.xml | 25 ++++++++++++++--- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt index 5d798333..392bcbcd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt @@ -7,6 +7,7 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.graphics.Color +import android.view.View import android.widget.RemoteViews import com.simplemobiletools.notes.R.layout.widget import com.simplemobiletools.notes.activities.MainActivity @@ -15,6 +16,7 @@ import com.simplemobiletools.notes.extensions.getTextSize class MyWidgetProvider : AppWidgetProvider() { lateinit var mDb: DBHelper + var textIds = arrayOf(R.id.notes_view_left, R.id.notes_view_center, R.id.notes_view_right) companion object { lateinit var mPrefs: SharedPreferences @@ -26,18 +28,32 @@ class MyWidgetProvider : AppWidgetProvider() { val defaultColor = context.resources.getColor(R.color.dark_grey) val newBgColor = mPrefs.getInt(WIDGET_BG_COLOR, defaultColor) val newTextColor = mPrefs.getInt(WIDGET_TEXT_COLOR, Color.WHITE) - mRemoteViews.apply { - setInt(R.id.notes_view, "setBackgroundColor", newBgColor) - setInt(R.id.notes_view, "setTextColor", newTextColor) - setFloat(R.id.notes_view, "setTextSize", context.getTextSize() / context.resources.displayMetrics.density) + + for (id in textIds) { + mRemoteViews.apply { + setInt(id, "setBackgroundColor", newBgColor) + setInt(id, "setTextColor", newTextColor) + setFloat(id, "setTextSize", context.getTextSize() / context.resources.displayMetrics.density) + setViewVisibility(id, View.GONE) + } } + mRemoteViews.setViewVisibility(getProperTextView(context), View.VISIBLE) + for (widgetId in appWidgetIds) { updateWidget(appWidgetManager, widgetId, mRemoteViews) } super.onUpdate(context, appWidgetManager, appWidgetIds) } + private fun getProperTextView(context: Context): Int { + return when (Config.newInstance(context).gravity) { + GRAVITY_CENTER -> R.id.notes_view_center + GRAVITY_RIGHT -> R.id.notes_view_right + else -> R.id.notes_view_left + } + } + private fun initVariables(context: Context) { mPrefs = context.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE) mDb = DBHelper.newInstance(context) @@ -54,7 +70,8 @@ class MyWidgetProvider : AppWidgetProvider() { private fun updateWidget(widgetManager: AppWidgetManager, widgetId: Int, remoteViews: RemoteViews) { val widgetNoteId = mPrefs.getInt(WIDGET_NOTE_ID, 1) val note = mDb.getNote(widgetNoteId) - remoteViews.setTextViewText(R.id.notes_view, note?.value ?: "") + for (id in textIds) + remoteViews.setTextViewText(id, note?.value ?: "") widgetManager.updateAppWidget(widgetId, remoteViews) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt index 4acd808a..a3b980b9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt @@ -72,6 +72,7 @@ class SettingsActivity : SimpleActivity() { settings_gravity.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { config.gravity = settings_gravity.selectedItemPosition + updateWidget() } override fun onNothingSelected(parent: AdapterView<*>?) { diff --git a/app/src/main/res/layout/widget.xml b/app/src/main/res/layout/widget.xml index 324bac1f..b7ab225c 100644 --- a/app/src/main/res/layout/widget.xml +++ b/app/src/main/res/layout/widget.xml @@ -6,11 +6,30 @@ android:layout_height="match_parent"> + android:gravity="left" + android:padding="@dimen/activity_margin" + android:visibility="gone"/> + + + +