From b03af794da62ff27db5e51347d7d8a110c8a23b4 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 2 May 2021 19:11:15 +0200 Subject: [PATCH] Added GitGub update actions --- .../java/eu/faircode/email/ActivitySetup.java | 1 + .../java/eu/faircode/email/ActivityView.java | 29 +++++++++++++++++-- .../eu/faircode/email/FragmentOptions.java | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 4755a61e85..c193a1185f 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -126,6 +126,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac static final int REQUEST_IMPORT_CERTIFICATE = 7; static final int REQUEST_OAUTH = 8; static final int REQUEST_STILL = 9; + static final int REQUEST_MANAGE = 10; static final String ACTION_QUICK_GMAIL = BuildConfig.APPLICATION_ID + ".ACTION_QUICK_GMAIL"; static final String ACTION_QUICK_OAUTH = BuildConfig.APPLICATION_ID + ".ACTION_QUICK_OAUTH"; diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 48c9ba9929..51b96950bb 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1001,6 +1001,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB if (jasset.has("name") && !jasset.isNull("name")) { String name = jasset.getString("name"); if (name.endsWith(".apk")) { + info.download_url = jasset.optString("browser_download_url"); Log.i("Latest version=" + info.tag_name); if (BuildConfig.VERSION_NAME.equals(info.tag_name) && !BuildConfig.DEBUG) return null; @@ -1037,12 +1038,35 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB .setCategory(NotificationCompat.CATEGORY_REMINDER) .setVisibility(NotificationCompat.VISIBILITY_SECRET); - Intent update = new Intent(Intent.ACTION_VIEW, Uri.parse(info.html_url)); - update.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + Intent update = new Intent(Intent.ACTION_VIEW, Uri.parse(info.html_url)) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent piUpdate = PendingIntentCompat.getActivity( ActivityView.this, REQUEST_UPDATE, update, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(piUpdate); + Intent manage = new Intent(ActivityView.this, ActivitySetup.class) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .putExtra("tab", "misc"); + PendingIntent piManage = PendingIntentCompat.getActivity( + ActivityView.this, ActivitySetup.REQUEST_MANAGE, manage, PendingIntent.FLAG_UPDATE_CURRENT); + NotificationCompat.Action.Builder actionManage = new NotificationCompat.Action.Builder( + R.drawable.twotone_settings_24, + getString(R.string.title_setup_manage), + piManage); + builder.addAction(actionManage.build()); + + if (!TextUtils.isEmpty(info.download_url)) { + Intent download = new Intent(Intent.ACTION_VIEW, Uri.parse(info.download_url)) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + PendingIntent piDownload = PendingIntent.getActivity( + ActivityView.this, 0, download, 0); + NotificationCompat.Action.Builder actionDownload = new NotificationCompat.Action.Builder( + R.drawable.twotone_cloud_download_24, + getString(R.string.title_download), + piDownload); + builder.addAction(actionDownload.build()); + } + try { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.notify(Helper.NOTIFICATION_UPDATE, builder.build()); @@ -1518,6 +1542,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private class UpdateInfo { String tag_name; // version String html_url; + String download_url; } public static class FragmentDialogFirst extends FragmentDialogBase { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 3c1848c967..2ab3e88f68 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -180,6 +180,8 @@ public class FragmentOptions extends FragmentBase { pager.setCurrentItem(4); else if ("encryption".equals(tab)) pager.setCurrentItem(7); + else if ("misc".equals(tab)) + pager.setCurrentItem(9); getActivity().getIntent().removeExtra("tab"); }