/* * Copyright (c) 2020 Jannis Scheibe * * This file is part of FitoTrack * * FitoTrack 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. * * FitoTrack 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 this program. If not, see . */ package de.tadris.fitness.activity; import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.content.pm.PackageManager; import android.util.TypedValue; import androidx.annotation.StringRes; import androidx.core.app.ActivityCompat; import de.tadris.fitness.R; abstract public class FitoTrackActivity extends Activity { int getThemePrimaryColor() { final TypedValue value = new TypedValue (); getTheme().resolveAttribute (android.R.attr.colorPrimary, value, true); return value.data; } void showErrorDialog(Exception e, @StringRes int title, @StringRes int message) { new AlertDialog.Builder(this) .setTitle(title) .setMessage(getString(message) + "\n\n" + e.getMessage()) .setPositiveButton(R.string.okay, null) .create().show(); } protected void requestStoragePermissions() { if (!hasStoragePermission()) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 10); } } protected boolean hasStoragePermission() { return ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; } }