package app.fedilab.android.activities; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Toast; import com.franmontiel.localechanger.LocaleChanger; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; import app.fedilab.android.helper.Helper; import es.dmoral.toasty.Toasty; /** * Created by Thomas on 12/12/2017. * Base activity which updates security provider */ @SuppressLint("Registered") public class BaseActivity extends AppCompatActivity { public static final int READ_WRITE_STORAGE = 52; private ProgressDialog mProgressDialog; static { Helper.installProvider(); EmojiManager.install(new EmojiOneProvider()); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); LocaleChanger.onConfigurationChanged(); } @Override protected void attachBaseContext(Context newBase) { newBase = LocaleChanger.configureBaseContext(newBase); super.attachBaseContext(newBase); } 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 { Toasty.info(this, message, Toast.LENGTH_SHORT).show(); } } }