summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml4
-rw-r--r--res/values/strings.xml2
-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
7 files changed, 58 insertions, 9 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e72a99f..85678ef 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttcomics"
- android:versionCode="42"
- android:versionName="1.9" >
+ android:versionCode="43"
+ android:versionName="1.10" >
<uses-sdk
android:minSdkVersion="8"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7c8cdf2..c175732 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -60,4 +60,6 @@
<string name="prefs_comics_directory_summary">Base directory for comic archives.</string>
<string name="prefs_fit_to_width">Fit to width</string>
<string name="menu_donate">Donate</string>
+ <string name="sync_running_in_test_mode">Sync running in test mode.</string>
+ <string name="reset_remove_synced_progress">Would you like to remove synced progress too?</string>
</resources> \ No newline at end of file
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);