Browse Source

Merge branch 'master' into develop

David A. Velasco 11 năm trước cách đây
mục cha
commit
ba8ee979d0
25 tập tin đã thay đổi với 79 bổ sung57 xóa
  1. 2 2
      AndroidManifest.xml
  2. 1 1
      oc_jb_workaround/AndroidManifest.xml
  3. BIN
      oc_jb_workaround/res/drawable-xhdpi/main_app_icon.png
  4. BIN
      oc_jb_workaround/res/drawable-xhdpi/workaround_app_icon.png
  5. BIN
      res/drawable-hdpi/winter_holidays_icon.png
  6. BIN
      res/drawable-ldpi/winter_holidays_icon.png
  7. BIN
      res/drawable-mdpi/winter_holidays_icon.png
  8. 1 1
      res/values/strings.xml
  9. 3 2
      src/com/owncloud/android/files/managers/OCNotificationManager.java
  10. 4 3
      src/com/owncloud/android/files/services/FileDownloader.java
  11. 8 4
      src/com/owncloud/android/files/services/FileUploader.java
  12. 1 1
      src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
  13. 5 4
      src/com/owncloud/android/syncadapter/FileSyncAdapter.java
  14. 5 4
      src/com/owncloud/android/ui/activity/AccountSelectActivity.java
  15. 5 1
      src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java
  16. 8 17
      src/com/owncloud/android/ui/activity/FileDisplayActivity.java
  17. 5 0
      src/com/owncloud/android/ui/activity/GenericExplanationActivity.java
  18. 2 0
      src/com/owncloud/android/ui/activity/LogHistoryActivity.java
  19. 4 1
      src/com/owncloud/android/ui/activity/PinCodeActivity.java
  20. 2 8
      src/com/owncloud/android/ui/activity/Preferences.java
  21. 2 0
      src/com/owncloud/android/ui/activity/UploadFilesActivity.java
  22. 2 1
      src/com/owncloud/android/ui/dialog/ChangelogDialog.java
  23. 7 6
      src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java
  24. 2 0
      src/com/owncloud/android/ui/preview/PreviewImageActivity.java
  25. 10 1
      src/com/owncloud/android/utils/DisplayUtils.java

+ 2 - 2
AndroidManifest.xml

@@ -18,8 +18,8 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->
 <manifest package="com.owncloud.android"
-    android:versionCode="105001"
-    android:versionName="1.5.1" xmlns:android="http://schemas.android.com/apk/res/android">
+    android:versionCode="105002"
+    android:versionName="1.5.2" xmlns:android="http://schemas.android.com/apk/res/android">
 
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />

+ 1 - 1
oc_jb_workaround/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.owncloud.android.workaround.accounts"
     android:versionCode="0100010"
-    android:versionName="1.0.10" >
+    android:versionName="1.0.11" >
 
     <uses-sdk
         android:minSdkVersion="16"

BIN
oc_jb_workaround/res/drawable-xhdpi/main_app_icon.png


BIN
oc_jb_workaround/res/drawable-xhdpi/workaround_app_icon.png


BIN
res/drawable-hdpi/winter_holidays_icon.png


BIN
res/drawable-ldpi/winter_holidays_icon.png


BIN
res/drawable-mdpi/winter_holidays_icon.png


+ 1 - 1
res/values/strings.xml

@@ -34,7 +34,7 @@
 	<string name="recommend_text">"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"</string>  
 
     <string name="auth_check_server">Check Server</string>
-    <string name="auth_host_url">Server address</string>
+    <string name="auth_host_url">Server address https://…</string>
     <string name="auth_username">Username</string>
     <string name="auth_password">Password</string>
     <string name="auth_register">New to %1$s?</string>

+ 3 - 2
src/com/owncloud/android/files/managers/OCNotificationManager.java

@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 import android.app.Notification;
 import android.app.NotificationManager;
@@ -101,7 +102,7 @@ public class OCNotificationManager {
         
         switch (type) {
             case NOTIFICATION_SIMPLE:
-                notification = new Notification(R.drawable.icon, data.getText(), System.currentTimeMillis());
+                notification = new Notification(DisplayUtils.getSeasonalIconId(), data.getText(), System.currentTimeMillis());
                 break;
             case NOTIFICATION_PROGRESS:
                 notification = new Notification();
@@ -139,7 +140,7 @@ public class OCNotificationManager {
                                                               false);
                 return true;
             case NOTIFICATION_SIMPLE:
-                pair.mNotificaiton = new Notification(R.drawable.icon,
+                pair.mNotificaiton = new Notification(DisplayUtils.getSeasonalIconId(),
                                                       data.getText(), System.currentTimeMillis());
                 mNM.notify(notification_id, pair.mNotificaiton);
                 return true;

+ 4 - 3
src/com/owncloud/android/files/services/FileDownloader.java

@@ -43,6 +43,7 @@ import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 import android.accounts.Account;
@@ -409,12 +410,12 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
     private void notifyDownloadStart(DownloadFileOperation download) {
         /// create status notification with a progress bar
         mLastPercent = 0;
-        mNotification = new Notification(R.drawable.icon, getString(R.string.downloader_download_in_progress_ticker), System.currentTimeMillis());
+        mNotification = new Notification(DisplayUtils.getSeasonalIconId(), getString(R.string.downloader_download_in_progress_ticker), System.currentTimeMillis());
         mNotification.flags |= Notification.FLAG_ONGOING_EVENT;
         mNotification.contentView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.progressbar_layout);
         mNotification.contentView.setProgressBar(R.id.status_progress, 100, 0, download.getSize() < 0);
         mNotification.contentView.setTextViewText(R.id.status_text, String.format(getString(R.string.downloader_download_in_progress_content), 0, new File(download.getSavePath()).getName()));
-        mNotification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon);
+        mNotification.contentView.setImageViewResource(R.id.status_icon, DisplayUtils.getSeasonalIconId());
         
         /// includes a pending intent in the notification showing the details view of the file
         Intent showDetailsIntent = null;
@@ -468,7 +469,7 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
         if (!downloadResult.isCancelled()) {
             int tickerId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_ticker : R.string.downloader_download_failed_ticker;
             int contentId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_content : R.string.downloader_download_failed_content;
-            Notification finalNotification = new Notification(R.drawable.icon, getString(tickerId), System.currentTimeMillis());
+            Notification finalNotification = new Notification(DisplayUtils.getSeasonalIconId(), getString(tickerId), System.currentTimeMillis());
             finalNotification.flags |= Notification.FLAG_AUTO_CANCEL;
             boolean needsToUpdateCredentials = (downloadResult.getCode() == ResultCode.UNAUTHORIZED ||
                                                 // (downloadResult.isTemporalRedirection() && downloadResult.isIdPRedirection()

+ 8 - 4
src/com/owncloud/android/files/services/FileUploader.java

@@ -48,6 +48,7 @@ import com.owncloud.android.oc_framework.operations.RemoteOperationResult.Result
 import com.owncloud.android.oc_framework.utils.OwnCloudVersion;
 import com.owncloud.android.oc_framework.network.webdav.OnDatatransferProgressListener;
 import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
+import com.owncloud.android.oc_framework.network.webdav.ChunkFromFileChannelRequestEntity;
 import com.owncloud.android.oc_framework.network.webdav.OwnCloudClientFactory;
 import com.owncloud.android.oc_framework.network.webdav.WebdavClient;
 import com.owncloud.android.oc_framework.network.webdav.WebdavEntry;
@@ -58,6 +59,7 @@ import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.InstantUploadActivity;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 import android.accounts.Account;
@@ -265,7 +267,9 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
         try {
             for (int i = 0; i < files.length; i++) {
                 uploadKey = buildRemoteName(account, files[i].getRemotePath());
-                if (chunked) {
+                if (chunked
+                        && (new File(files[i].getStoragePath())).length() > ChunkedUploadFileOperation.CHUNK_SIZE)  // added to work around bug in servers 5.x 
+                {
                     newUpload = new ChunkedUploadFileOperation(account, files[i], isInstant, forceOverwrite,
                             localAction);
                 } else {
@@ -714,7 +718,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
     private void notifyUploadStart(UploadFileOperation upload) {
         // / create status notification with a progress bar
         mLastPercent = 0;
-        mNotification = new Notification(R.drawable.icon, getString(R.string.uploader_upload_in_progress_ticker),
+        mNotification = new Notification(DisplayUtils.getSeasonalIconId(), getString(R.string.uploader_upload_in_progress_ticker),
                 System.currentTimeMillis());
         mNotification.flags |= Notification.FLAG_ONGOING_EVENT;
         mDefaultNotificationContentView = mNotification.contentView;
@@ -723,7 +727,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
         mNotification.contentView.setProgressBar(R.id.status_progress, 100, 0, false);
         mNotification.contentView.setTextViewText(R.id.status_text,
                 String.format(getString(R.string.uploader_upload_in_progress_content), 0, upload.getFileName()));
-        mNotification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon);
+        mNotification.contentView.setImageViewResource(R.id.status_icon, DisplayUtils.getSeasonalIconId());
         
         /// includes a pending intent in the notification showing the details view of the file
         Intent showDetailsIntent = new Intent(this, FileDisplayActivity.class);
@@ -810,7 +814,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
 
             // / fail -> explicit failure notification
             mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
-            Notification finalNotification = new Notification(R.drawable.icon,
+            Notification finalNotification = new Notification(DisplayUtils.getSeasonalIconId(),
                     getString(R.string.uploader_upload_failed_ticker), System.currentTimeMillis());
             finalNotification.flags |= Notification.FLAG_AUTO_CANCEL;
             String content = null;

+ 1 - 1
src/com/owncloud/android/operations/ChunkedUploadFileOperation.java

@@ -40,7 +40,7 @@ import android.accounts.Account;
 
 public class ChunkedUploadFileOperation extends UploadFileOperation {
     
-    private static final long CHUNK_SIZE = 1024000;
+    public static final long CHUNK_SIZE = 1024000;
     private static final String OC_CHUNKED_HEADER = "OC-Chunked";
     private static final String TAG = ChunkedUploadFileOperation.class.getSimpleName();
 

+ 5 - 4
src/com/owncloud/android/syncadapter/FileSyncAdapter.java

@@ -36,6 +36,7 @@ import com.owncloud.android.operations.SynchronizeFolderOperation;
 import com.owncloud.android.operations.UpdateOCVersionOperation;
 import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.ui.activity.ErrorsWhileCopyingHandlerActivity;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 
@@ -368,7 +369,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
      * Notifies the user about a failed synchronization through the status notification bar 
      */
     private void notifyFailedSynchronization() {
-        Notification notification = new Notification(R.drawable.icon, getContext().getString(R.string.sync_fail_ticker), System.currentTimeMillis());
+        Notification notification = new Notification(DisplayUtils.getSeasonalIconId(), getContext().getString(R.string.sync_fail_ticker), System.currentTimeMillis());
         notification.flags |= Notification.FLAG_AUTO_CANCEL;
         boolean needsToUpdateCredentials = (mLastFailedResult != null && 
                                              (  mLastFailedResult.getCode() == ResultCode.UNAUTHORIZED ||
@@ -410,7 +411,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
      */
     private void notifyFailsInFavourites() {
         if (mFailedResultsCounter > 0) {
-            Notification notification = new Notification(R.drawable.icon, getContext().getString(R.string.sync_fail_in_favourites_ticker), System.currentTimeMillis());
+            Notification notification = new Notification(DisplayUtils.getSeasonalIconId(), getContext().getString(R.string.sync_fail_in_favourites_ticker), System.currentTimeMillis());
             notification.flags |= Notification.FLAG_AUTO_CANCEL;
             // TODO put something smart in the contentIntent below
             notification.contentIntent = PendingIntent.getActivity(getContext().getApplicationContext(), (int)System.currentTimeMillis(), new Intent(), 0);
@@ -421,7 +422,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
             ((NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE)).notify(R.string.sync_fail_in_favourites_ticker, notification);
             
         } else {
-            Notification notification = new Notification(R.drawable.icon, getContext().getString(R.string.sync_conflicts_in_favourites_ticker), System.currentTimeMillis());
+            Notification notification = new Notification(DisplayUtils.getSeasonalIconId(), getContext().getString(R.string.sync_conflicts_in_favourites_ticker), System.currentTimeMillis());
             notification.flags |= Notification.FLAG_AUTO_CANCEL;
             // TODO put something smart in the contentIntent below
             notification.contentIntent = PendingIntent.getActivity(getContext().getApplicationContext(), (int)System.currentTimeMillis(), new Intent(), 0);
@@ -443,7 +444,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
      * We won't consider a synchronization as failed when foreign files can not be copied to the ownCloud local directory.
      */
     private void notifyForgottenLocalFiles() {
-        Notification notification = new Notification(R.drawable.icon, getContext().getString(R.string.sync_foreign_files_forgotten_ticker), System.currentTimeMillis());
+        Notification notification = new Notification(DisplayUtils.getSeasonalIconId(), getContext().getString(R.string.sync_foreign_files_forgotten_ticker), System.currentTimeMillis());
         notification.flags |= Notification.FLAG_AUTO_CANCEL;
 
         /// includes a pending intent in the notification showing a more detailed explanation

+ 5 - 4
src/com/owncloud/android/ui/activity/AccountSelectActivity.java

@@ -27,7 +27,6 @@ import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AccountManagerCallback;
 import android.accounts.AccountManagerFuture;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
@@ -50,6 +49,7 @@ import com.actionbarsherlock.view.MenuItem;
 import com.owncloud.android.authentication.AuthenticatorActivity;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.oc_framework.accounts.OwnCloudAccount;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -75,9 +75,10 @@ public class AccountSelectActivity extends SherlockListActivity implements
             mPreviousAccount = AccountUtils.getCurrentOwnCloudAccount(this);
         }
         
-        ActionBar action_bar = getSupportActionBar();
-        action_bar.setDisplayShowTitleEnabled(true);
-        action_bar.setDisplayHomeAsUpEnabled(false);
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
+        actionBar.setDisplayShowTitleEnabled(true);
+        actionBar.setDisplayHomeAsUpEnabled(false);
     }
 
     @Override

+ 5 - 1
src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java

@@ -18,12 +18,14 @@
 
 package com.owncloud.android.ui.activity;
 
+import com.actionbarsherlock.app.ActionBar;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog.Decision;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog.OnConflictDecisionMadeListener;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 import android.content.Intent;
@@ -43,10 +45,12 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
 
     @Override
-    public void ConflictDecisionMade(Decision decision) {
+    public void conflictDecisionMade(Decision decision) {
         Intent i = new Intent(getApplicationContext(), FileUploader.class);
         
         switch (decision) {

+ 8 - 17
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -88,6 +88,7 @@ import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 
@@ -192,13 +193,16 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         // Action bar setup
         mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);
         getSupportActionBar().setHomeButtonEnabled(true);       // mandatory since Android ICS, according to the official documentation
-        setSupportProgressBarIndeterminateVisibility(mSyncInProgress);    // always AFTER setContentView(...) ; to work around bug in its implementation        
-        
-        
+        setSupportProgressBarIndeterminateVisibility(mSyncInProgress);    // always AFTER setContentView(...) ; to work around bug in its implementation
         
         Log_OC.d(TAG, "onCreate() end");
     }
-
+    
+    @Override
+    protected void onStart() {
+        super.onStart();
+        getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
+    }
 
     @Override
     protected void onDestroy() {
@@ -1151,19 +1155,6 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
     }
 
 
-//    private void updateDisplayHomeAtSync(){
-//        ActionBar actionBar = getSupportActionBar();
-//        OCFile currentDir = getCurrentDir();
-//        if (currentDir.getParentId() != DataStorageManager.ROOT_PARENT_ID) {
-//            actionBar.setHomeButtonEnabled(!mSyncInProgress);
-//            actionBar.setDisplayHomeAsUpEnabled(!mSyncInProgress);
-//        }
-//        else {
-//            actionBar.setHomeButtonEnabled(true);
-//            actionBar.setDisplayHomeAsUpEnabled(false);
-//        }
-//    }
-//    
     /**
      * {@inheritDoc}
      */

+ 5 - 0
src/com/owncloud/android/ui/activity/GenericExplanationActivity.java

@@ -30,8 +30,10 @@ import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.actionbarsherlock.app.ActionBar;
 import com.actionbarsherlock.app.SherlockFragmentActivity;
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -74,6 +76,9 @@ public class GenericExplanationActivity  extends SherlockFragmentActivity {
         } else {
             listView.setVisibility(View.GONE);
         }
+        
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
     
     public class ExplanationListAdapterView extends ArrayAdapter<String> {

+ 2 - 0
src/com/owncloud/android/ui/activity/LogHistoryActivity.java

@@ -34,6 +34,7 @@ import com.actionbarsherlock.app.SherlockPreferenceActivity;
 import com.actionbarsherlock.view.MenuItem;
 import com.owncloud.android.R;
 import com.owncloud.android.ui.adapter.LogListAdapter;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.FileStorageUtils;
 
 
@@ -50,6 +51,7 @@ public class LogHistoryActivity extends SherlockPreferenceActivity implements On
         setContentView(R.layout.log_send_file);
         setTitle("Log History");
         ActionBar actionBar = getSherlock().getActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         actionBar.setDisplayHomeAsUpEnabled(true);
         ListView listView = (ListView) findViewById(android.R.id.list);
         Button deleteHistoryButton = (Button) findViewById(R.id.deleteLogHistoryButton);

+ 4 - 1
src/com/owncloud/android/ui/activity/PinCodeActivity.java

@@ -18,8 +18,10 @@ package com.owncloud.android.ui.activity;
 
 import java.util.Arrays;
 
+import com.actionbarsherlock.app.ActionBar;
 import com.actionbarsherlock.app.SherlockFragmentActivity;
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 import android.app.AlertDialog;
 import android.content.DialogInterface;
@@ -121,7 +123,8 @@ public class PinCodeActivity extends SherlockFragmentActivity {
         }
         setTextListeners();
         
-        
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
     
 

+ 2 - 8
src/com/owncloud/android/ui/activity/Preferences.java

@@ -17,8 +17,6 @@
  */
 package com.owncloud.android.ui.activity;
 
-import java.util.Vector;
-
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
@@ -38,8 +36,8 @@ import com.actionbarsherlock.view.Menu;
 import com.actionbarsherlock.view.MenuItem;
 import com.owncloud.android.R;
 import com.owncloud.android.db.DbHandler;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
-import com.owncloud.android.utils.OwnCloudSession;
 
 
 /**
@@ -51,15 +49,11 @@ import com.owncloud.android.utils.OwnCloudSession;
 public class Preferences extends SherlockPreferenceActivity {
     
     private static final String TAG = "OwnCloudPreferences";
-    private final int mNewSession = 47;
-    private final int mEditSession = 48;
     private DbHandler mDbHandler;
-    private Vector<OwnCloudSession> mSessions;
     private CheckBoxPreference pCode;
     //private CheckBoxPreference pLogging;
     //private Preference pLoggingHistory;
     private Preference pAboutApp;
-    private int mSelectedMenuItem;
 
 
     @SuppressWarnings("deprecation")
@@ -67,10 +61,10 @@ public class Preferences extends SherlockPreferenceActivity {
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mDbHandler = new DbHandler(getBaseContext());
-        mSessions = new Vector<OwnCloudSession>();
         addPreferencesFromResource(R.xml.preferences);
         //populateAccountList();
         ActionBar actionBar = getSherlock().getActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         actionBar.setDisplayHomeAsUpEnabled(true);
         
         Preference p = findPreference("manage_account");

+ 2 - 0
src/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -40,6 +40,7 @@ import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
 import com.owncloud.android.ui.fragment.ConfirmationDialogFragment;
 import com.owncloud.android.ui.fragment.LocalFileListFragment;
 import com.owncloud.android.ui.fragment.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.FileStorageUtils;
 import com.owncloud.android.utils.Log_OC;
 
@@ -111,6 +112,7 @@ public class UploadFilesActivity extends FileActivity implements
             
         // Action bar setup
         ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         actionBar.setHomeButtonEnabled(true);   // mandatory since Android ICS, according to the official documentation
         actionBar.setDisplayHomeAsUpEnabled(mCurrentDir != null && mCurrentDir.getName() != null);
         actionBar.setDisplayShowTitleEnabled(false);

+ 2 - 1
src/com/owncloud/android/ui/dialog/ChangelogDialog.java

@@ -25,6 +25,7 @@ import android.webkit.WebView;
 
 import com.actionbarsherlock.app.SherlockDialogFragment;
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -63,7 +64,7 @@ public class ChangelogDialog extends SherlockDialogFragment {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         
         Dialog dialog = builder.setView(webview)
-                                .setIcon(R.drawable.icon)
+                                .setIcon(DisplayUtils.getSeasonalIconId())
                                 //.setTitle(R.string.whats_new)
                                 .setPositiveButton(R.string.common_ok,
                                         new DialogInterface.OnClickListener() {

+ 7 - 6
src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java

@@ -28,6 +28,7 @@ import android.support.v4.app.FragmentTransaction;
 import com.actionbarsherlock.app.SherlockDialogFragment;
 import com.actionbarsherlock.app.SherlockFragmentActivity;
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -59,7 +60,7 @@ public class ConflictsResolveDialog extends SherlockDialogFragment {
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         String remotepath = getArguments().getString("remotepath");
         return new AlertDialog.Builder(getSherlockActivity())
-                   .setIcon(R.drawable.icon)
+                   .setIcon(DisplayUtils.getSeasonalIconId())
                    .setTitle(R.string.conflict_title)
                    .setMessage(String.format(getString(R.string.conflict_message), remotepath))
                    .setPositiveButton(R.string.conflict_overwrite,
@@ -68,7 +69,7 @@ public class ConflictsResolveDialog extends SherlockDialogFragment {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                if (mListener != null)
-                                   mListener.ConflictDecisionMade(Decision.OVERWRITE);
+                                   mListener.conflictDecisionMade(Decision.OVERWRITE);
                            }
                        })
                    .setNeutralButton(R.string.conflict_keep_both,
@@ -76,7 +77,7 @@ public class ConflictsResolveDialog extends SherlockDialogFragment {
                             @Override
                             public void onClick(DialogInterface dialog, int which) {
                                 if (mListener != null)
-                                    mListener.ConflictDecisionMade(Decision.KEEP_BOTH);
+                                    mListener.conflictDecisionMade(Decision.KEEP_BOTH);
                             }
                         })
                    .setNegativeButton(R.string.conflict_dont_upload,
@@ -84,7 +85,7 @@ public class ConflictsResolveDialog extends SherlockDialogFragment {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                if (mListener != null)
-                                   mListener.ConflictDecisionMade(Decision.CANCEL);
+                                   mListener.conflictDecisionMade(Decision.CANCEL);
                            }
                    })
                    .create();
@@ -112,10 +113,10 @@ public class ConflictsResolveDialog extends SherlockDialogFragment {
     
     @Override
     public void onCancel(DialogInterface dialog) {
-        mListener.ConflictDecisionMade(Decision.CANCEL);
+        mListener.conflictDecisionMade(Decision.CANCEL);
     }
     
     public interface OnConflictDecisionMadeListener {
-        public void ConflictDecisionMade(Decision decision);
+        public void conflictDecisionMade(Decision decision);
     }
 }

+ 2 - 0
src/com/owncloud/android/ui/preview/PreviewImageActivity.java

@@ -47,6 +47,7 @@ import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.fragment.FileFragment;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.Log_OC;
 
 
@@ -90,6 +91,7 @@ public class PreviewImageActivity extends FileActivity implements FileFragment.C
         setContentView(R.layout.preview_image_activity);
         
         ActionBar actionBar = getSupportActionBar();
+        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         actionBar.setDisplayHomeAsUpEnabled(true);
         actionBar.hide();
         

+ 10 - 1
src/com/owncloud/android/utils/DisplayUtils.java

@@ -19,13 +19,13 @@
 package com.owncloud.android.utils;
 
 import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
 
 import com.owncloud.android.R;
-import com.owncloud.android.R.drawable;
 
 /**
  * A helper class for some string operations.
@@ -190,4 +190,13 @@ public class DisplayUtils {
         Date date = new Date(milliseconds);
         return date.toLocaleString();
     }
+    
+    
+    public static int getSeasonalIconId() {
+        if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354) {
+            return R.drawable.winter_holidays_icon;
+        } else {
+            return R.drawable.icon;
+        }
+    }
 }