diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 88decb5d..192218b2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,5 +18,18 @@ + + + + + + + + diff --git a/app/src/main/java/notes/simplemobiletools/com/MainActivity.java b/app/src/main/java/notes/simplemobiletools/com/MainActivity.java index fba68e9f..858986e7 100644 --- a/app/src/main/java/notes/simplemobiletools/com/MainActivity.java +++ b/app/src/main/java/notes/simplemobiletools/com/MainActivity.java @@ -1,6 +1,9 @@ package notes.simplemobiletools.com; +import android.appwidget.AppWidgetManager; +import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; @@ -47,12 +50,25 @@ public class MainActivity extends AppCompatActivity { private void saveText() { final String text = notesView.getText().toString().trim(); prefs.edit().putString(Constants.TEXT, text).apply(); + Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show(); hideKeyboard(); + updateWidget(); } private void hideKeyboard() { final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(notesView.getWindowToken(), 0); } + + private void updateWidget() { + final Context context = getApplicationContext(); + final AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); + int[] ids = widgetManager.getAppWidgetIds(new ComponentName(context, MyWidgetProvider.class)); + + final Intent intent = new Intent(this, MyWidgetProvider.class); + intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids); + sendBroadcast(intent); + } } diff --git a/app/src/main/java/notes/simplemobiletools/com/MyWidgetProvider.java b/app/src/main/java/notes/simplemobiletools/com/MyWidgetProvider.java new file mode 100644 index 00000000..b1c3fde5 --- /dev/null +++ b/app/src/main/java/notes/simplemobiletools/com/MyWidgetProvider.java @@ -0,0 +1,27 @@ +package notes.simplemobiletools.com; + +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.Context; +import android.content.SharedPreferences; +import android.widget.RemoteViews; + +public class MyWidgetProvider extends AppWidgetProvider { + private static SharedPreferences prefs; + + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + prefs = context.getSharedPreferences(Constants.PREFS, Context.MODE_PRIVATE); + for (int widgetId : appWidgetIds) { + updateWidget(context, appWidgetManager, widgetId); + } + super.onUpdate(context, appWidgetManager, appWidgetIds); + } + + private void updateWidget(Context context, AppWidgetManager widgetManager, int widgetId) { + final String text = prefs.getString(Constants.TEXT, ""); + final RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); + remoteViews.setTextViewText(R.id.notesView, text); + widgetManager.updateAppWidget(widgetId, remoteViews); + } +} diff --git a/app/src/main/res/layout/widget.xml b/app/src/main/res/layout/widget.xml new file mode 100644 index 00000000..963730a1 --- /dev/null +++ b/app/src/main/res/layout/widget.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/app/src/main/res/xml/widget_info.xml b/app/src/main/res/xml/widget_info.xml new file mode 100644 index 00000000..b36a1e31 --- /dev/null +++ b/app/src/main/res/xml/widget_info.xml @@ -0,0 +1,6 @@ + + +