mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-02-04 08:07:32 +01:00
convert MyWidgetProvider to kotlin
This commit is contained in:
parent
aa3a6188a1
commit
37f35e66b1
@ -1,58 +0,0 @@
|
||||
package com.simplemobiletools.notes;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.appwidget.AppWidgetProvider;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import com.simplemobiletools.notes.activities.MainActivity;
|
||||
import com.simplemobiletools.notes.databases.DBHelper;
|
||||
import com.simplemobiletools.notes.models.Note;
|
||||
|
||||
import static com.simplemobiletools.notes.R.layout.widget;
|
||||
|
||||
public class MyWidgetProvider extends AppWidgetProvider {
|
||||
private DBHelper mDb;
|
||||
private static SharedPreferences mPrefs;
|
||||
private static RemoteViews mRemoteViews;
|
||||
|
||||
@Override
|
||||
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
|
||||
initVariables(context);
|
||||
final int defaultColor = context.getResources().getColor(R.color.dark_grey);
|
||||
final int newBgColor = mPrefs.getInt(Constants.WIDGET_BG_COLOR, defaultColor);
|
||||
final int newTextColor = mPrefs.getInt(Constants.WIDGET_TEXT_COLOR, Color.WHITE);
|
||||
mRemoteViews.setInt(R.id.notes_view, "setBackgroundColor", newBgColor);
|
||||
mRemoteViews.setInt(R.id.notes_view, "setTextColor", newTextColor);
|
||||
mRemoteViews.setFloat(R.id.notes_view, "setTextSize", Utils.INSTANCE.getTextSize(context) / context.getResources().getDisplayMetrics().density);
|
||||
|
||||
for (int widgetId : appWidgetIds) {
|
||||
updateWidget(appWidgetManager, widgetId, mRemoteViews);
|
||||
}
|
||||
super.onUpdate(context, appWidgetManager, appWidgetIds);
|
||||
}
|
||||
|
||||
private void initVariables(Context context) {
|
||||
mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
|
||||
mDb = DBHelper.newInstance(context);
|
||||
mRemoteViews = new RemoteViews(context.getPackageName(), widget);
|
||||
setupAppOpenIntent(R.id.notes_holder, context);
|
||||
}
|
||||
|
||||
private void setupAppOpenIntent(int id, Context context) {
|
||||
final Intent intent = new Intent(context, MainActivity.class);
|
||||
final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
|
||||
mRemoteViews.setOnClickPendingIntent(id, pendingIntent);
|
||||
}
|
||||
|
||||
private void updateWidget(AppWidgetManager widgetManager, int widgetId, RemoteViews remoteViews) {
|
||||
final int widgetNoteId = mPrefs.getInt(Constants.WIDGET_NOTE_ID, 1);
|
||||
final Note note = mDb.getNote(widgetNoteId);
|
||||
remoteViews.setTextViewText(R.id.notes_view, note != null ? note.getValue() : "");
|
||||
widgetManager.updateAppWidget(widgetId, remoteViews);
|
||||
}
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package com.simplemobiletools.notes
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.appwidget.AppWidgetManager
|
||||
import android.appwidget.AppWidgetProvider
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.graphics.Color
|
||||
import android.widget.RemoteViews
|
||||
import com.simplemobiletools.notes.R.layout.widget
|
||||
import com.simplemobiletools.notes.activities.MainActivity
|
||||
import com.simplemobiletools.notes.databases.DBHelper
|
||||
|
||||
class MyWidgetProvider : AppWidgetProvider() {
|
||||
lateinit var mDb: DBHelper
|
||||
|
||||
companion object {
|
||||
lateinit var mPrefs: SharedPreferences
|
||||
lateinit var mRemoteViews: RemoteViews
|
||||
}
|
||||
|
||||
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
|
||||
initVariables(context)
|
||||
val defaultColor = context.resources.getColor(R.color.dark_grey)
|
||||
val newBgColor = mPrefs.getInt(Constants.WIDGET_BG_COLOR, defaultColor)
|
||||
val newTextColor = mPrefs.getInt(Constants.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", Utils.getTextSize(context) / context.resources.displayMetrics.density)
|
||||
}
|
||||
|
||||
for (widgetId in appWidgetIds) {
|
||||
updateWidget(appWidgetManager, widgetId, mRemoteViews)
|
||||
}
|
||||
super.onUpdate(context, appWidgetManager, appWidgetIds)
|
||||
}
|
||||
|
||||
private fun initVariables(context: Context) {
|
||||
mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE)
|
||||
mDb = DBHelper.newInstance(context)
|
||||
mRemoteViews = RemoteViews(context.packageName, widget)
|
||||
setupAppOpenIntent(R.id.notes_holder, context)
|
||||
}
|
||||
|
||||
private fun setupAppOpenIntent(id: Int, context: Context) {
|
||||
val intent = Intent(context, MainActivity::class.java)
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)
|
||||
mRemoteViews.setOnClickPendingIntent(id, pendingIntent)
|
||||
}
|
||||
|
||||
private fun updateWidget(widgetManager: AppWidgetManager, widgetId: Int, remoteViews: RemoteViews) {
|
||||
val widgetNoteId = mPrefs.getInt(Constants.WIDGET_NOTE_ID, 1)
|
||||
val note = mDb.getNote(widgetNoteId)
|
||||
remoteViews.setTextViewText(R.id.notes_view, if (note != null) note.value else "")
|
||||
widgetManager.updateAppWidget(widgetId, remoteViews)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user