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-11-15 16:32:25 +01:00
|
|
|
import android.os.Bundle;
|
2019-11-28 18:48:18 +01:00
|
|
|
import android.view.ActionMode;
|
2019-11-15 16:32:25 +01:00
|
|
|
import android.view.View;
|
|
|
|
import android.widget.Toast;
|
2019-09-06 17:55:14 +02:00
|
|
|
|
2019-06-11 19:38:26 +02:00
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
import androidx.core.content.ContextCompat;
|
2019-11-08 18:05:35 +01:00
|
|
|
|
2018-11-24 18:56:12 +01:00
|
|
|
import com.franmontiel.localechanger.LocaleChanger;
|
2019-11-15 16:32:25 +01:00
|
|
|
import com.google.android.material.snackbar.Snackbar;
|
2019-11-08 18:05:35 +01:00
|
|
|
import com.jaredrummler.cyanea.app.CyaneaAppCompatActivity;
|
2018-10-24 14:52:08 +02:00
|
|
|
import com.vanniktech.emoji.EmojiManager;
|
|
|
|
import com.vanniktech.emoji.one.EmojiOneProvider;
|
|
|
|
|
2020-03-08 09:15:12 +01:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
|
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-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-08 18:05:35 +01:00
|
|
|
public class BaseActivity extends CyaneaAppCompatActivity {
|
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-11-28 18:48:18 +01:00
|
|
|
public static boolean canShowActionMode = true;
|
2019-05-30 15:19:02 +02:00
|
|
|
|
2017-12-12 19:27:33 +01:00
|
|
|
static {
|
2017-12-14 07:26:37 +01:00
|
|
|
Helper.installProvider();
|
2018-10-24 14:52:08 +02:00
|
|
|
EmojiManager.install(new EmojiOneProvider());
|
2017-12-12 19:27:33 +01:00
|
|
|
}
|
2018-11-24 18:56:12 +01:00
|
|
|
|
2019-11-15 16:32:25 +01:00
|
|
|
private ProgressDialog mProgressDialog;
|
2019-08-16 16:56:59 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
2020-05-17 18:24:52 +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()
|
2020-03-08 10:29:06 +01:00
|
|
|
// .penaltyDeath()
|
2019-08-16 16:56:59 +02:00
|
|
|
.build());
|
2020-05-17 18:24:52 +02:00
|
|
|
}*/
|
2019-11-28 18:48:18 +01:00
|
|
|
canShowActionMode = true;
|
2019-08-16 16:56:59 +02:00
|
|
|
super.onCreate(savedInstanceState);
|
2019-11-08 18:18:31 +01:00
|
|
|
|
2019-08-16 16:56:59 +02:00
|
|
|
}
|
|
|
|
|
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
|
2020-03-08 09:15:12 +01:00
|
|
|
public void onConfigurationChanged(@NotNull Configuration newConfig) {
|
2018-11-24 18:56:12 +01:00
|
|
|
super.onConfigurationChanged(newConfig);
|
|
|
|
LocaleChanger.onConfigurationChanged();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2020-03-08 09:15:12 +01:00
|
|
|
protected void attachBaseContext(@NotNull Context newBase) {
|
2018-11-24 18:56:12 +01:00
|
|
|
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) {
|
2020-03-08 09:15:12 +01:00
|
|
|
if (requestCode == READ_WRITE_STORAGE) {
|
|
|
|
isPermissionGranted(grantResults[0] == PackageManager.PERMISSION_GRANTED, permissions[0]);
|
2019-05-30 15:19:02 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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 {
|
2020-04-08 12:42:15 +02:00
|
|
|
Toasty.info(BaseActivity.this, message, Toast.LENGTH_SHORT).show();
|
2019-05-30 15:19:02 +02:00
|
|
|
}
|
|
|
|
}
|
2019-11-28 18:48:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onActionModeStarted(ActionMode mode) {
|
|
|
|
if (!canShowActionMode) {
|
|
|
|
mode.finish();
|
|
|
|
}
|
|
|
|
super.onActionModeStarted(mode);
|
|
|
|
|
|
|
|
}
|
2017-12-12 18:17:01 +01:00
|
|
|
}
|