From fba218594b8d97a68a0f7ed75b6d0cf9e3bd6dc3 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 10 Jul 2018 20:23:43 +0300 Subject: various sync/preferences fixes remove deprecated GET_ACCOUNT stuff --- org.fox.ttcomics/build.gradle | 4 ++ org.fox.ttcomics/org.fox.ttcomics.iml | 9 +++ org.fox.ttcomics/src/main/AndroidManifest.xml | 1 - .../java/org/fox/ttcomics2/CommonActivity.java | 75 +++++++++++---------- .../main/java/org/fox/ttcomics2/MainActivity.java | 22 +----- .../org/fox/ttcomics2/PreferencesActivity.java | 7 +- .../org/fox/ttcomics2/PreferencesFragment.java | 78 ++++++++-------------- .../org/fox/ttcomics2/sync/SyncFolderService.java | 5 +- org.fox.ttcomics/src/main/res/values/strings.xml | 4 +- org.fox.ttcomics/src/main/res/xml/preferences.xml | 6 ++ 10 files changed, 97 insertions(+), 114 deletions(-) mode change 100644 => 100755 org.fox.ttcomics/src/main/java/org/fox/ttcomics2/PreferencesFragment.java mode change 100644 => 100755 org.fox.ttcomics/src/main/java/org/fox/ttcomics2/sync/SyncFolderService.java mode change 100644 => 100755 org.fox.ttcomics/src/main/res/xml/preferences.xml (limited to 'org.fox.ttcomics') 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 @@ + + + + + + + + @@ -146,6 +154,7 @@ + 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" > - 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 old mode 100644 new mode 100755 index 9ae89c7..457e503 --- 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 old mode 100644 new mode 100755 index a048342..75120d3 --- 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 task = new AsyncTask() { + @SuppressLint("StaticFieldLeak") AsyncTask task = new AsyncTask() { @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 @@ No comic archives found. Sync last read pages Requires at least one Google account on the device. No personally identifiable information is sent. - No Google account found, sync disabled. + Please choose sync account in settings. Uploading sync data… No information stored or you are on the furthest read page. Clear data @@ -75,4 +75,6 @@ Storage permission denied, app might not be able to access your comic archives. Accounts permission denied, sync disabled Privacy Policy + Close + Not specified \ 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 old mode 100644 new mode 100755 index f981274..6d3d7e6 --- a/org.fox.ttcomics/src/main/res/xml/preferences.xml +++ b/org.fox.ttcomics/src/main/res/xml/preferences.xml @@ -22,6 +22,12 @@ android:summary="@string/prefs_use_position_sync_summary" /> + +