1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
package org.fox.ttcomics;
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.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceManager;
import android.widget.Toast;
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
addPreferencesFromResource(R.xml.preferences);
if (CommonActivity.isCompatMode()) {
Preference dimPref = findPreference("dim_status_bar");
PreferenceCategory readingCat = (PreferenceCategory) findPreference("prefs_reading");
readingCat.removePreference(dimPref);
}
Preference dirPref = findPreference("comics_directory");
dirPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(PreferencesActivity.this, DirectoryPicker.class);
//intent.putExtra(DirectoryPicker.START_DIR, prefs.getString("comics_directory",
// Environment.getExternalStorageDirectory().getAbsolutePath()));
startActivityForResult(intent, DirectoryPicker.PICK_DIRECTORY);
return true;
}
});
Preference clearPref = findPreference("clear_sync_data");
clearPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder builder = new AlertDialog.Builder(PreferencesActivity.this);
builder.setMessage(R.string.dialog_clear_data_title)
.setCancelable(false)
.setPositiveButton(R.string.dialog_clear_data, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String googleAccount = getGoogleAccount();
SyncClient m_syncClient = new SyncClient();
if (googleAccount != null) {
m_syncClient.setOwner(googleAccount);
} else {
if (Build.FINGERPRINT.startsWith("generic")) {
m_syncClient.setOwner("TEST-ACCOUNT");
} else {
m_syncClient.setOwner(null);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("use_position_sync", false);
editor.commit();
Toast toast = Toast.makeText(PreferencesActivity.this, R.string.error_sync_no_account, Toast.LENGTH_SHORT);
toast.show();
}
}
if (m_syncClient.hasOwner()) {
m_syncClient.clearData();
}
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
return false;
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == DirectoryPicker.PICK_DIRECTORY && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String path = (String) extras.get(DirectoryPicker.CHOSEN_DIRECTORY);
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("comics_directory", path);
editor.commit();
}
}
public String getGoogleAccount() {
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
for (Account account: list) {
if (account.type.equalsIgnoreCase("com.google")) {
return account.name;
}
}
return null;
}
}
|