summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-07-10 20:23:43 +0300
committerAndrew Dolgov <[email protected]>2018-07-10 20:23:43 +0300
commitfba218594b8d97a68a0f7ed75b6d0cf9e3bd6dc3 (patch)
treea7c8410f14b79a063e80e9bca5f33ea7db793002 /org.fox.ttcomics
parentf5fb25d8f5414643a9fc934623f061ffd6a94c3a (diff)
various sync/preferences fixes
remove deprecated GET_ACCOUNT stuff
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-xorg.fox.ttcomics/build.gradle4
-rwxr-xr-xorg.fox.ttcomics/org.fox.ttcomics.iml9
-rwxr-xr-xorg.fox.ttcomics/src/main/AndroidManifest.xml1
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java75
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java22
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesActivity.java7
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java78
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java5
-rwxr-xr-xorg.fox.ttcomics/src/main/res/values/strings.xml4
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/res/xml/preferences.xml6
10 files changed, 97 insertions, 114 deletions
diff --git a/org.fox.ttcomics/build.gradle b/org.fox.ttcomics/build.gradle
index c39ee27..29745a8 100755
--- a/org.fox.ttcomics/build.gradle
+++ b/org.fox.ttcomics/build.gradle
@@ -6,6 +6,7 @@ android {
defaultConfig {
applicationId "org.fox.ttcomics2"
+ buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
minSdkVersion 19
targetSdkVersion 27
}
@@ -49,6 +50,7 @@ dependencies {
compile 'com.android.support:support-v4:27.1.0'
compile 'com.android.support:appcompat-v7:27.1.0'
compile 'com.android.support:cardview-v7:27.1.0'
+ compile 'com.android.support:design:27.1.0'
compile 'com.shamanland:fab:0.0.8'
compile 'jp.co.recruit_mp:android-HeaderFooterGridView:0.2.4'
compile files('libs/universal-image-loader-1.9.3.jar')
@@ -59,6 +61,8 @@ dependencies {
provided 'frankiesardo:icepick-processor:3.2.0'
compile 'com.github.livefront:bridge:v1.1.1'
annotationProcessor 'frankiesardo:icepick-processor:3.2.0'
+ 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')
}
diff --git a/org.fox.ttcomics/org.fox.ttcomics.iml b/org.fox.ttcomics/org.fox.ttcomics.iml
index 33c9ad2..2a5a171 100755
--- a/org.fox.ttcomics/org.fox.ttcomics.iml
+++ b/org.fox.ttcomics/org.fox.ttcomics.iml
@@ -119,25 +119,33 @@
<orderEntry type="library" name="frankiesardo:icepick:3.2.0@jar" level="project" />
<orderEntry type="library" name="com.android.support:appcompat-v7-27.1.0" level="project" />
<orderEntry type="library" name="jp.co.recruit_mp:android-HeaderFooterGridView-0.2.4" level="project" />
+ <orderEntry type="library" name="com.android.support:design-27.1.0" level="project" />
+ <orderEntry type="library" name="com.google.android.gms:play-services-base-15.0.1" level="project" />
<orderEntry type="library" name="frankiesardo:icepick-processor:3.2.0@jar" level="project" />
+ <orderEntry type="library" name="com.android.support:transition-27.1.0" level="project" />
<orderEntry type="library" name="com.android.support:support-core-utils-27.1.0" level="project" />
<orderEntry type="library" name="android.arch.core:common:1.1.0@jar" level="project" />
<orderEntry type="library" name="ch.acra:acra-4.9.1" level="project" />
<orderEntry type="library" name="com.android.support:support-annotations:27.1.0@jar" level="project" />
<orderEntry type="library" name="scout:scout:0.1.0@jar" level="project" />
<orderEntry type="library" name="com.ToxicBakery.viewpager.transforms:view-pager-transforms-1.2.32" level="project" />
+ <orderEntry type="library" name="com.android.support:recyclerview-v7-27.1.0" level="project" />
<orderEntry type="library" name="org.clojure:clojure:1.7.0@jar" level="project" />
<orderEntry type="library" name="com.google.auto.service:auto-service:1.0-rc2@jar" level="project" />
<orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\universal-image-loader-1.9.3.jar:unspecified@jar" level="project" />
+ <orderEntry type="library" name="com.google.android.gms:play-services-auth-base-15.0.1" level="project" />
+ <orderEntry type="library" name="com.google.android.gms:play-services-auth-api-phone-15.0.1" level="project" />
<orderEntry type="library" name="stencil:stencil:0.3.5@jar" level="project" />
<orderEntry type="library" name="com.google.guava:guava:18.0@jar" level="project" />
<orderEntry type="library" name="org.clojure:core.cache:0.6.3@jar" level="project" />
<orderEntry type="library" name="com.nhaarman.listviewanimations:lib-core-3.1.0" level="project" />
+ <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="__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" />
+ <orderEntry type="library" name="com.google.android.gms:play-services-tasks-15.0.1" level="project" />
<orderEntry type="library" name="com.android.support:support-compat-27.1.0" level="project" />
<orderEntry type="library" name="slingshot:slingshot:0.10.3@jar" level="project" />
<orderEntry type="library" name="android.arch.lifecycle:viewmodel-1.1.0" level="project" />
@@ -146,6 +154,7 @@
<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.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" />
<orderEntry type="library" name="com.shamanland:fab-0.0.8" level="project" />
<orderEntry type="library" name="com.android.support:support-v4-27.1.0" level="project" />
diff --git a/org.fox.ttcomics/src/main/AndroidManifest.xml b/org.fox.ttcomics/src/main/AndroidManifest.xml
index 9c46499..6006840 100755
--- a/org.fox.ttcomics/src/main/AndroidManifest.xml
+++ b/org.fox.ttcomics/src/main/AndroidManifest.xml
@@ -4,7 +4,6 @@
android:versionName="1.34" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<application
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 2a867ae..7db1753 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
@@ -1,18 +1,17 @@
package org.fox.ttcomics2;
-import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
-import android.widget.Toast;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
@@ -35,6 +34,7 @@ public class CommonActivity extends AppCompatActivity {
protected final static int REQUEST_SHARE = 1;
protected static final int REQUEST_VIEWCOMIC = 2;
protected static final int REQUEST_PERMISSIONS_RESULT = 3;
+ protected static final int REQUEST_SYNC_ACCOUNT = 4;
public static final String PRIVACY_POLICY_URL = "https://tt-rss.org/gitlab/fox/tt-comics/wikis/PrivacyPolicy";
@@ -81,27 +81,24 @@ public class CommonActivity extends AppCompatActivity {
}
protected void initSyncClient() {
- Log.d(TAG, "initSynClient");
+ Log.d(TAG, "initSyncClient");
if (isSyncEnabled()) {
- String googleAccount = getGoogleAccount(this);
+ String syncAccount = getSyncAccount(this);
- if (googleAccount != null) {
- m_syncClient.setOwner(googleAccount);
+ Log.d(TAG, "sync account=" + syncAccount);
+
+ if (syncAccount != null) {
+ m_syncClient.setOwner(syncAccount);
} else {
if (BuildConfig.DEBUG) {
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);
-
- SharedPreferences.Editor editor = m_prefs.edit();
- editor.putBoolean("use_position_sync", false);
- editor.apply();
}
+
+ toast(R.string.error_sync_no_account);
}
} else {
@@ -109,6 +106,21 @@ public class CommonActivity extends AppCompatActivity {
}
}
+ @Override
+ protected void onActivityResult(final int requestCode, final int resultCode,
+ final Intent data) {
+
+ Log.d(TAG, "RQ=" + requestCode);
+
+ if (requestCode == REQUEST_SYNC_ACCOUNT && resultCode == RESULT_OK) {
+ String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
+
+ SharedPreferences.Editor editor = m_prefs.edit();
+ editor.putString("sync_account", accountName);
+ editor.apply();
+ }
+ }
+
public void onComicArchiveSelected(String fileName) {
//
}
@@ -117,7 +129,8 @@ public class CommonActivity extends AppCompatActivity {
public void onComicSelected(String fileName, int position) {
m_databaseHelper.setLastPosition(fileName, position);
}
-
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_settings:
@@ -182,34 +195,24 @@ public class CommonActivity extends AppCompatActivity {
return file.getAbsolutePath();
}
- public static String getGoogleAccount(Context ctx) {
- AccountManager manager = (AccountManager) ctx.getSystemService(ACCOUNT_SERVICE);
- Account[] list = manager.getAccounts();
-
- for (Account account: list) {
- if (account.type.equalsIgnoreCase("com.google")) {
- return account.name;
- }
- }
- return null;
+ public static String getSyncAccount(Context ctx) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
+ return prefs.getString("sync_account", null);
}
public void toast(int msgId) {
- try {
- Toast toast = Toast.makeText(CommonActivity.this, msgId, Toast.LENGTH_SHORT);
- toast.show();
- } catch (RuntimeException e) {
- // might happen if UI lags
- }
+ toast(getString(msgId));
}
public void toast(String msg) {
- try {
- Toast toast = Toast.makeText(CommonActivity.this, msg, Toast.LENGTH_SHORT);
- toast.show();
- } catch (RuntimeException e) {
- // might happen if UI lags
- }
+ Snackbar.make(findViewById(android.R.id.content), msg, Snackbar.LENGTH_LONG)
+ .setAction(R.string.dialog_close, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ }
+ })
+ .show();
}
public void cleanupCache() {
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 cc1f3c2..6a19b63 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java
@@ -144,15 +144,7 @@ public class MainActivity extends CommonActivity implements SharedPreferences.On
}
}
- String[] permissions;
-
- if (isSyncEnabled()) {
- permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.GET_ACCOUNTS};
- } else {
- permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE};
- }
-
- String[] needPermissions = checkPermissions(permissions);
+ String[] needPermissions = checkPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE});
if (needPermissions.length > 0) {
ActivityCompat.requestPermissions(this,
@@ -201,18 +193,6 @@ public class MainActivity extends CommonActivity implements SharedPreferences.On
toast(R.string.permission_denied_storage);
}
}
-
- if (Manifest.permission.GET_ACCOUNTS.equals(permission)) {
- if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
- needRestart = true;
- } else {
- toast(R.string.permission_denied_accounts);
-
- SharedPreferences.Editor editor = m_prefs.edit();
- editor.putBoolean("use_position_sync", false);
- editor.apply();
- }
- }
}
if (needRestart) {
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 376e639..245ad2c 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
@@ -19,7 +19,7 @@ public class PreferencesActivity extends CommonActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preferences);
- setSupportActionBar((Toolbar) findViewById(R.id.toolbar));;
+ setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
@@ -43,6 +43,8 @@ public class PreferencesActivity extends CommonActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ Log.d("123", "RQ2=" + requestCode);
+
if(requestCode == DirectoryPicker.PICK_DIRECTORY && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String path = (String) extras.get(DirectoryPicker.CHOSEN_DIRECTORY);
@@ -53,8 +55,9 @@ public class PreferencesActivity extends CommonActivity {
SharedPreferences.Editor editor = prefs.edit();
editor.putString("comics_directory", path);
editor.apply();
-
}
+
+ super.onActivityResult(requestCode, resultCode, data);
}
public void startPicker() {
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 9ae89c7..457e503 100644..100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java
@@ -1,14 +1,10 @@
package org.fox.ttcomics2;
-import android.accounts.Account;
-import android.accounts.AccountManager;
import android.app.Activity;
import android.app.AlertDialog;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
@@ -16,15 +12,14 @@ import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
-import android.widget.Toast;
+
+import com.google.android.gms.auth.GoogleAuthUtil;
+import com.google.android.gms.common.AccountPicker;
import org.fox.ttcomics2.sync.SyncClient;
-import java.io.IOException;
import java.text.SimpleDateFormat;
-import java.util.Locale;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
+import java.util.Date;
public class PreferencesFragment extends PreferenceFragment {
@@ -52,19 +47,11 @@ public class PreferencesFragment extends PreferenceFragment {
version = packageInfo.versionName;
versionCode = packageInfo.versionCode;
- ApplicationInfo appInfo = activity.getPackageManager().
- getApplicationInfo(activity.getPackageName(), 0);
-
- ZipFile zf = new ZipFile(appInfo.sourceDir);
- ZipEntry ze = zf.getEntry("classes.dex");
- long time = ze.getTime();
-
- buildTimestamp = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss",
- Locale.getDefault()).format(time);
-
-
findPreference("version").setSummary(getString(R.string.prefs_version, version, versionCode));
+
+ buildTimestamp = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(new Date(BuildConfig.TIMESTAMP));
findPreference("build_timestamp").setSummary(getString(R.string.prefs_build_timestamp, buildTimestamp));
+
findPreference("privacy_policy").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
@@ -77,15 +64,12 @@ public class PreferencesFragment extends PreferenceFragment {
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
}
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getActivity().getApplicationContext());
- Preference dirPref = findPreference("comics_directory");
- dirPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ findPreference("comics_directory").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
((PreferencesActivity)getActivity()).startPicker();
@@ -93,8 +77,21 @@ public class PreferencesFragment extends PreferenceFragment {
}
});
- Preference clearPref = findPreference("clear_sync_data");
- clearPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ findPreference("choose_sync_account").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ Intent googlePicker = AccountPicker.newChooseAccountIntent(null, null,
+ new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE}, true, null, null, null, null);
+
+ getActivity().startActivityForResult(googlePicker, CommonActivity.REQUEST_SYNC_ACCOUNT);
+
+ return true;
+ }
+ });
+
+ findPreference("choose_sync_account").setSummary(prefs.getString("sync_account", getString(R.string.sync_account_not_set)));
+
+ findPreference("clear_sync_data").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
@@ -103,26 +100,16 @@ public class PreferencesFragment extends PreferenceFragment {
.setPositiveButton(R.string.dialog_clear_data, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- String googleAccount = getGoogleAccount();
+ String syncAccount = CommonActivity.getSyncAccount(getActivity().getApplicationContext());
SyncClient m_syncClient = new SyncClient();
- if (googleAccount != null) {
- m_syncClient.setOwner(googleAccount);
+ if (syncAccount != null) {
+ m_syncClient.setOwner(syncAccount);
} else {
if (BuildConfig.DEBUG) {
m_syncClient.setOwner("TEST-ACCOUNT");
-
- //Toast toast = Toast.makeText(getActivity(), R.string.sync_running_in_test_mode, Toast.LENGTH_SHORT);
- //toast.show();
} else {
- m_syncClient.setOwner(null);
-
- SharedPreferences.Editor editor = prefs.edit();
- editor.putBoolean("use_position_sync", false);
- editor.apply();
-
- Toast toast = Toast.makeText(getActivity(), R.string.error_sync_no_account, Toast.LENGTH_SHORT);
- toast.show();
+ ((CommonActivity)getActivity()).toast(R.string.error_sync_no_account);
}
}
@@ -144,15 +131,4 @@ public class PreferencesFragment extends PreferenceFragment {
});
}
- public String getGoogleAccount() {
- AccountManager manager = (AccountManager) getActivity().getSystemService(Context.ACCOUNT_SERVICE);
- Account[] list = manager.getAccounts();
-
- for (Account account: list) {
- if (account.type.equalsIgnoreCase("com.google")) {
- return account.name;
- }
- }
- return null;
- }
} \ No newline at end of file
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java
index a048342..75120d3 100644..100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java
@@ -1,5 +1,6 @@
package org.fox.ttcomics2.sync;
+import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.os.AsyncTask;
@@ -46,7 +47,7 @@ public class SyncFolderService extends Service {
public void onStart(Intent intent, int startId) {
String baseDir = intent.getExtras().getString("baseDir");
- AsyncTask<String, Integer, Integer> task = new AsyncTask<String, Integer, Integer>() {
+ @SuppressLint("StaticFieldLeak") AsyncTask<String, Integer, Integer> task = new AsyncTask<String, Integer, Integer>() {
@Override
protected Integer doInBackground(String... params) {
File rootDir = new File(params[0]);
@@ -63,7 +64,7 @@ public class SyncFolderService extends Service {
SyncClient m_syncClient = new SyncClient();
- String googleAccount = CommonActivity.getGoogleAccount(getApplicationContext());
+ String googleAccount = CommonActivity.getSyncAccount(getApplicationContext());
if (googleAccount != null) {
m_syncClient.setOwner(googleAccount);
diff --git a/org.fox.ttcomics/src/main/res/values/strings.xml b/org.fox.ttcomics/src/main/res/values/strings.xml
index d148faf..8e225d7 100755
--- a/org.fox.ttcomics/src/main/res/values/strings.xml
+++ b/org.fox.ttcomics/src/main/res/values/strings.xml
@@ -42,7 +42,7 @@
<string name="error_no_comic_archives_found_">No comic archives found.</string>
<string name="prefs_use_position_sync">Sync last read pages</string>
<string name="prefs_use_position_sync_summary">Requires at least one Google account on the device. No personally identifiable information is sent.</string>
- <string name="error_sync_no_account">No Google account found, sync disabled.</string>
+ <string name="error_sync_no_account">Please choose sync account in settings.</string>
<string name="sync_uploading">Uploading sync data…</string>
<string name="error_sync_no_data">No information stored or you are on the furthest read page.</string>
<string name="dialog_clear_data">Clear data</string>
@@ -75,4 +75,6 @@
<string name="permission_denied_storage">Storage permission denied, app might not be able to access your comic archives.</string>
<string name="permission_denied_accounts">Accounts permission denied, sync disabled</string>
<string name="privacy_policy">Privacy Policy</string>
+ <string name="dialog_close">Close</string>
+ <string name="sync_account_not_set">Not specified</string>
</resources> \ No newline at end of file
diff --git a/org.fox.ttcomics/src/main/res/xml/preferences.xml b/org.fox.ttcomics/src/main/res/xml/preferences.xml
index f981274..6d3d7e6 100644..100755
--- a/org.fox.ttcomics/src/main/res/xml/preferences.xml
+++ b/org.fox.ttcomics/src/main/res/xml/preferences.xml
@@ -24,6 +24,12 @@
<Preference
android:dependency="use_position_sync"
+ android:key="choose_sync_account"
+ android:title="Choose sync account"
+ />
+
+ <Preference
+ android:dependency="use_position_sync"
android:key="clear_sync_data"
android:title="@string/prefs_clear_sync_data"
android:summary="@string/prefs_clear_sync_data_summary" >