package app.fedilab.fedilabtube; /* Copyright 2020 Thomas Schneider * * This file is a part of TubeLab * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 3 of the * License, or (at your option) any later version. * * TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along with TubeLab; if not, * see . */ import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import androidx.multidex.MultiDex; import androidx.multidex.MultiDexApplication; import androidx.work.Configuration; import androidx.work.WorkManager; import net.gotev.uploadservice.UploadServiceConfig; import net.gotev.uploadservice.observer.request.GlobalRequestObserver; import java.util.Objects; import app.fedilab.fedilabtube.helper.Helper; import app.fedilab.fedilabtube.helper.ThemeHelper; import app.fedilab.fedilabtube.services.GlobalUploadObserver; import app.fedilab.fedilabtube.worker.WorkHelper; public class BaseFedilabTube extends MultiDexApplication { static String UPLOAD_CHANNEL_ID = "upload_info_peertube"; @Override public void onCreate() { super.onCreate(); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); int interval = sharedpreferences.getInt(Helper.NOTIFICATION_INTERVAL, 60); if (interval >= 15) { WorkHelper.fetchNotifications(this, interval); } createNotificationChannel(); UploadServiceConfig.initialize(BaseFedilabTube.this, UPLOAD_CHANNEL_ID, true); new GlobalRequestObserver(this, new GlobalUploadObserver()); } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(BaseFedilabTube.this); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); int themePref = sharedpreferences.getInt(Helper.SET_THEME, BuildConfig.default_theme); ThemeHelper.switchTo(themePref); } private void createNotificationChannel() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel(UPLOAD_CHANNEL_ID, getString(R.string.notification_channel_name), NotificationManager.IMPORTANCE_LOW); channel.setSound(null, null); ((NotificationManager) Objects.requireNonNull(getSystemService(Context.NOTIFICATION_SERVICE))).createNotificationChannel(channel); } } }