From 70550d022e6a699d250b5a1e063359691a1627c7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 18 Mar 2017 23:50:49 +0100 Subject: [PATCH] open the widget note after clicking on the widget --- .../notes/activities/MainActivity.kt | 7 ++++++- .../notes/activities/SplashActivity.kt | 11 ++++++++++- .../com/simplemobiletools/notes/helpers/Constants.kt | 1 + .../notes/helpers/MyWidgetProvider.kt | 9 ++++++--- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt index 10fba15b..d5258ce5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt @@ -24,6 +24,7 @@ import com.simplemobiletools.notes.dialogs.* import com.simplemobiletools.notes.extensions.config import com.simplemobiletools.notes.extensions.getTextSize import com.simplemobiletools.notes.helpers.DBHelper +import com.simplemobiletools.notes.helpers.OPEN_NOTE_ID import com.simplemobiletools.notes.helpers.TYPE_NOTE import com.simplemobiletools.notes.models.Note import kotlinx.android.synthetic.main.activity_main.* @@ -55,7 +56,11 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { private fun initViewPager() { mNotes = mDb.getNotes() mCurrentNote = mNotes[0] - val itemIndex = getNoteIndexWithId(config.currentNoteId) + var wantedNoteId = intent.getIntExtra(OPEN_NOTE_ID, -1) + if (wantedNoteId == -1) + wantedNoteId = config.currentNoteId + + val itemIndex = getNoteIndexWithId(wantedNoteId) mAdapter = NotesPagerAdapter(supportFragmentManager, mNotes) view_pager.apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SplashActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SplashActivity.kt index 6bb0fd58..e7c8a7b1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SplashActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SplashActivity.kt @@ -3,11 +3,20 @@ package com.simplemobiletools.notes.activities import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity +import com.simplemobiletools.notes.helpers.OPEN_NOTE_ID class SplashActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - startActivity(Intent(this, MainActivity::class.java)) + + if (intent.extras?.containsKey(OPEN_NOTE_ID) == true) { + Intent(this, MainActivity::class.java).apply { + putExtra(OPEN_NOTE_ID, intent.getIntExtra(OPEN_NOTE_ID, -1)) + startActivity(this) + } + } else { + startActivity(Intent(this, MainActivity::class.java)) + } finish() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt index 2d26bd14..a06b9180 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/Constants.kt @@ -1,6 +1,7 @@ package com.simplemobiletools.notes.helpers val NOTE_ID = "note_id" +val OPEN_NOTE_ID = "open_note_id" // shared preferences val CURRENT_NOTE_ID = "current_note_id" diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt index 701722a6..a71e92a3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/helpers/MyWidgetProvider.kt @@ -60,9 +60,12 @@ class MyWidgetProvider : AppWidgetProvider() { } private fun setupAppOpenIntent(id: Int, context: Context) { - val intent = Intent(context, SplashActivity::class.java) - val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0) - mRemoteViews.setOnClickPendingIntent(id, pendingIntent) + val widgetId = context.config.widgetNoteId + Intent(context, SplashActivity::class.java).apply { + putExtra(OPEN_NOTE_ID, widgetId) + val pendingIntent = PendingIntent.getActivity(context, widgetId, this, 0) + mRemoteViews.setOnClickPendingIntent(id, pendingIntent) + } } private fun updateWidget(widgetManager: AppWidgetManager, widgetId: Int, remoteViews: RemoteViews, context: Context) {