diff options
4 files changed, 67 insertions, 47 deletions
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 efc90dc..c268590 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java @@ -3,8 +3,6 @@ package org.fox.ttcomics2; import android.accounts.Account; import android.accounts.AccountManager; -import android.app.AlertDialog; -import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; @@ -171,34 +169,6 @@ public class CommonActivity extends AppCompatActivity { } } - public void resetProgress(final String fileName) { - - if (m_prefs.getBoolean("use_position_sync", false) && m_syncClient.hasOwner()) { - setLastPosition(fileName, 0); - setLastMaxPosition(fileName, 0); - - if (m_prefs.getBoolean("use_position_sync", false) && m_syncClient.hasOwner()) { - AlertDialog.Builder builder = new AlertDialog.Builder(CommonActivity.this); - builder.setMessage(R.string.reset_remove_synced_progress) - .setCancelable(true) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - m_syncClient.clearData(sha1(new File(fileName).getName())); - } - }) - .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - } - }); - AlertDialog alert = builder.create(); - alert.show(); - } - - } - - } - public void setLastPosition(String fileName, int position) { int lastPosition = getLastPosition(fileName); 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 8f700a0..9d986d0 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java @@ -279,11 +279,8 @@ public class MainActivity extends CommonActivity implements MaterialTabListener progressDialog.dismiss(); } - ComicListFragment frag = (ComicListFragment) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_LIST); + updateComicsList(); - if (frag != null && frag.isAdded()) { - frag.updateWithoutRescan(); - } } }; @@ -336,12 +333,7 @@ public class MainActivity extends CommonActivity implements MaterialTabListener m_syncClient.setPosition(sha1(new File(fileName).getName()), getLastPosition(fileName)); } - - ComicListFragment frag = (ComicListFragment) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_LIST); - - if (frag != null && frag.isAdded()) { - frag.updateWithoutRescan(); - } + updateComicsList(); } System.gc(); @@ -380,4 +372,47 @@ public class MainActivity extends CommonActivity implements MaterialTabListener public void onTabUnselected(MaterialTab materialTab) { } + + private void updateComicsList() { + ComicListFragment frag = (ComicListFragment) getSupportFragmentManager().findFragmentByTag(FRAG_COMICS_LIST); + + if (frag != null && frag.isAdded()) { + frag.updateWithoutRescan(); + } + } + + public void resetProgress(final String fileName) { + + if (m_prefs.getBoolean("use_position_sync", false) && m_syncClient.hasOwner()) { + setLastPosition(fileName, 0); + setLastMaxPosition(fileName, 0); + updateComicsList(); + + if (m_prefs.getBoolean("use_position_sync", false) && m_syncClient.hasOwner()) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage(R.string.reset_remove_synced_progress) + .setCancelable(true) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + m_syncClient.clearData(sha1(new File(fileName).getName()), new SyncClient.DataClearedListener() { + @Override + public void onDataCleared(boolean result) { + updateComicsList(); + } + }); + } + }) + .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + } + + } + } diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java index a3f16b5..ffbadc9 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java @@ -112,7 +112,7 @@ public class PreferencesFragment extends PreferenceFragment { } if (m_syncClient.hasOwner()) { - m_syncClient.clearData(); + m_syncClient.clearData(null); } } }) diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/SyncClient.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/SyncClient.java index 545dedf..267205a 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/SyncClient.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/SyncClient.java @@ -14,6 +14,10 @@ public class SyncClient { void onPositionReceived(int position); } + public interface DataClearedListener { + void onDataCleared(boolean result); + } + private class HttpTask extends AsyncTask<String, Integer, Boolean> { protected String m_response = null; protected int m_responseCode = -1; @@ -95,22 +99,33 @@ public class SyncClient { } } - public void clearData() { + public void clearData(final DataClearedListener listener) { if (m_owner != null) { Log.d(TAG, "Clearing sync data..."); - HttpTask task = new HttpTask(); + HttpTask task = new HttpTask() { + @Override + protected void onPostExecute(Boolean result) { + if (listener != null) listener.onDataCleared(result); + } + }; task.execute("clear"); } } - public void clearData(String hash) { + public void clearData(String hash, final DataClearedListener listener) { if (m_owner != null) { Log.d(TAG, "Clearing sync data: " + hash); - - HttpTask task = new HttpTask(); - + + HttpTask task = new HttpTask() { + @Override + protected void onPostExecute(Boolean result) { + if (listener != null) listener.onDataCleared(result); + } + }; + + task.execute("clear", hash); } } |