set up WorkManager on demand to avoid slowing down starts
This also provides a convenient place to configure the debug logging.
This commit is contained in:
parent
2975d4c09f
commit
4662c0bdaa
7
app/proguard-rules.pro
vendored
7
app/proguard-rules.pro
vendored
@ -4,13 +4,11 @@
|
||||
-keep class org.fdroid.fdroid.** {*;}
|
||||
-dontskipnonpubliclibraryclassmembers
|
||||
-dontwarn android.test.**
|
||||
-dontwarn com.android.support.test.**
|
||||
|
||||
-dontwarn javax.naming.**
|
||||
-dontwarn org.slf4j.**
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote android.net.http.**
|
||||
-dontnote android.support.**
|
||||
-dontnote **ILicensingService
|
||||
|
||||
# Needed for espresso https://stackoverflow.com/a/21706087
|
||||
@ -48,4 +46,9 @@
|
||||
public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }
|
||||
-keep public class your.class.** {
|
||||
*;
|
||||
}
|
||||
|
||||
# This is necessary so that RemoteWorkManager can be initialized (also marked with @Keep)
|
||||
-keep class androidx.work.multiprocess.RemoteWorkManagerClient {
|
||||
public <init>(...);
|
||||
}
|
@ -266,8 +266,11 @@
|
||||
android:name=".AddRepoIntentService"
|
||||
android:exported="false"/>
|
||||
|
||||
|
||||
<!-- Warning: Please add all new services to HidingManager -->
|
||||
<provider
|
||||
android:name="androidx.work.impl.WorkManagerInitializer"
|
||||
android:authorities="${applicationId}.workmanager-init"
|
||||
android:exported="false"
|
||||
tools:node="remove" />
|
||||
|
||||
<activity
|
||||
android:name=".views.main.MainActivity"
|
||||
|
@ -46,11 +46,10 @@ import android.util.Log;
|
||||
import android.view.Display;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.collection.LongSparseArray;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.nostra13.universalimageloader.cache.disc.DiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
|
||||
@ -58,7 +57,8 @@ import com.nostra13.universalimageloader.core.DefaultConfigurationFactory;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
import com.nostra13.universalimageloader.core.process.BitmapProcessor;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
import org.acra.ACRA;
|
||||
import org.acra.ReportField;
|
||||
import org.acra.ReportingInteractionMode;
|
||||
@ -82,17 +82,13 @@ import org.fdroid.fdroid.net.ImageLoaderForUIL;
|
||||
import org.fdroid.fdroid.panic.HidingManager;
|
||||
import org.fdroid.fdroid.work.CleanCacheWorker;
|
||||
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.security.Security;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
|
||||
@ReportsCrashes(mailTo = BuildConfig.ACRA_REPORT_EMAIL,
|
||||
mode = ReportingInteractionMode.DIALOG,
|
||||
reportDialogClass = org.fdroid.fdroid.acra.CrashReportActivity.class,
|
||||
@ -113,7 +109,7 @@ import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
ReportField.STACK_TRACE,
|
||||
}
|
||||
)
|
||||
public class FDroidApp extends Application {
|
||||
public class FDroidApp extends Application implements androidx.work.Configuration.Provider {
|
||||
|
||||
private static final String TAG = "FDroidApp";
|
||||
private static final String ACRA_ID = BuildConfig.APPLICATION_ID + ":acra";
|
||||
@ -654,7 +650,7 @@ public class FDroidApp extends Application {
|
||||
|
||||
/**
|
||||
* Put proxy settings (or Tor settings) globally into effect based on whats configured in Preferences.
|
||||
*
|
||||
* <p>
|
||||
* Must be called on App startup and after every proxy configuration change.
|
||||
*/
|
||||
public static void configureProxy(Preferences preferences) {
|
||||
@ -676,4 +672,26 @@ public class FDroidApp extends Application {
|
||||
public static Context getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set up WorkManager on demand to avoid slowing down starts.
|
||||
*
|
||||
* @see CleanCacheWorker
|
||||
* @see org.fdroid.fdroid.work.PopularityContestWorker
|
||||
* @see org.fdroid.fdroid.work.UpdateWorker
|
||||
* @see <a href="https://developer.android.com/codelabs/android-adv-workmanager#3">example</a>
|
||||
*/
|
||||
@NonNull
|
||||
@Override
|
||||
public androidx.work.Configuration getWorkManagerConfiguration() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
return new androidx.work.Configuration.Builder()
|
||||
.setMinimumLoggingLevel(Log.DEBUG)
|
||||
.build();
|
||||
} else {
|
||||
return new androidx.work.Configuration.Builder()
|
||||
.setMinimumLoggingLevel(Log.ERROR)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user