mirror of
https://github.com/nerzhul/ownCloud-SMS-App.git
synced 2025-06-12 02:16:21 +00:00
Fix coding style, helped by eclipse. Also add notification when manual sync is done
This commit is contained in:
parent
24f72073a4
commit
bd26728bb5
@ -12,19 +12,19 @@ package fr.unix_experience.owncloud_sms.activities;
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.PeriodicSync;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.Editor;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@ -34,10 +34,6 @@ import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.defines.DefaultPrefs;
|
||||
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
|
||||
@ -51,7 +47,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
static String mAccountType;
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(Bundle savedInstanceState) {
|
||||
protected void onPostCreate(final Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
|
||||
mAccountMgr = AccountManager.get(getBaseContext());
|
||||
@ -74,7 +70,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
// In the simplified UI, fragments are not used at all and we instead
|
||||
// use the older PreferenceActivity APIs.
|
||||
addPreferencesFromResource(R.xml.pref_data_sync);
|
||||
|
||||
|
||||
mContext = getBaseContext();
|
||||
|
||||
bindPreferences();
|
||||
@ -90,7 +86,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
* Helper method to determine if the device has an extra-large screen. For
|
||||
* example, 10" tablets are extra-large.
|
||||
*/
|
||||
private static boolean isXLargeTablet(Context context) {
|
||||
private static boolean isXLargeTablet(final Context context) {
|
||||
return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
|
||||
}
|
||||
|
||||
@ -101,7 +97,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
* doesn't have an extra-large screen. In these cases, a single-pane
|
||||
* "simplified" settings UI should be shown.
|
||||
*/
|
||||
private static boolean isSimplePreferences(Context context) {
|
||||
private static boolean isSimplePreferences(final Context context) {
|
||||
return ALWAYS_SIMPLE_PREFS
|
||||
|| Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
|
||||
|| !isXLargeTablet(context);
|
||||
@ -113,52 +109,52 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
*/
|
||||
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||
public boolean onPreferenceChange(final Preference preference, final Object value) {
|
||||
if (preference instanceof ListPreference) {
|
||||
String prefKey = preference.getKey();
|
||||
String stringValue = value.toString();
|
||||
final String prefKey = preference.getKey();
|
||||
final String stringValue = value.toString();
|
||||
// For list preferences, look up the correct display value in
|
||||
// the preference's 'entries' list.
|
||||
ListPreference listPreference = (ListPreference) preference;
|
||||
int index = listPreference.findIndexOfValue(stringValue);
|
||||
final ListPreference listPreference = (ListPreference) preference;
|
||||
final int index = listPreference.findIndexOfValue(stringValue);
|
||||
|
||||
// Set the summary to reflect the new value.
|
||||
preference
|
||||
.setSummary(index >= 0 ? listPreference.getEntries()[index]
|
||||
: null);
|
||||
|
||||
Account[] myAccountList = mAccountMgr.getAccountsByType(mAccountType);
|
||||
|
||||
.setSummary(index >= 0 ? listPreference.getEntries()[index]
|
||||
: null);
|
||||
|
||||
final Account[] myAccountList = mAccountMgr.getAccountsByType(mAccountType);
|
||||
|
||||
// Handle sync frequency change
|
||||
if (prefKey.equals("sync_frequency")) {
|
||||
long syncFreq = Long.parseLong(stringValue);
|
||||
final long syncFreq = Long.parseLong(stringValue);
|
||||
|
||||
// Get ownCloud SMS account list
|
||||
for (int i = 0; i < myAccountList.length; i++) {
|
||||
// And get all authorities for this account
|
||||
List<PeriodicSync> syncList = ContentResolver.getPeriodicSyncs(myAccountList[i], mAccountAuthority);
|
||||
|
||||
final List<PeriodicSync> syncList = ContentResolver.getPeriodicSyncs(myAccountList[i], mAccountAuthority);
|
||||
|
||||
boolean foundSameSyncCycle = false;
|
||||
for (int j = 0; j < syncList.size(); j++) {
|
||||
PeriodicSync ps = syncList.get(i);
|
||||
|
||||
final PeriodicSync ps = syncList.get(i);
|
||||
|
||||
if (ps.period == syncFreq && ps.extras.getInt("synctype") == 1) {
|
||||
foundSameSyncCycle = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (foundSameSyncCycle == false) {
|
||||
Bundle b = new Bundle();
|
||||
final Bundle b = new Bundle();
|
||||
b.putInt("synctype", 1);
|
||||
|
||||
ContentResolver.removePeriodicSync(myAccountList[i],
|
||||
ContentResolver.removePeriodicSync(myAccountList[i],
|
||||
mAccountAuthority, b);
|
||||
ContentResolver.addPeriodicSync(myAccountList[i],
|
||||
mAccountAuthority, b, syncFreq * 60);
|
||||
mAccountAuthority, b, syncFreq * 60);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Slow Sync frequency
|
||||
// Slow Sync frequency
|
||||
/*else if (prefKey.equals(new String("slow_sync_frequency"))) {
|
||||
long syncFreq = Long.parseLong((String)value);
|
||||
|
||||
@ -167,21 +163,21 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
for (int i = 0; i < myAccountList.length; i++) {
|
||||
// And get all authorities for this account
|
||||
List<PeriodicSync> syncList = ContentResolver.getPeriodicSyncs(myAccountList[i], mSlowSyncAccountAuthority);
|
||||
|
||||
|
||||
boolean foundSameSyncCycle = false;
|
||||
for (int j = 0; j < syncList.size(); j++) {
|
||||
PeriodicSync ps = syncList.get(i);
|
||||
|
||||
|
||||
if (ps.period == syncFreq && ps.extras.getInt("synctype") == 2) {
|
||||
foundSameSyncCycle = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (foundSameSyncCycle == false) {
|
||||
Bundle b = new Bundle();
|
||||
b.putInt("synctype", 2);
|
||||
|
||||
ContentResolver.removePeriodicSync(myAccountList[i],
|
||||
ContentResolver.removePeriodicSync(myAccountList[i],
|
||||
mSlowSyncAccountAuthority, b);
|
||||
ContentResolver.addPeriodicSync(myAccountList[i],
|
||||
mSlowSyncAccountAuthority, b, syncFreq * 60);
|
||||
@ -189,15 +185,14 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
}
|
||||
}*/
|
||||
} else if (preference instanceof CheckBoxPreference) {
|
||||
String prefKey = preference.getKey();
|
||||
Boolean boolValue = (Boolean)value;
|
||||
final String prefKey = preference.getKey();
|
||||
final Boolean boolValue = (Boolean)value;
|
||||
// Network types allowed for sync
|
||||
if(prefKey.equals(new String("sync_wifi")) || prefKey.equals("sync_2g") ||
|
||||
prefKey.equals(new String("sync_3g")) || prefKey.equals("sync_gprs") ||
|
||||
prefKey.equals("sync_4g") || prefKey.equals("sync_others")) {
|
||||
Log.d("FUCK",prefKey + " " + boolValue.toString());
|
||||
|
||||
OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(mContext);
|
||||
prefKey.equals(new String("sync_3g")) || prefKey.equals("sync_gprs") ||
|
||||
prefKey.equals("sync_4g") || prefKey.equals("sync_others")) {
|
||||
|
||||
final OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(mContext);
|
||||
prefs.putBoolean(prefKey, boolValue);
|
||||
}
|
||||
} else {
|
||||
@ -218,38 +213,38 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
*
|
||||
* @see #sBindPreferenceSummaryToValueListener
|
||||
*/
|
||||
private static void bindPreferenceBooleanToValue(Preference preference, Boolean defValue) {
|
||||
private static void bindPreferenceBooleanToValue(final Preference preference, final Boolean defValue) {
|
||||
// Set the listener to watch for value changes.
|
||||
preference
|
||||
.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
||||
.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
||||
|
||||
// Trigger the listener immediately with the preference's
|
||||
// current value.
|
||||
sBindPreferenceSummaryToValueListener.onPreferenceChange(
|
||||
preference,
|
||||
PreferenceManager.getDefaultSharedPreferences(
|
||||
preference.getContext()).getBoolean(
|
||||
preference.getKey(),
|
||||
defValue
|
||||
)
|
||||
);
|
||||
preference,
|
||||
PreferenceManager.getDefaultSharedPreferences(
|
||||
preference.getContext()).getBoolean(
|
||||
preference.getKey(),
|
||||
defValue
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private static void bindPreferenceStringToValue(Preference preference) {
|
||||
|
||||
private static void bindPreferenceStringToValue(final Preference preference) {
|
||||
// Set the listener to watch for value changes.
|
||||
preference
|
||||
.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
||||
.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
||||
|
||||
// Trigger the listener immediately with the preference's
|
||||
// current value.
|
||||
sBindPreferenceSummaryToValueListener.onPreferenceChange(
|
||||
preference,
|
||||
PreferenceManager.getDefaultSharedPreferences(
|
||||
preference.getContext()).getString(
|
||||
preference.getKey(),
|
||||
""
|
||||
)
|
||||
);
|
||||
preference,
|
||||
PreferenceManager.getDefaultSharedPreferences(
|
||||
preference.getContext()).getString(
|
||||
preference.getKey(),
|
||||
""
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -259,7 +254,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||
public static class DataSyncPreferenceFragment extends PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.pref_data_sync);
|
||||
|
||||
@ -277,7 +272,7 @@ public class GeneralSettingsActivity extends PreferenceActivity {
|
||||
//bindPreferenceSummaryToValue(findPreference("slow_sync_frequency"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void bindPreferences() {
|
||||
mContext = getBaseContext();
|
||||
|
||||
|
@ -30,11 +30,6 @@ import java.util.Vector;
|
||||
|
||||
import org.json.JSONArray;
|
||||
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor;
|
||||
import fr.unix_experience.owncloud_sms.engine.SmsFetcher;
|
||||
import fr.unix_experience.owncloud_sms.engine.ASyncTask.SyncTask;
|
||||
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentManager;
|
||||
@ -45,10 +40,14 @@ import android.provider.Settings;
|
||||
import android.support.v13.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.PagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.engine.ASyncTask.SyncTask;
|
||||
import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor;
|
||||
import fr.unix_experience.owncloud_sms.engine.SmsFetcher;
|
||||
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationManager;
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
|
||||
@ -67,23 +66,23 @@ public class MainActivity extends Activity {
|
||||
ViewPager mViewPager;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
// Create the adapter that will return a fragment for each of the three
|
||||
// primary sections of the activity.
|
||||
|
||||
List<Fragment> fragments = new Vector<Fragment>();
|
||||
|
||||
|
||||
final List<Fragment> fragments = new Vector<Fragment>();
|
||||
|
||||
/*
|
||||
* Add the Main tabs here
|
||||
*/
|
||||
|
||||
|
||||
fragments.add(Fragment.instantiate(this,StarterFragment.class.getName()));
|
||||
fragments.add(Fragment.instantiate(this,SecondTestFragment.class.getName()));
|
||||
fragments.add(Fragment.instantiate(this,ThanksAndRateFragment.class.getName()));
|
||||
|
||||
|
||||
mPagerAdapter = new MainPagerAdapter(getFragmentManager(), fragments);
|
||||
|
||||
// Set up the ViewPager with the sections adapter.
|
||||
@ -98,13 +97,14 @@ public class MainActivity extends Activity {
|
||||
public class MainPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
private final List<Fragment> mFragments;
|
||||
|
||||
public MainPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragments) {
|
||||
|
||||
public MainPagerAdapter(final FragmentManager fragmentManager, final List<Fragment> fragments) {
|
||||
super(fragmentManager);
|
||||
mFragments = fragments;
|
||||
}
|
||||
|
||||
public Fragment getItem(int position) {
|
||||
@Override
|
||||
public Fragment getItem(final int position) {
|
||||
// getItem is called to instantiate the fragment for the given page.
|
||||
// Return a PlaceholderFragment (defined as a static inner class
|
||||
// below).
|
||||
@ -123,65 +123,67 @@ public class MainActivity extends Activity {
|
||||
*/
|
||||
public static class StarterFragment extends Fragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View rootView = inflater.inflate(R.layout.fragment_mainactivity_main, container,
|
||||
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
final View rootView = inflater.inflate(R.layout.fragment_mainactivity_main, container,
|
||||
false);
|
||||
return rootView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class SecondTestFragment extends Fragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View rootView = inflater.inflate(R.layout.fragment_mainactivity_gotosettings, container,
|
||||
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
final View rootView = inflater.inflate(R.layout.fragment_mainactivity_gotosettings, container,
|
||||
false);
|
||||
return rootView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class ThanksAndRateFragment extends Fragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View rootView = inflater.inflate(R.layout.fragment_mainactivity_thanks_note, container,
|
||||
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
final View rootView = inflater.inflate(R.layout.fragment_mainactivity_thanks_note, container,
|
||||
false);
|
||||
return rootView;
|
||||
}
|
||||
}
|
||||
|
||||
public void openAppSettings(View view) {
|
||||
|
||||
public void openAppSettings(final View view) {
|
||||
startActivity(new Intent(this, GeneralSettingsActivity.class));
|
||||
}
|
||||
|
||||
public void openAddAccount(View view) {
|
||||
|
||||
public void openAddAccount(final View view) {
|
||||
startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT));
|
||||
}
|
||||
|
||||
public void syncAllMessages(View view) {
|
||||
ConnectivityMonitor cMon = new ConnectivityMonitor(getApplicationContext());
|
||||
|
||||
|
||||
public void syncAllMessages(final View view) {
|
||||
final ConnectivityMonitor cMon = new ConnectivityMonitor(getApplicationContext());
|
||||
|
||||
if (cMon.isValid()) {
|
||||
// Now fetch messages since last stored date
|
||||
JSONArray smsList = new SmsFetcher(getApplicationContext())
|
||||
.bufferizeMessagesSinceDate((long) 0);
|
||||
|
||||
final JSONArray smsList = new SmsFetcher(getApplicationContext())
|
||||
.bufferizeMessagesSinceDate((long) 0);
|
||||
|
||||
if (smsList != null) {
|
||||
final OCSMSNotificationManager nMgr = new OCSMSNotificationManager(getApplicationContext());
|
||||
nMgr.setSyncProcessMsg();
|
||||
new SyncTask(getApplicationContext(), smsList).execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void openGooglePlayStore(View view) {
|
||||
public void openGooglePlayStore(final View view) {
|
||||
Intent intent;
|
||||
try {
|
||||
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()));
|
||||
|
||||
} catch (android.content.ActivityNotFoundException anfe) {
|
||||
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
|
||||
|
||||
} catch (final android.content.ActivityNotFoundException anfe) {
|
||||
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
|
||||
}
|
||||
|
||||
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ package fr.unix_experience.owncloud_sms.engine;
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@ -27,39 +27,43 @@ import android.os.AsyncTask;
|
||||
import android.util.Log;
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
|
||||
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationManager;
|
||||
|
||||
public interface ASyncTask {
|
||||
class SyncTask extends AsyncTask<Void, Void, Void>{
|
||||
public SyncTask(Context context, JSONArray smsList) {
|
||||
public SyncTask(final Context context, final JSONArray smsList) {
|
||||
_context = context;
|
||||
_smsList = smsList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... params) {
|
||||
protected Void doInBackground(final Void... params) {
|
||||
final OCSMSNotificationManager nMgr = new OCSMSNotificationManager(_context);
|
||||
|
||||
// Get ownCloud SMS account list
|
||||
AccountManager _accountMgr = AccountManager.get(_context);
|
||||
|
||||
Account[] myAccountList = _accountMgr.getAccountsByType(_context.getString(R.string.account_type));
|
||||
for (int i = 0; i < myAccountList.length; i++) {
|
||||
Uri serverURI = Uri.parse(_accountMgr.getUserData(myAccountList[i], "ocURI"));
|
||||
|
||||
OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(_context,
|
||||
serverURI, _accountMgr.getUserData(myAccountList[i], "ocLogin"),
|
||||
_accountMgr.getPassword(myAccountList[i]));
|
||||
|
||||
final AccountManager _accountMgr = AccountManager.get(_context);
|
||||
|
||||
final Account[] myAccountList = _accountMgr.getAccountsByType(_context.getString(R.string.account_type));
|
||||
for (final Account element : myAccountList) {
|
||||
final Uri serverURI = Uri.parse(_accountMgr.getUserData(element, "ocURI"));
|
||||
|
||||
final OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(_context,
|
||||
serverURI, _accountMgr.getUserData(element, "ocLogin"),
|
||||
_accountMgr.getPassword(element));
|
||||
|
||||
try {
|
||||
_client.doPushRequest(_smsList);
|
||||
} catch (OCSyncException e) {
|
||||
} catch (final OCSyncException e) {
|
||||
Log.e(TAG, _context.getString(e.getErrorId()));
|
||||
}
|
||||
}
|
||||
nMgr.dropSyncProcessMsg();
|
||||
return null;
|
||||
}
|
||||
|
||||
private Context _context;
|
||||
private JSONArray _smsList;
|
||||
|
||||
private final Context _context;
|
||||
private final JSONArray _smsList;
|
||||
}
|
||||
|
||||
|
||||
static final String TAG = ASyncTask.class.getSimpleName();
|
||||
}
|
||||
|
@ -12,65 +12,65 @@ package fr.unix_experience.owncloud_sms.prefs;
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.defines.DefaultPrefs;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.Editor;
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.defines.DefaultPrefs;
|
||||
|
||||
public class OCSMSSharedPrefs {
|
||||
|
||||
public OCSMSSharedPrefs(Context context) {
|
||||
public OCSMSSharedPrefs(final Context context) {
|
||||
_context = context;
|
||||
|
||||
|
||||
_sPrefs = _context.getSharedPreferences(_context.getString(R.string.shared_preference_file), Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
public void putBoolean(String prefKey, Boolean boolValue) {
|
||||
Editor edit = _sPrefs.edit();
|
||||
|
||||
public void putBoolean(final String prefKey, final Boolean boolValue) {
|
||||
final Editor edit = _sPrefs.edit();
|
||||
edit.putBoolean(prefKey, boolValue);
|
||||
edit.commit();
|
||||
}
|
||||
|
||||
public void setLastMessageDate(Long msgDate) {
|
||||
SharedPreferences.Editor editor = _sPrefs.edit();
|
||||
|
||||
public void setLastMessageDate(final Long msgDate) {
|
||||
final SharedPreferences.Editor editor = _sPrefs.edit();
|
||||
editor.putLong(_context.getString(R.string.pref_lastmsgdate), msgDate);
|
||||
editor.commit();
|
||||
}
|
||||
|
||||
|
||||
public Long getLastMessageDate() {
|
||||
return _sPrefs.getLong(_context.getString(R.string.pref_lastmsgdate), 0);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncInWifi() {
|
||||
return _sPrefs.getBoolean("sync_wifi", DefaultPrefs.syncWifi);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncIn2G() {
|
||||
return _sPrefs.getBoolean("sync_2g", DefaultPrefs.sync2G);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncInGPRS() {
|
||||
return _sPrefs.getBoolean("sync_gprs", DefaultPrefs.syncGPRS);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncIn3G() {
|
||||
return _sPrefs.getBoolean("sync_3g", DefaultPrefs.sync3G);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncIn4G() {
|
||||
return _sPrefs.getBoolean("sync_4g", DefaultPrefs.sync4G);
|
||||
}
|
||||
|
||||
|
||||
public Boolean syncInOtherModes() {
|
||||
return _sPrefs.getBoolean("sync_others", DefaultPrefs.syncOthers);
|
||||
}
|
||||
|
||||
private SharedPreferences _sPrefs;
|
||||
private Context _context;
|
||||
|
||||
private final SharedPreferences _sPrefs;
|
||||
private final Context _context;
|
||||
}
|
||||
|
@ -12,16 +12,11 @@ package fr.unix_experience.owncloud_sms.sync_adapters;
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.engine.OCSMSOwnCloudClient;
|
||||
import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType;
|
||||
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
|
||||
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationManager;
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.content.AbstractThreadedSyncAdapter;
|
||||
@ -31,43 +26,48 @@ import android.content.SyncResult;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import fr.unix_experience.owncloud_sms.R;
|
||||
import fr.unix_experience.owncloud_sms.engine.OCSMSOwnCloudClient;
|
||||
import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType;
|
||||
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
|
||||
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationManager;
|
||||
|
||||
public class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
|
||||
|
||||
public SmsSyncAdapter(Context context, boolean autoInitialize) {
|
||||
public SmsSyncAdapter(final Context context, final boolean autoInitialize) {
|
||||
super(context, autoInitialize);
|
||||
_accountMgr = AccountManager.get(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPerformSync(Account account, Bundle extras, String authority,
|
||||
ContentProviderClient provider, SyncResult syncResult) {
|
||||
|
||||
OCSMSNotificationManager nMgr = new OCSMSNotificationManager(getContext());
|
||||
|
||||
public void onPerformSync(final Account account, final Bundle extras, final String authority,
|
||||
final ContentProviderClient provider, final SyncResult syncResult) {
|
||||
|
||||
final OCSMSNotificationManager nMgr = new OCSMSNotificationManager(getContext());
|
||||
|
||||
// Create client
|
||||
String ocURI = _accountMgr.getUserData(account, "ocURI");
|
||||
final String ocURI = _accountMgr.getUserData(account, "ocURI");
|
||||
if (ocURI == null) {
|
||||
nMgr.setSyncErrorMsg(getContext().getString(R.string.err_sync_account_unparsable));
|
||||
return;
|
||||
}
|
||||
|
||||
Uri serverURI = Uri.parse(ocURI);
|
||||
nMgr.setSyncProcessMsg();
|
||||
|
||||
OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(getContext(),
|
||||
|
||||
final Uri serverURI = Uri.parse(ocURI);
|
||||
nMgr.setSyncProcessMsg();
|
||||
|
||||
final OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(getContext(),
|
||||
serverURI, _accountMgr.getUserData(account, "ocLogin"),
|
||||
_accountMgr.getPassword(account));
|
||||
|
||||
|
||||
try {
|
||||
// getServerAPI version
|
||||
Log.d(TAG,"Server API version: " + _client.getServerAPIVersion());
|
||||
|
||||
|
||||
// and push datas
|
||||
_client.doPushRequest(null);
|
||||
|
||||
|
||||
nMgr.dropSyncErrorMsg();
|
||||
} catch (OCSyncException e) {
|
||||
} catch (final OCSyncException e) {
|
||||
nMgr.setSyncErrorMsg(getContext().getString(e.getErrorId()));
|
||||
if (e.getErrorType() == OCSyncErrorType.IO) {
|
||||
syncResult.stats.numIoExceptions++;
|
||||
@ -82,12 +82,12 @@ public class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
|
||||
// UNHANDLED
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nMgr.dropSyncProcessMsg();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private AccountManager _accountMgr;
|
||||
|
||||
private final AccountManager _accountMgr;
|
||||
|
||||
private static final String TAG = SmsSyncAdapter.class.getSimpleName();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user