From 593d8103f23c8a580c493b62cb51c6c22bc74011 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 26 Aug 2022 16:47:51 -0400 Subject: [PATCH 1/5] chore: Upgrade build tool dependencies And move to mavenCentral instead of jcenter --- app/build.gradle | 12 ++---------- build.gradle | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 590352b..00b8270 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,16 +22,8 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - lintOptions { - // We have community-contributed translations. Do not let them block releases. - disable 'MissingTranslation' - disable 'ExtraTranslation' - // We don't need Google App Indexing - disable 'GoogleAppIndexingWarning' - // Some dependencies still pull in Fragment 1.2.x - // Let's just ignore the error for now - // We don't really hit the broken use-cases for now - disable 'InvalidFragmentVersionForActivityResult' + lint { + disable 'MissingTranslation', 'ExtraTranslation', 'GoogleAppIndexingWarning', 'InvalidFragmentVersionForActivityResult' } } diff --git a/build.gradle b/build.gradle index 42810d6..f1ac6ef 100644 --- a/build.gradle +++ b/build.gradle @@ -4,10 +4,10 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.3' + classpath 'com.android.tools.build:gradle:7.2.2' // NOTE: Do not place your application dependencies here; they belong @@ -18,7 +18,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 34b93c1..ca14046 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip From 95e5ae2fa8a594c93588134d39bff672184d1795 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 26 Aug 2022 16:53:23 -0400 Subject: [PATCH 2/5] chore: Upgrade dependencies Not necessarily working yet. --- app/build.gradle | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 00b8270..b9c2fe5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,12 +30,12 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.legacy:legacy-support-core-ui:1.0.0' - implementation 'androidx.fragment:fragment:1.3.6' - implementation 'androidx.appcompat:appcompat:1.4.0-rc01' - implementation 'androidx.preference:preference:1.1.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.1' - implementation 'com.google.android.material:material:1.4.0' - implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' + implementation 'androidx.fragment:fragment:1.5.2' + implementation 'androidx.appcompat:appcompat:1.6.0-beta01' + implementation 'androidx.preference:preference:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'com.google.android.material:material:1.6.1' + implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' implementation 'mobi.upod:time-duration-picker:1.1.3' debugImplementation project(path: ':setup-wizard-lib', configuration: 'gingerbreadCompatDebugRuntimeElements') releaseImplementation project(path: ':setup-wizard-lib', configuration: 'gingerbreadCompatReleaseRuntimeElements') From a2677d9f9d9cb11dfeaa3b5b0ee8d43ec46367eb Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 26 Aug 2022 16:56:03 -0400 Subject: [PATCH 3/5] gradle: Bring back jcenter just for time-duration-picker --- app/build.gradle | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index b9c2fe5..fa02495 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,14 @@ apply plugin: 'com.android.application' +repositories { + //noinspection JcenterRepositoryObsolete + jcenter { + content { + includeVersion "mobi.upod", "time-duration-picker", "1.1.3" + } + } +} + android { compileSdkVersion 31 buildToolsVersion '30.0.3' From 030b9837dcd4ee57bca32afc7b4ef8f79b377fab Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 26 Aug 2022 17:02:25 -0400 Subject: [PATCH 4/5] gradle: Bump target SDK to 33 (T) --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index fa02495..0db4888 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,12 +10,12 @@ repositories { } android { - compileSdkVersion 31 - buildToolsVersion '30.0.3' + compileSdkVersion 33 + buildToolsVersion '33.0.0' defaultConfig { applicationId "net.typeblog.shelter" minSdkVersion 24 - targetSdkVersion 31 + targetSdkVersion 33 versionCode 20 versionName "1.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" From 7ca33edd2674f3970e7ff415fa5f4ec4c9f27a93 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 26 Aug 2022 21:02:13 -0400 Subject: [PATCH 5/5] Use ACTION_PROVISIONING_SUCCESSFUL instead of ACTION_PROFILE_PROVISIONING_COMPLETE On Android 8.0+, the activity intent ACTION_PROVISIONING_SUCCESSFUL is also sent out before the broadcast ACTION_PROFILE_PROVISIONING_COMPLETE. We can make of use this to directly bring up an activity for finalization, skipping over our original notification-based switch-er-oo from the broadcast receiver. This is also necessary on platform release T since now we cannot send notifications by default. We cannot request for the permission either since that will require a visible activity too. Using the activity intent works around all of this and makes Shelter work again on T. (And we won't have to deal with the Do-Not-Disturb nonsense anymore) --- app/src/main/AndroidManifest.xml | 14 ++++++++++++++ .../receivers/ShelterDeviceAdminReceiver.java | 10 ++++++++-- .../typeblog/shelter/ui/FinalizeActivity.java | 19 +++++++++++++++++++ .../shelter/ui/SetupWizardActivity.java | 2 +- 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/net/typeblog/shelter/ui/FinalizeActivity.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2c0e61e..e8c93cb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -84,6 +84,20 @@ + + + + + + + + + = Build.VERSION_CODES.O) return; + // Complex logic in a BroadcastReceiver is not reliable + // Delegate finalization to the DummyActivity Intent i = new Intent(context.getApplicationContext(), DummyActivity.class); i.setAction(DummyActivity.FINALIZE_PROVISION); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/java/net/typeblog/shelter/ui/FinalizeActivity.java b/app/src/main/java/net/typeblog/shelter/ui/FinalizeActivity.java new file mode 100644 index 0000000..184c309 --- /dev/null +++ b/app/src/main/java/net/typeblog/shelter/ui/FinalizeActivity.java @@ -0,0 +1,19 @@ +package net.typeblog.shelter.ui; + +import android.content.Intent; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public class FinalizeActivity extends AppCompatActivity { + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Intent i = new Intent(getApplicationContext(), DummyActivity.class); + i.setAction(DummyActivity.FINALIZE_PROVISION); + i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(i); + finish(); + } +} diff --git a/app/src/main/java/net/typeblog/shelter/ui/SetupWizardActivity.java b/app/src/main/java/net/typeblog/shelter/ui/SetupWizardActivity.java index 9508232..595c42b 100644 --- a/app/src/main/java/net/typeblog/shelter/ui/SetupWizardActivity.java +++ b/app/src/main/java/net/typeblog/shelter/ui/SetupWizardActivity.java @@ -334,6 +334,7 @@ public class SetupWizardActivity extends AppCompatActivity { public void onNavigateNext() { super.onNavigateNext(); mActivity.switchToFragment(new PleaseWaitFragment(), false); + mActivity.setupProfile(); } @Override @@ -357,7 +358,6 @@ public class SetupWizardActivity extends AppCompatActivity { @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - mActivity.setupProfile(); } @Override