Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

Commit

Permalink
try to merge duplicate chapters
Browse files Browse the repository at this point in the history
  • Loading branch information
zsakvo committed Dec 8, 2018
1 parent b5f61aa commit e44ce18
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 187 deletions.
150 changes: 19 additions & 131 deletions app/src/main/java/cc/zsakvo/yueduhchelper/BooksCacheFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,12 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getPreferenceManager().setSharedPreferencesMode(Context.MODE_PRIVATE);
setPreferencesFromResource(R.xml.books_cache,null);

autoMerge = cha.getSharedPreferences("settings",MODE_PRIVATE).getBoolean("cs_auto_merge",true);

}

private void getBooksCache(){
myCachePath = cha.getSharedPreferences("settings",MODE_PRIVATE).getString("cachePath",Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/com.gedoor.monkeybook/cache/book_cache/");
new SyncBooks(this).execute(myCachePath);
new SyncBooks(this,autoMerge).execute(myCachePath);
}


Expand All @@ -75,7 +74,7 @@ private void writeFile(String content,String bookName){

@SuppressWarnings("ConstantConditions")
@Override
public void showBooks(List<String> list,Map<String, String> bsm,Map<String, Integer> bcm,Map<String, Integer> bsnm) {
public void showBooks(List<String> list,Map<String, String> bsm,Map<String, Integer> bcm,Map<String, Integer> bsnm,int validNum) {
PreferenceScreen p = getPreferenceScreen();
p.removeAll();
PreferenceCategory preferenceCategory = new PreferenceCategory(cha);
Expand All @@ -85,19 +84,11 @@ public void showBooks(List<String> list,Map<String, String> bsm,Map<String, Inte
p.addPreference(preferenceCategory);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(cha);
alertDialogBuilder.setTitle("提示")
.setPositiveButton("去设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(cha,SettingsActivity.class));
dialog.dismiss();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
.setPositiveButton("去设置", (dialog, which) -> {
startActivity(new Intent(cha,SettingsActivity.class));
dialog.dismiss();
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.setMessage("没有扫描到已缓存内容,是否需要自行去设置缓存路径?")
.setCancelable(false)
.create()
Expand All @@ -108,131 +99,27 @@ public void onClick(DialogInterface dialog, int which) {
p.addPreference(preferenceCategory);
for (String name : list) {
SimpleMenuPreference simpleMenuPreference = new SimpleMenuPreference(cha);
simpleMenuPreference.setTitle(name);
simpleMenuPreference.setEntries(new CharSequence[]{"导出为TXT","导出为Epub"});
simpleMenuPreference.setEntryValues(new CharSequence[]{"0","1"});
simpleMenuPreference.setSummary("总来源数目:"+bsnm.get(name)+"\n"+"总缓存章节数目:"+bcm.get(name));
simpleMenuPreference.setKey(name+"-"+bsm.get(name));
if (autoMerge){
simpleMenuPreference.setTitle(name);
simpleMenuPreference.setSummary("总来源数目:"+bsnm.get(name)+"\n"+"总章节数:"+bcm.get(name)+"\n有效章节数:"+validNum);
simpleMenuPreference.setKey(name+"-"+bsm.get(name));
}else {
simpleMenuPreference.setKey(name);
String source = name.split("-")[1];
simpleMenuPreference.setSummary("总章节数:"+bcm.get(name)+"\n来源:"+source);
name = name.split("-")[0];
simpleMenuPreference.setTitle(name);
}
simpleMenuPreference.setOnPreferenceClickListener(this);
simpleMenuPreference.setOnPreferenceChangeListener(this);
p.addPreference(simpleMenuPreference);
}



// preferenceCategory.setTitle("扫描到的书籍");
// p.addPreference(preferenceCategory);
// for (String key : map.keySet()) {
// Log.e(TAG, "showBooks: "+key );
// if (!key.contains("-")) continue;
// String[] ba = key.split("-");
//
// SimpleMenuPreference simpleMenuPreference = new SimpleMenuPreference(cha);
//
// simpleMenuPreference.setTitle(ba[0]);
// simpleMenuPreference.setEntries(new CharSequence[]{"导出为TXT"});
// simpleMenuPreference.setEntryValues(new CharSequence[]{"0"});
// simpleMenuPreference.setSummary("来源:"+ba[1]+"\n"+"缓存章节:"+map.get(key));
// simpleMenuPreference.setKey(key);
// simpleMenuPreference.setOnPreferenceClickListener(this);
// simpleMenuPreference.setOnPreferenceChangeListener(this);
// p.addPreference(simpleMenuPreference);
//
// }
}
}


// @SuppressWarnings("ConstantConditions")
// @Override
// public void showBooks( Map<String, Integer> map) {
// PreferenceScreen p = getPreferenceScreen();
// p.removeAll();
// PreferenceCategory preferenceCategory = new PreferenceCategory(cha);
//
// if (map== null||map.isEmpty()){
// preferenceCategory.setTitle("未扫描到书籍缓存");
// p.addPreference(preferenceCategory);
// AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(cha);
// alertDialogBuilder.setTitle("提示")
// .setPositiveButton("去设置", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// startActivity(new Intent(cha,SettingsActivity.class));
// dialog.dismiss();
// }
// })
// .setNegativeButton("取消", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// dialog.dismiss();
// }
// })
// .setMessage("没有扫描到已缓存内容,是否需要自行去设置缓存路径?")
// .setCancelable(false)
// .create()
// .show();
// Log.e(TAG, "showBooks: "+"null !" );
// }else {
// books = new ArrayList<>();
// bookMaps = new HashMap<String, String>();
// bookChaptersMaps = new HashMap<String, Integer>();
// for (String key : map.keySet()) {
// if (!key.contains("-")) continue;
// String[] ba = key.split("-");
// if (!bookMaps.keySet().contains(ba[0])) {
// books.add(ba[0]);
// bookMaps.put(ba[0],ba[1]);
// bookChaptersMaps.put(ba[0],map.get(key));
// }else {
// bookMaps.put(ba[0],bookMaps.get(ba[0])+","+ba[1]);
// bookChaptersMaps.put(ba[0],bookChaptersMaps.get(ba[0])+map.get(key));
// }
// }
//
//
// preferenceCategory.setTitle("扫描到的书籍");
// p.addPreference(preferenceCategory);
// for (String key : bookMaps.keySet()) {
// Log.e(TAG, "showBooks: "+key );
//
// SimpleMenuPreference simpleMenuPreference = new SimpleMenuPreference(cha);
// key = key.split("-")[0];
// simpleMenuPreference.setTitle(key);
// simpleMenuPreference.setEntries(new CharSequence[]{"导出为TXT","导出为Epub"});
// simpleMenuPreference.setEntryValues(new CharSequence[]{"0","1"});
// simpleMenuPreference.setSummary("来源:"+bookMaps.get(key)+"\n"+"缓存章节:"+bookChaptersMaps.get(key));
// simpleMenuPreference.setKey(key);
// simpleMenuPreference.setOnPreferenceClickListener(this);
// simpleMenuPreference.setOnPreferenceChangeListener(this);
// p.addPreference(simpleMenuPreference);
//
// }
//
//
//
//// preferenceCategory.setTitle("扫描到的书籍");
//// p.addPreference(preferenceCategory);
//// for (String key : map.keySet()) {
//// Log.e(TAG, "showBooks: "+key );
//// if (!key.contains("-")) continue;
//// String[] ba = key.split("-");
////
//// SimpleMenuPreference simpleMenuPreference = new SimpleMenuPreference(cha);
////
//// simpleMenuPreference.setTitle(ba[0]);
//// simpleMenuPreference.setEntries(new CharSequence[]{"导出为TXT"});
//// simpleMenuPreference.setEntryValues(new CharSequence[]{"0"});
//// simpleMenuPreference.setSummary("来源:"+ba[1]+"\n"+"缓存章节:"+map.get(key));
//// simpleMenuPreference.setKey(key);
//// simpleMenuPreference.setOnPreferenceClickListener(this);
//// simpleMenuPreference.setOnPreferenceChangeListener(this);
//// p.addPreference(simpleMenuPreference);
////
//// }
// }
// }

private String cleanSource(String s){
s = s.replaceAll(".+dstiejuan.+","丹书铁券");
return s;
Expand All @@ -241,6 +128,8 @@ private String cleanSource(String s){
@Override
public void onStart(){
super.onStart();
getPreferenceScreen().removeAll();
autoMerge = cha.getSharedPreferences("settings",MODE_PRIVATE).getBoolean("cs_auto_merge",true);
getBooksCache();
}

Expand All @@ -258,7 +147,6 @@ public void readCache(String content) {
@Override
public void writeFileResult(Boolean b) {
progressDialog.dismiss();
Snackbar snackbar;
if (b){
cha.showSnackBar("导出成功!");
}else {
Expand Down
38 changes: 14 additions & 24 deletions app/src/main/java/cc/zsakvo/yueduhchelper/TextExportActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import android.os.Environment;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
Expand Down Expand Up @@ -61,12 +62,12 @@ protected void onCreate(Bundle savedInstanceState) {
}else {
StatusBarUtil.setColor(this,Color.parseColor("#ffffff"));
}
toolbar = (Toolbar)findViewById(R.id.export_toolbar);
toolbar = findViewById(R.id.export_toolbar);
toolbar.setTitle("导出TXT");
toolbar.setTitleTextColor(getResources().getColor(R.color.colorAccent));
setSupportActionBar(toolbar);

coordinatorLayout = (CoordinatorLayout)findViewById(R.id.export_coordinatorLayout);
coordinatorLayout = findViewById(R.id.export_coordinatorLayout);

if(getSupportActionBar() != null) {
@SuppressLint("PrivateResource") Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_material);
Expand All @@ -75,12 +76,7 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setHomeAsUpIndicator(upArrow);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
toolbar.setNavigationOnClickListener(v -> finish());

Intent intent = getIntent();
bookName = intent.getStringExtra("bn");
Expand All @@ -103,7 +99,7 @@ public List<String> getBookInfo(){
cacheFilePath.add(cachePath + "/" + bookName + "-" + s + "/");
}
}else {
cacheFilePath.add(bookSource);
cacheFilePath.add(cachePath + "/" + bookName + "-" + bookSource + "/");
}
return cacheFilePath;
}
Expand All @@ -130,23 +126,17 @@ private void showChooseChaptersDialog(){
editDialog.setView(layout);

editDialog.setPositiveButton(getString(R.string.choose_ok)
, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String[] strs = edit.getText().toString().split("-");
int a = Integer.parseInt(strs[0]);
int b = Integer.parseInt(strs[1]);
fragment.chooseChapters(a,b);
dialog.dismiss();
}
, (dialog, which) -> {
String[] strs = edit.getText().toString().split("-");
int a = Integer.parseInt(strs[0]);
int b = Integer.parseInt(strs[1]);
fragment.chooseChapters(a,b);
dialog.dismiss();
})
.setNegativeButton(getString(R.string.cancel),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
edit.getText().clear();
dialog.dismiss();
}
(dialog, which) -> {
edit.getText().clear();
dialog.dismiss();
});

editDialog.setCancelable(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
import java.util.Map;

public interface SyncBooksListener {
void showBooks(List<String> list,Map<String, String> bsm,Map<String, Integer> bcm,Map<String, Integer> bsnm);
void showBooks(List<String> list,Map<String, String> bsm,Map<String, Integer> bcm,Map<String, Integer> bsnm,int validNum);
}
Loading

0 comments on commit e44ce18

Please sign in to comment.