fedilab-Android-App/app/src/main/java/app/fedilab/android/activities/MainApplication.java

103 lines
3.9 KiB
Java
Raw Normal View History

2019-05-18 11:10:30 +02:00
package app.fedilab.android.activities;
2017-05-05 16:36:04 +02:00
/* Copyright 2017 Thomas Schneider
*
2019-05-18 11:10:30 +02:00
* This file is a part of Fedilab
2017-05-05 16:36:04 +02:00
*
* 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.
*
2019-05-18 11:10:30 +02:00
* Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
2017-05-05 16:36:04 +02:00
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
2019-05-18 11:10:30 +02:00
* You should have received a copy of the GNU General Public License along with Fedilab; if not,
2017-05-05 16:36:04 +02:00
* see <http://www.gnu.org/licenses>. */
2018-11-24 18:56:12 +01:00
2018-12-11 19:27:21 +01:00
import android.content.Context;
2018-11-24 18:56:12 +01:00
import android.content.SharedPreferences;
import android.os.StrictMode;
2019-06-11 19:38:26 +02:00
import androidx.multidex.MultiDex;
import androidx.multidex.MultiDexApplication;
import androidx.core.content.ContextCompat;
2018-11-24 18:56:12 +01:00
2017-05-05 16:36:04 +02:00
import com.evernote.android.job.JobManager;
2018-11-24 18:56:12 +01:00
import com.franmontiel.localechanger.LocaleChanger;
2019-01-07 15:27:06 +01:00
import net.gotev.uploadservice.UploadService;
2018-11-24 18:56:12 +01:00
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
2019-05-18 11:10:30 +02:00
import app.fedilab.android.helper.Helper;
import app.fedilab.android.jobs.ApplicationJob;
import app.fedilab.android.jobs.NotificationsSyncJob;
2018-11-25 10:45:16 +01:00
import es.dmoral.toasty.Toasty;
2019-05-18 11:10:30 +02:00
import app.fedilab.android.BuildConfig;
import app.fedilab.android.R;
2017-05-05 16:36:04 +02:00
/**
* Created by Thomas on 29/04/2017.
* Main application, jobs are launched here.
2017-05-05 16:36:04 +02:00
*/
2018-10-08 17:44:43 +02:00
2018-12-11 19:27:21 +01:00
public class MainApplication extends MultiDexApplication {
2017-05-05 16:36:04 +02:00
2019-02-14 10:06:18 +01:00
private static MainApplication app;
2017-05-05 16:36:04 +02:00
@Override
public void onCreate() {
super.onCreate();
2019-02-14 10:06:18 +01:00
app = this;
2019-02-13 09:06:00 +01:00
//System.setProperty("java.net.preferIPv4Stack" , "true");
2017-05-05 16:36:04 +02:00
JobManager.create(this).addJobCreator(new ApplicationJob());
2017-08-29 16:22:57 +02:00
NotificationsSyncJob.schedule(false);
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
2018-11-24 18:56:12 +01:00
try {
List<Locale> SUPPORTED_LOCALES = new ArrayList<>();
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
2018-12-16 17:26:19 +01:00
String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE_NEW, null);
if( defaultLocaleString != null){
Locale defaultLocale;
if( defaultLocaleString.equals("zh-CN"))
defaultLocale = Locale.SIMPLIFIED_CHINESE;
else if( defaultLocaleString.equals("zh-TW"))
defaultLocale = Locale.TRADITIONAL_CHINESE;
else
defaultLocale = new Locale(defaultLocaleString);
SUPPORTED_LOCALES.add(defaultLocale);
}else {
SUPPORTED_LOCALES.add(Locale.getDefault());
}
2018-11-24 18:56:12 +01:00
LocaleChanger.initialize(getApplicationContext(), SUPPORTED_LOCALES);
2019-02-14 10:06:18 +01:00
}catch (Exception ignored){}
2019-01-07 15:27:06 +01:00
//Initialize upload service
UploadService.NAMESPACE = BuildConfig.APPLICATION_ID;
2018-12-22 08:28:14 +01:00
Toasty.Config.getInstance()
.setErrorColor(ContextCompat.getColor(getApplicationContext(), R.color.toasty_background))
.setInfoColor(ContextCompat.getColor(getApplicationContext(), R.color.toasty_background))
.setSuccessColor(ContextCompat.getColor(getApplicationContext(), R.color.toasty_background))
.setWarningColor(ContextCompat.getColor(getApplicationContext(), R.color.toasty_background))
.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.toasty_text))
2018-12-22 09:10:29 +01:00
.apply();
2018-12-22 08:28:14 +01:00
Toasty.Config.getInstance().apply();
}
2018-12-11 19:27:21 +01:00
2019-02-14 10:06:18 +01:00
2018-12-11 19:27:21 +01:00
@Override
protected void attachBaseContext(Context base)
{
super.attachBaseContext(base);
MultiDex.install(MainApplication.this);
}
2019-02-14 10:06:18 +01:00
public static MainApplication getApp(){
return app;
}
2017-05-05 16:36:04 +02:00
}