summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics/src/main/java/org/fox/ttcomics/PreferencesActivity.java
blob: 5daa3bc023f6686e2d30150237ca4e7c5374f2d6 (plain)
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
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.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);
		
		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.HARDWARE.equals("goldfish")) {		    		
				        			 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;
	}
}