Remove Utils

This commit is contained in:
Billy Brawner 2019-08-17 13:47:31 -05:00 committed by William Brawner
parent 2284c20ab3
commit ed2b65583e
3 changed files with 8 additions and 120 deletions

View file

@ -1,56 +0,0 @@
package com.wbrawner.simplemarkdown.utility;
import android.Manifest;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.HandlerThread;
import android.preference.PreferenceManager;
import androidx.core.content.ContextCompat;
import java.io.Closeable;
import java.io.IOException;
public class Utils {
public static final String KEY_AUTOSAVE = "autosave";
public static boolean isAutosaveEnabled(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(
KEY_AUTOSAVE,
true
);
}
public static void closeQuietly(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static boolean canAccessFiles(Context context) {
return ContextCompat.checkSelfPermission(
context,
Manifest.permission.WRITE_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED;
}
@SuppressWarnings("SameParameterValue")
public static Handler createSafeHandler(ErrorHandler errorHandler, String name) {
HandlerThread handlerThread = new HandlerThread(name);
handlerThread.start();
handlerThread.setUncaughtExceptionHandler((t, e) -> {
errorHandler.reportException(e);
t.interrupt();
});
return new Handler(handlerThread.getLooper());
}
}

View file

@ -7,6 +7,7 @@ import android.content.pm.PackageManager
import android.content.res.Configuration import android.content.res.Configuration
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.preference.PreferenceManager
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@ -16,11 +17,11 @@ import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.wbrawner.simplemarkdown.MarkdownApplication import com.wbrawner.simplemarkdown.MarkdownApplication
import com.wbrawner.simplemarkdown.R import com.wbrawner.simplemarkdown.R
import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter
import com.wbrawner.simplemarkdown.utility.ErrorHandler import com.wbrawner.simplemarkdown.utility.ErrorHandler
import com.wbrawner.simplemarkdown.utility.Utils
import com.wbrawner.simplemarkdown.view.adapter.EditPagerAdapter import com.wbrawner.simplemarkdown.view.adapter.EditPagerAdapter
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
@ -63,7 +64,9 @@ class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsRes
override fun onUserLeaveHint() { override fun onUserLeaveHint() {
super.onUserLeaveHint() super.onUserLeaveHint()
if (shouldAutoSave && presenter.markdown.isNotEmpty() && Utils.isAutosaveEnabled(this)) { val isAutoSaveEnabled = PreferenceManager.getDefaultSharedPreferences(this)
.getBoolean(KEY_AUTOSAVE, true)
if (shouldAutoSave && presenter.markdown.isNotEmpty() && isAutoSaveEnabled) {
launch { launch {
presenter.saveMarkdown("autosave.md", File(filesDir, "autosave.md").outputStream()) presenter.saveMarkdown("autosave.md", File(filesDir, "autosave.md").outputStream())
@ -235,8 +238,8 @@ class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsRes
} }
private fun requestFileOp(requestType: Int) { private fun requestFileOp(requestType: Int) {
if (!Utils.canAccessFiles(this@MainActivity)) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
if (Build.VERSION.SDK_INT < 23) return != PackageManager.PERMISSION_GRANTED && Build.VERSION.SDK_INT > 22) {
requestPermissions( requestPermissions(
arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
requestType requestType
@ -291,5 +294,6 @@ class MainActivity : AppCompatActivity(), ActivityCompat.OnRequestPermissionsRes
const val REQUEST_OPEN_FILE = 1 const val REQUEST_OPEN_FILE = 1
const val REQUEST_SAVE_FILE = 2 const val REQUEST_SAVE_FILE = 2
const val REQUEST_DARK_MODE = 4 const val REQUEST_DARK_MODE = 4
const val KEY_AUTOSAVE = "autosave"
} }
} }

View file

@ -1,60 +0,0 @@
package com.wbrawner.simplemarkdown;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.wbrawner.simplemarkdown.utility.Utils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.io.File;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
@SuppressWarnings("ResultOfMethodCallIgnored")
public class UtilsTest {
private Context context;
private SharedPreferences sharedPreferences;
private String rootDir;
@Before
public void setup() {
context = RuntimeEnvironment.application.getApplicationContext();
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
sharedPreferences.edit().clear().apply();
rootDir = System.getProperty("java.io.tmpdir") + "/SimpleMarkdown";
new File(rootDir).mkdir();
}
@After
public void tearDown() {
rmdir(new File(rootDir));
}
@Test
public void isAutosaveEnabled() throws Exception {
assertTrue(Utils.isAutosaveEnabled(context));
sharedPreferences.edit().putBoolean(Utils.KEY_AUTOSAVE, false).apply();
assertFalse(Utils.isAutosaveEnabled(context));
}
private void rmdir(File dir) {
for (File file : dir.listFiles()) {
if (file.isFile()) {
file.delete();
} else {
rmdir(file);
}
}
dir.delete();
}
}