summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-08-09 13:41:06 +0300
committerAndrew Dolgov <[email protected]>2018-08-09 13:41:06 +0300
commitecebb802ed63c3540ed2bdb0c903e49dabca73ff (patch)
tree1faacd7c7a9101e14b0c81e1b47db366bac4872c /org.fox.ttcomics
parent15bbd93dc520e5e94d0ef395be931e1bab933530 (diff)
switch to a somewhat better looking directory picker
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-xorg.fox.ttcomics/build.gradle3
-rwxr-xr-xorg.fox.ttcomics/org.fox.ttcomics.iml2
-rwxr-xr-xorg.fox.ttcomics/src/main/AndroidManifest.xml4
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java1
-rw-r--r--org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DirectoryPicker.java173
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java27
6 files changed, 25 insertions, 185 deletions
diff --git a/org.fox.ttcomics/build.gradle b/org.fox.ttcomics/build.gradle
index 3ebac38..1964a81 100755
--- a/org.fox.ttcomics/build.gradle
+++ b/org.fox.ttcomics/build.gradle
@@ -64,5 +64,6 @@ dependencies {
compile 'com.google.android.gms:play-services-base:15.0.1'
compile 'com.google.android.gms:play-services-auth:15.0.1'
compile files('libs/nineoldandroids-2.4.0.jar')
-
+ compile 'com.gu:option:1.3'
+ compile 'net.rdrei.android.dirchooser:library:3.2@aar'
}
diff --git a/org.fox.ttcomics/org.fox.ttcomics.iml b/org.fox.ttcomics/org.fox.ttcomics.iml
index 37296f1..30bfbe0 100755
--- a/org.fox.ttcomics/org.fox.ttcomics.iml
+++ b/org.fox.ttcomics/org.fox.ttcomics.iml
@@ -142,6 +142,7 @@
<orderEntry type="library" name="com.google.android.gms:play-services-basement-15.0.1" level="project" />
<orderEntry type="library" name="com.android.support:support-vector-drawable-27.1.0" level="project" />
<orderEntry type="library" name="android.arch.lifecycle:runtime-1.1.0" level="project" />
+ <orderEntry type="library" name="net.rdrei.android.dirchooser:library-3.2" level="project" />
<orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\nineoldandroids-2.4.0.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="android.arch.lifecycle:common:1.1.0@jar" level="project" />
<orderEntry type="library" name="com.android.support:cardview-v7-27.1.0" level="project" />
@@ -153,6 +154,7 @@
<orderEntry type="library" name="com.github.livefront:bridge-v1.1.2" level="project" />
<orderEntry type="library" name="com.google.auto:auto-common:0.3@jar" level="project" />
<orderEntry type="library" name="android.arch.lifecycle:livedata-core-1.1.0" level="project" />
+ <orderEntry type="library" name="com.gu:option:1.3@jar" level="project" />
<orderEntry type="library" name="com.android.support:support-media-compat-27.1.0" level="project" />
<orderEntry type="library" name="com.google.android.gms:play-services-auth-15.0.1" level="project" />
<orderEntry type="library" name="com.android.support:support-fragment-27.1.0" level="project" />
diff --git a/org.fox.ttcomics/src/main/AndroidManifest.xml b/org.fox.ttcomics/src/main/AndroidManifest.xml
index 3905efa..75e306e 100755
--- a/org.fox.ttcomics/src/main/AndroidManifest.xml
+++ b/org.fox.ttcomics/src/main/AndroidManifest.xml
@@ -49,9 +49,7 @@
</activity>
<activity
- android:theme="@style/AppTheme"
- android:name=".DirectoryPicker"
- android:label="@string/title_activity_main">
+ android:name="net.rdrei.android.dirchooser.DirectoryChooserActivity">
</activity>
<activity android:name="org.acra.CrashReportDialog"
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
index 10bef08..f4bbcd8 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
@@ -33,6 +33,7 @@ public class CommonActivity extends AppCompatActivity {
protected static final int REQUEST_VIEWCOMIC = 2;
protected static final int REQUEST_PERMISSIONS_RESULT = 3;
protected static final int REQUEST_SYNC_ACCOUNT = 4;
+ protected static final int REQUEST_PICK_DIRECTORY = 5;
public static final String PRIVACY_POLICY_URL = "https://git.tt-rss.org/fox/tt-comics/wiki/PrivacyPolicy";
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DirectoryPicker.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DirectoryPicker.java
deleted file mode 100644
index 30509d4..0000000
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/DirectoryPicker.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package org.fox.ttcomics2;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Environment;
-import android.support.v7.widget.Toolbar;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.Toast;
-
-import org.fox.ttcomics2.utils.CompatListActivity;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
-Copyright (C) 2011 by Brad Greco <[email protected]>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
- */
-
-public class DirectoryPicker extends CompatListActivity {
-
- public static final String START_DIR = "startDir";
- public static final String ONLY_DIRS = "onlyDirs";
- public static final String SHOW_HIDDEN = "showHidden";
- public static final String CHOSEN_DIRECTORY = "chosenDir";
- public static final int PICK_DIRECTORY = 128;
- private File dir;
- private boolean showHidden = false;
- private boolean onlyDirs = true ;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Bundle extras = getIntent().getExtras();
- dir = Environment.getExternalStorageDirectory();
- if (extras != null) {
- String preferredStartDir = extras.getString(START_DIR);
- showHidden = extras.getBoolean(SHOW_HIDDEN, false);
- onlyDirs = extras.getBoolean(ONLY_DIRS, true);
- if(preferredStartDir != null) {
- File startDir = new File(preferredStartDir);
- if(startDir.isDirectory()) {
- dir = startDir;
- }
- }
- }
-
- setContentView(R.layout.activity_directory_picker);
- setSupportActionBar((Toolbar)findViewById(R.id.toolbar));
-
- setTitle(dir.getAbsolutePath());
- Button btnChoose = (Button) findViewById(R.id.btnChoose);
- String name = dir.getName();
- if(name.length() == 0)
- name = "/";
- btnChoose.setText(getString(R.string.picker_choose, name));
- btnChoose.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- returnDir(dir.getAbsolutePath());
- }
- });
-
- Button btnParent = (Button) findViewById(R.id.btnParent);
- btnParent.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- Intent intent = new Intent(DirectoryPicker.this, DirectoryPicker.class);
- intent.putExtra(DirectoryPicker.START_DIR, dir.getParent());
- intent.putExtra(DirectoryPicker.SHOW_HIDDEN, showHidden);
- intent.putExtra(DirectoryPicker.ONLY_DIRS, onlyDirs);
- startActivityForResult(intent, PICK_DIRECTORY);
- }
- });
-
- if (dir.getParent() == null) {
- btnParent.setVisibility(View.GONE);
- }
-
- ListView lv = getListView();
- lv.setTextFilterEnabled(true);
-
- if(!dir.canRead()) {
- Context context = getApplicationContext();
- String msg = getString(R.string.error_could_not_read_folder_contents_);
- Toast toast = Toast.makeText(context, msg, Toast.LENGTH_LONG);
- toast.show();
- return;
- }
-
- final ArrayList<File> files = filter(dir.listFiles(), onlyDirs, showHidden);
- String[] names = names(files);
- setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names));
-
-
- lv.setOnItemClickListener(new OnItemClickListener() {
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- if(!files.get(position).isDirectory())
- return;
- String path = files.get(position).getAbsolutePath();
- Intent intent = new Intent(DirectoryPicker.this, DirectoryPicker.class);
- intent.putExtra(DirectoryPicker.START_DIR, path);
- intent.putExtra(DirectoryPicker.SHOW_HIDDEN, showHidden);
- intent.putExtra(DirectoryPicker.ONLY_DIRS, onlyDirs);
- startActivityForResult(intent, PICK_DIRECTORY);
- }
- });
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
- Bundle extras = data.getExtras();
- String path = (String) extras.get(DirectoryPicker.CHOSEN_DIRECTORY);
- returnDir(path);
- }
- }
-
- private void returnDir(String path) {
- Intent result = new Intent();
- result.putExtra(CHOSEN_DIRECTORY, path);
- setResult(RESULT_OK, result);
- finish();
- }
-
- public ArrayList<File> filter(File[] file_list, boolean onlyDirs, boolean showHidden) {
- ArrayList<File> files = new ArrayList<File>();
-
- for(File file: file_list) {
- if(onlyDirs && !file.isDirectory())
- continue;
- if(!showHidden && file.isHidden())
- continue;
- files.add(file);
- }
- Collections.sort(files);
-
- return files;
- }
-
- public String[] names(ArrayList<File> files) {
- String[] names = new String[files.size()];
- int i = 0;
- for(File file: files) {
- names[i] = file.getName();
- i++;
- }
- return names;
- }
-}
-
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java
index 746c54b..9b474e4 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java
@@ -8,8 +8,12 @@ import android.preference.PreferenceManager;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
+import net.rdrei.android.dirchooser.DirectoryChooserActivity;
+import net.rdrei.android.dirchooser.DirectoryChooserConfig;
+
public class PreferencesActivity extends CommonActivity {
- @Override
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
// we use that before parent onCreate so let's init locally
m_prefs = PreferenceManager
@@ -42,9 +46,9 @@ public class PreferencesActivity extends CommonActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == DirectoryPicker.PICK_DIRECTORY && resultCode == RESULT_OK) {
- Bundle extras = data.getExtras();
- String path = (String) extras.get(DirectoryPicker.CHOSEN_DIRECTORY);
+ if (requestCode == REQUEST_PICK_DIRECTORY && resultCode == DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED) {
+
+ String path = data.getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR);
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
@@ -58,14 +62,21 @@ public class PreferencesActivity extends CommonActivity {
}
public void startPicker() {
- Intent intent = new Intent(PreferencesActivity.this, DirectoryPicker.class);
+ Intent intent = new Intent(PreferencesActivity.this, DirectoryChooserActivity.class);
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
- intent.putExtra(DirectoryPicker.START_DIR, prefs.getString("comics_directory",
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()));
+ String initialDir = prefs.getString("comics_directory",
+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
+
+ intent.putExtra(DirectoryChooserActivity.EXTRA_CONFIG, DirectoryChooserConfig.builder()
+ .newDirectoryName("Comics")
+ .allowNewDirectoryNameModification(true)
+ .allowReadOnlyDirectory(true)
+ .initialDirectory(initialDir)
+ .build());
- startActivityForResult(intent, DirectoryPicker.PICK_DIRECTORY);
+ startActivityForResult(intent, REQUEST_PICK_DIRECTORY);
}
}