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

144 lines
4.2 KiB
Java
Raw Normal View History

2019-05-18 11:10:30 +02:00
package app.fedilab.android.activities;
2017-12-12 18:17:01 +01:00
2017-12-13 12:52:14 +01:00
import android.annotation.SuppressLint;
2019-05-30 15:19:02 +02:00
import android.app.ProgressDialog;
2018-11-24 18:56:12 +01:00
import android.content.Context;
2019-05-30 15:19:02 +02:00
import android.content.pm.PackageManager;
2018-11-24 18:56:12 +01:00
import android.content.res.Configuration;
2019-09-06 17:55:14 +02:00
2019-06-11 19:38:26 +02:00
import androidx.annotation.NonNull;
2019-09-06 17:55:14 +02:00
2019-11-07 19:07:19 +01:00
import com.afollestad.aesthetic.Aesthetic;
import com.afollestad.aesthetic.AestheticActivity;
2019-06-11 19:38:26 +02:00
import com.google.android.material.snackbar.Snackbar;
2019-09-06 17:55:14 +02:00
2019-06-11 19:38:26 +02:00
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AppCompatActivity;
2019-08-16 16:56:59 +02:00
import android.os.Bundle;
2019-05-30 15:19:02 +02:00
import android.view.View;
import android.widget.Toast;
2017-12-12 18:17:01 +01:00
2018-11-24 18:56:12 +01:00
import com.franmontiel.localechanger.LocaleChanger;
import com.vanniktech.emoji.EmojiManager;
import com.vanniktech.emoji.one.EmojiOneProvider;
2019-08-19 12:44:09 +02:00
import java.util.Timer;
2019-05-18 11:10:30 +02:00
import app.fedilab.android.helper.Helper;
2019-11-07 19:07:19 +01:00
import app.fedilab.android.helper.ThemeHelper;
2019-05-30 15:19:02 +02:00
import es.dmoral.toasty.Toasty;
2017-12-13 18:42:32 +01:00
2017-12-12 18:17:01 +01:00
/**
* Created by Thomas on 12/12/2017.
2017-12-13 12:52:14 +01:00
* Base activity which updates security provider
2017-12-12 18:17:01 +01:00
*/
2017-12-13 12:52:14 +01:00
@SuppressLint("Registered")
2019-11-07 19:07:19 +01:00
public class BaseActivity extends AestheticActivity {
2019-05-30 15:19:02 +02:00
public static final int READ_WRITE_STORAGE = 52;
2019-08-19 12:44:09 +02:00
public static Timer timer;
2019-05-30 15:19:02 +02:00
private ProgressDialog mProgressDialog;
2017-12-12 19:27:33 +01:00
static {
2017-12-14 07:26:37 +01:00
Helper.installProvider();
EmojiManager.install(new EmojiOneProvider());
2017-12-12 19:27:33 +01:00
}
2018-11-24 18:56:12 +01:00
2019-08-16 16:56:59 +02:00
@Override
protected void onCreate(Bundle savedInstanceState) {
2019-08-17 12:04:47 +02:00
/* if (BuildConfig.DEBUG) {
2019-08-16 16:56:59 +02:00
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectAll()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
2019-08-17 11:10:31 +02:00
.detectLeakedRegistrationObjects()
.detectActivityLeaks()
2019-08-16 16:56:59 +02:00
.penaltyLog()
.penaltyDeath()
.build());
2019-08-17 12:04:47 +02:00
}*/
2019-08-16 16:56:59 +02:00
super.onCreate(savedInstanceState);
}
2019-08-19 12:44:09 +02:00
@Override
2019-09-06 17:55:14 +02:00
public void onDestroy() {
2019-08-19 12:44:09 +02:00
super.onDestroy();
2019-09-06 17:55:14 +02:00
if (timer != null) {
2019-08-19 12:44:09 +02:00
timer.cancel();
timer = null;
}
}
2019-08-16 16:56:59 +02:00
2018-11-24 18:56:12 +01:00
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LocaleChanger.onConfigurationChanged();
}
@Override
protected void attachBaseContext(Context newBase) {
newBase = LocaleChanger.configureBaseContext(newBase);
super.attachBaseContext(newBase);
}
2019-05-30 15:19:02 +02:00
public boolean requestPermission(String permission) {
boolean isGranted = ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED;
if (!isGranted) {
ActivityCompat.requestPermissions(
this,
new String[]{permission},
READ_WRITE_STORAGE);
}
return isGranted;
}
public void isPermissionGranted(boolean isGranted, String permission) {
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case READ_WRITE_STORAGE:
isPermissionGranted(grantResults[0] == PackageManager.PERMISSION_GRANTED, permissions[0]);
break;
}
}
protected void showLoading(@NonNull String message) {
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage(message);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
}
protected void hideLoading() {
if (mProgressDialog != null) {
mProgressDialog.dismiss();
}
}
protected void showSnackbar(@NonNull String message) {
View view = findViewById(android.R.id.content);
if (view != null) {
Snackbar.make(view, message, Snackbar.LENGTH_SHORT).show();
} else {
2019-08-20 11:30:49 +02:00
Toasty.info(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
2019-05-30 15:19:02 +02:00
}
}
2017-12-12 18:17:01 +01:00
}