summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java')
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java71
1 files changed, 50 insertions, 21 deletions
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
index 6819500..409e06d 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
@@ -1,6 +1,7 @@
package org.fox.ttcomics2;
+import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
@@ -11,8 +12,11 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentTransaction;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import android.util.Log;
@@ -123,34 +127,59 @@ public class MainActivity extends CommonActivity implements MaterialTabListener,
if (m_selectedTab != -1)
tabHost.setSelectedNavigationItem(m_selectedTab);
- ActionBar actionBar = getSupportActionBar();
- //actionBar.setDisplayHomeAsUpEnabled(m_baseDirectory.length() > 0);
-
- if (m_prefs.getString("comics_directory", null) == null) {
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+
+ ActivityCompat.requestPermissions(this,
+ new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
+ REQUEST_PERMISSION_READ_EXTERNAL_STORAGE);
+
+ } else {
+ setupDefaultDirectory();
+ }
+ }
+
+ private void setupDefaultDirectory() {
+ if (m_prefs.getString("comics_directory", null) == null) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.dialog_need_prefs_message)
- .setCancelable(false)
- .setPositiveButton(R.string.dialog_need_prefs_preferences, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- Intent intent = new Intent(MainActivity.this,
- PreferencesActivity.class);
- startActivityForResult(intent, 0);
- }
- })
- .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
+ .setCancelable(false)
+ .setPositiveButton(R.string.dialog_need_prefs_preferences, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ Intent intent = new Intent(MainActivity.this,
+ PreferencesActivity.class);
+ startActivityForResult(intent, 0);
+ }
+ })
+ .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ }
+ });
AlertDialog alert = builder.create();
alert.show();
}
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode,
+ String permissions[], int[] grantResults) {
+ switch (requestCode) {
+ case REQUEST_PERMISSION_READ_EXTERNAL_STORAGE: {
+ // If request is cancelled, the result arrays are empty.
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+
+ // TODO workaround for android 6.0 bug, maybe needs to be removed in the future
- //if (m_baseDirectory.length() > 0) {
- //setTitle(new File(m_baseDirectory).getName());
- //}
+ android.os.Process.killProcess(android.os.Process.myPid());
- //((ViewGroup)findViewById(R.id.comics_list)).setLayoutTransition(new LayoutTransition());
+ } else {
+ toast("Storage permission denied, the app might not be able to access your comic archives.");
+ }
+
+ return;
+ }
+ }
}
@Override