From 74929d4fe1fd82e620dd40ecd1c77d59468770bc Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Mon, 5 Jul 2021 18:04:13 -0400 Subject: [PATCH] make a better attempt at making this a widget Signed-off-by: Christine Dodrill --- app/build.gradle | 7 +- app/src/main/AndroidManifest.xml | 62 ++++---------- .../{Application.java => Application.kt} | 12 +-- .../christine/xesite/DelegationService.java | 14 ---- .../christine/xesite/DelegationService.kt | 11 +++ ...ncherActivity.java => LauncherActivity.kt} | 18 ++--- .../website/christine/xesite/NewPostWidget.kt | 46 +++++++++++ .../example_appwidget_preview.png | Bin 0 -> 3522 bytes app/src/main/res/layout/new_post_widget.xml | 76 ++++++++++++++++++ app/src/main/res/values-night/themes.xml | 7 ++ app/src/main/res/values/attrs.xml | 6 ++ app/src/main/res/values/colors.xml | 4 + app/src/main/res/values/dimens.xml | 10 +++ app/src/main/res/values/strings.xml | 8 ++ app/src/main/res/values/themes.xml | 7 ++ app/src/main/res/xml/new_post_widget_info.xml | 10 +++ build.gradle | 4 + 17 files changed, 224 insertions(+), 78 deletions(-) rename app/src/main/java/website/christine/xesite/{Application.java => Application.kt} (78%) delete mode 100644 app/src/main/java/website/christine/xesite/DelegationService.java create mode 100644 app/src/main/java/website/christine/xesite/DelegationService.kt rename app/src/main/java/website/christine/xesite/{LauncherActivity.java => LauncherActivity.kt} (69%) create mode 100644 app/src/main/java/website/christine/xesite/NewPostWidget.kt create mode 100644 app/src/main/res/drawable-nodpi/example_appwidget_preview.png create mode 100644 app/src/main/res/layout/new_post_widget.xml create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/attrs.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/new_post_widget_info.xml diff --git a/app/build.gradle b/app/build.gradle index c28c3cd..c13149b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,6 +17,7 @@ import groovy.xml.MarkupBuilder apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' def twaManifest = [ applicationId: 'website.christine.xesite', @@ -153,6 +154,9 @@ android { lintOptions { checkReleaseBuilds false } + buildFeatures { + viewBinding true + } } task generateShorcutsFile { @@ -202,5 +206,6 @@ dependencies { implementation 'com.google.androidbrowserhelper:locationdelegation:1.0.0' implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.2.0' - + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation "com.android.support:support-compat:28.0.0" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 11d1cd4..1f68122 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,48 +1,33 @@ - - - + + + + + + + + - - @@ -52,69 +37,56 @@ android:name="android.support.customtabs.trusted.MANAGE_SPACE_URL" android:value="@string/launchUrl" /> - - - - - - - - - - - - - + - @@ -126,9 +98,7 @@ android:scheme="https" /> - - @@ -147,14 +117,14 @@ android:name=".DelegationService" android:enabled="@bool/enableNotification" android:exported="@bool/enableNotification"> - + - - + + \ No newline at end of file diff --git a/app/src/main/java/website/christine/xesite/Application.java b/app/src/main/java/website/christine/xesite/Application.kt similarity index 78% rename from app/src/main/java/website/christine/xesite/Application.java rename to app/src/main/java/website/christine/xesite/Application.kt index aa89f6a..c818d01 100644 --- a/app/src/main/java/website/christine/xesite/Application.java +++ b/app/src/main/java/website/christine/xesite/Application.kt @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package website.christine.xesite; +package website.christine.xesite +import android.app.Application -public class Application extends android.app.Application { - @Override - public void onCreate() { - super.onCreate(); +class Application : Application() { + override fun onCreate() { + super.onCreate() } -} +} \ No newline at end of file diff --git a/app/src/main/java/website/christine/xesite/DelegationService.java b/app/src/main/java/website/christine/xesite/DelegationService.java deleted file mode 100644 index 252e8cb..0000000 --- a/app/src/main/java/website/christine/xesite/DelegationService.java +++ /dev/null @@ -1,14 +0,0 @@ -package website.christine.xesite; - -import com.google.androidbrowserhelper.locationdelegation.LocationDelegationExtraCommandHandler; - -public class DelegationService extends - com.google.androidbrowserhelper.trusted.DelegationService { - @Override - public void onCreate() { - super.onCreate(); - - registerExtraCommandHandler(new LocationDelegationExtraCommandHandler()); - } -} - diff --git a/app/src/main/java/website/christine/xesite/DelegationService.kt b/app/src/main/java/website/christine/xesite/DelegationService.kt new file mode 100644 index 0000000..ad467cd --- /dev/null +++ b/app/src/main/java/website/christine/xesite/DelegationService.kt @@ -0,0 +1,11 @@ +package website.christine.xesite + +import com.google.androidbrowserhelper.locationdelegation.LocationDelegationExtraCommandHandler +import com.google.androidbrowserhelper.trusted.DelegationService + +class DelegationService : DelegationService() { + override fun onCreate() { + super.onCreate() + registerExtraCommandHandler(LocationDelegationExtraCommandHandler()) + } +} \ No newline at end of file diff --git a/app/src/main/java/website/christine/xesite/LauncherActivity.java b/app/src/main/java/website/christine/xesite/LauncherActivity.kt similarity index 69% rename from app/src/main/java/website/christine/xesite/LauncherActivity.java rename to app/src/main/java/website/christine/xesite/LauncherActivity.kt index ddf4d8f..ebf6c4e 100644 --- a/app/src/main/java/website/christine/xesite/LauncherActivity.java +++ b/app/src/main/java/website/christine/xesite/LauncherActivity.kt @@ -13,18 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package website.christine.xesite; +package website.christine.xesite -import android.net.Uri; +import android.net.Uri +import com.google.androidbrowserhelper.trusted.LauncherActivity -public class LauncherActivity - extends com.google.androidbrowserhelper.trusted.LauncherActivity { - - @Override - protected Uri getLaunchingUrl() { +class LauncherActivity : LauncherActivity() { + override fun getLaunchingUrl(): Uri { // Get the original launch Url. - Uri uri = super.getLaunchingUrl(); - - return uri; + return super.getLaunchingUrl() } -} +} \ No newline at end of file diff --git a/app/src/main/java/website/christine/xesite/NewPostWidget.kt b/app/src/main/java/website/christine/xesite/NewPostWidget.kt new file mode 100644 index 0000000..236d200 --- /dev/null +++ b/app/src/main/java/website/christine/xesite/NewPostWidget.kt @@ -0,0 +1,46 @@ +package website.christine.xesite + +import android.appwidget.AppWidgetManager +import android.appwidget.AppWidgetProvider +import android.content.Context +import android.widget.LinearLayout +import android.widget.RemoteViews + +/** + * Implementation of App Widget functionality. + */ +class NewPostWidget : AppWidgetProvider() { + override fun onUpdate( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetIds: IntArray + ) { + // There may be multiple widgets active, so update all of them + for (appWidgetId in appWidgetIds) { + updateAppWidget(context, appWidgetManager, appWidgetId) + } + } + + override fun onEnabled(context: Context) { + // Enter relevant functionality for when the first widget is created + val views = RemoteViews(context.packageName, R.layout.new_post_widget) + } + + override fun onDisabled(context: Context) { + // Enter relevant functionality for when the last widget is disabled + } +} + +internal fun updateAppWidget( + context: Context, + appWidgetManager: AppWidgetManager, + appWidgetId: Int +) { + // Construct the RemoteViews object + val views = RemoteViews(context.packageName, R.layout.new_post_widget) + views.setTextViewText(R.id.article_title, "My Thoughts About Using Android Again as an iPhone User") + views.setTextViewText(R.id.appwidget_text2, "I used to be a hardcore Android user. It was my second major kind of smartphone (the first was Windows Mobile 6.1 on a T-Mobile Dash) and it left me hooked to the concept of smartphones and connected tech in general.") + + // Instruct the widget manager to update the widget + appWidgetManager.updateAppWidget(appWidgetId, views) +} \ No newline at end of file diff --git a/app/src/main/res/drawable-nodpi/example_appwidget_preview.png b/app/src/main/res/drawable-nodpi/example_appwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..894b069a4907d258f60b1b2406b90f5a0fe1c35b GIT binary patch literal 3522 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 + + + + + + + +