summaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-11-29 15:33:34 +0400
committerAndrew Dolgov <[email protected]>2013-11-29 15:33:34 +0400
commit7295e711b31d41d463a12a56bed6eba8a3000bba (patch)
tree3f296858cca6113e226d0231bcd270aa80542677 /src/org
parent479f926b47589a878a671959aa78af5fcf7d4a67 (diff)
add ability to selectively clear file reading progress
properly detect avd
Diffstat (limited to 'src/org')
-rw-r--r--src/org/fox/ttcomics/ComicListFragment.java7
-rw-r--r--src/org/fox/ttcomics/CommonActivity.java32
-rw-r--r--src/org/fox/ttcomics/PreferencesActivity.java2
-rw-r--r--src/org/fox/ttcomics/SyncClient.java18
-rw-r--r--src/org/fox/ttcomics/ViewComicActivity.java2
5 files changed, 54 insertions, 7 deletions
diff --git a/src/org/fox/ttcomics/ComicListFragment.java b/src/org/fox/ttcomics/ComicListFragment.java
index 6d01a42..be9a6c6 100644
--- a/src/org/fox/ttcomics/ComicListFragment.java
+++ b/src/org/fox/ttcomics/ComicListFragment.java
@@ -6,7 +6,9 @@ import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
+import android.app.AlertDialog;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.SQLException;
@@ -276,9 +278,8 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
switch (item.getItemId()) {
case R.id.menu_reset_progress:
if (fileName != null) {
- m_activity.setLastPosition(fileName, 0);
- m_activity.setLastMaxPosition(fileName, 0);
- m_adapter.notifyDataSetChanged();
+ m_activity.resetProgress(fileName);
+ m_adapter.notifyDataSetChanged();
}
return true;
case R.id.menu_mark_as_read:
diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java
index 92ceba2..9892ef5 100644
--- a/src/org/fox/ttcomics/CommonActivity.java
+++ b/src/org/fox/ttcomics/CommonActivity.java
@@ -8,7 +8,9 @@ import java.util.Date;
import android.accounts.Account;
import android.accounts.AccountManager;
+import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
@@ -88,8 +90,10 @@ public class CommonActivity extends SherlockFragmentActivity {
if (googleAccount != null) {
m_syncClient.setOwner(googleAccount);
} else {
- if (Build.FINGERPRINT.startsWith("generic")) {
+ if (Build.HARDWARE.contains("goldfish")) {
m_syncClient.setOwner("TEST-ACCOUNT");
+
+ //toast(R.string.sync_running_in_test_mode);
} else {
m_syncClient.setOwner(null);
toast(R.string.error_sync_no_account);
@@ -188,6 +192,32 @@ public class CommonActivity extends SherlockFragmentActivity {
}
}
+ public void resetProgress(final String fileName) {
+
+ if (m_prefs.getBoolean("use_position_sync", false) && m_syncClient.hasOwner()) {
+ setLastPosition(fileName, 0);
+ setLastMaxPosition(fileName, 0);
+
+ 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/src/org/fox/ttcomics/PreferencesActivity.java b/src/org/fox/ttcomics/PreferencesActivity.java
index 0c4b0ab..7aa24a5 100644
--- a/src/org/fox/ttcomics/PreferencesActivity.java
+++ b/src/org/fox/ttcomics/PreferencesActivity.java
@@ -62,7 +62,7 @@ public class PreferencesActivity extends PreferenceActivity {
if (googleAccount != null) {
m_syncClient.setOwner(googleAccount);
} else {
- if (Build.FINGERPRINT.startsWith("generic")) {
+ if (Build.HARDWARE.equals("goldfish")) {
m_syncClient.setOwner("TEST-ACCOUNT");
} else {
m_syncClient.setOwner(null);
diff --git a/src/org/fox/ttcomics/SyncClient.java b/src/org/fox/ttcomics/SyncClient.java
index ce69abb..f67d01b 100644
--- a/src/org/fox/ttcomics/SyncClient.java
+++ b/src/org/fox/ttcomics/SyncClient.java
@@ -28,9 +28,15 @@ public class SyncClient {
} else if (op.equals("get")) {
requestStr = String.format("op=get&owner=%1$s&hash=%2$s", m_owner, params[1]);
} else if (op.equals("clear")) {
- requestStr = String.format("op=clear&owner=%1$s", m_owner);
+ if (params.length > 1) {
+ requestStr = String.format("op=clear&owner=%1$s&hash=%2$s", m_owner, params[1]);
+ } else {
+ requestStr = String.format("op=clear&owner=%1$s", m_owner);
+ }
}
+ Log.d(TAG, requestStr);
+
if (requestStr == null) return false;
try {
@@ -136,6 +142,16 @@ public class SyncClient {
}
}
+ public void clearData(String hash) {
+ if (m_owner != null) {
+ Log.d(TAG, "Clearing sync data: " + hash);
+
+ HttpTask task = new HttpTask();
+
+ task.execute("clear", hash);
+ }
+ }
+
public boolean hasOwner() {
return m_owner != null;
}
diff --git a/src/org/fox/ttcomics/ViewComicActivity.java b/src/org/fox/ttcomics/ViewComicActivity.java
index c8b1999..9a9ce89 100644
--- a/src/org/fox/ttcomics/ViewComicActivity.java
+++ b/src/org/fox/ttcomics/ViewComicActivity.java
@@ -211,7 +211,7 @@ public class ViewComicActivity extends CommonActivity {
if (position > localPosition) {
AlertDialog.Builder builder = new AlertDialog.Builder(ViewComicActivity.this);
builder.setMessage(getString(R.string.sync_server_has_further_page, localPosition+1, position+1))
- .setCancelable(false)
+ .setCancelable(true)
.setPositiveButton(R.string.dialog_open_page, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
pager.setCurrentItem(position);