瀏覽代碼

CR: move Snackbar helper to DisplayUtils

AndyScherzinger 7 年之前
父節點
當前提交
6e480449f4

+ 2 - 13
src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java

@@ -2225,7 +2225,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     @Override
     public void onFailedSavingCertificate() {
         dismissDialog(SAML_DIALOG_TAG);
-        showSnackMessage(R.string.ssl_validator_not_saved);
+        DisplayUtils.showSnackMessage(this, R.string.ssl_validator_not_saved);
     }
 
     @Override
@@ -2303,20 +2303,9 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         dialog.show(ft, CREDENTIALS_DIALOG_TAG);
 
         if (!mIsFirstAuthAttempt) {
-            showSnackMessage(R.string.saml_authentication_wrong_pass);
+            DisplayUtils.showSnackMessage(this, R.string.saml_authentication_wrong_pass);
         } else {
             mIsFirstAuthAttempt = false;
         }
     }
-
-    /**
-     * For retrieving the clicking on authentication cancel button
-     */
-    public void doNegativeAuthenticatioDialogClick() {
-        mIsFirstAuthAttempt = true;
-    }
-
-    private void showSnackMessage(int messageResource) {
-        Snackbar.make(findViewById(android.R.id.content), messageResource, Snackbar.LENGTH_LONG).show();
-    }
 }

+ 6 - 11
src/main/java/com/owncloud/android/ui/activity/ErrorsWhileCopyingHandlerActivity.java

@@ -276,20 +276,15 @@ public class ErrorsWhileCopyingHandlerActivity  extends AppCompatActivity implem
             
             if (result) {
                 // nothing else to do in this activity
-                Toast t = Toast.makeText(ErrorsWhileCopyingHandlerActivity.this,
-                        getString(R.string.foreign_files_success), Toast.LENGTH_LONG);
-                t.show();
+                Toast.makeText(ErrorsWhileCopyingHandlerActivity.this,
+                        getString(R.string.foreign_files_success), Toast.LENGTH_LONG)
+                        .show();
                 finish();
                 
             } else {
-                Snackbar snackbar = Snackbar.make(
-                        findViewById(android.R.id.content),
-                        R.string.foreign_files_fail,
-                        Snackbar.LENGTH_LONG
-                );
-                snackbar.show();
+                Snackbar.make(findViewById(android.R.id.content),R.string.foreign_files_fail,Snackbar.LENGTH_LONG)
+                        .show();
             }
         }
-    }    
-
+    }
 }

+ 11 - 14
src/main/java/com/owncloud/android/ui/activity/FileActivity.java

@@ -31,7 +31,6 @@ import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.support.design.widget.Snackbar;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
@@ -68,6 +67,7 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;
 import com.owncloud.android.ui.helpers.FileOperationsHelper;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 
 
@@ -306,7 +306,9 @@ public abstract class FileActivity extends DrawerActivity
             requestCredentialsUpdate(this);
 
             if (result.getCode() == ResultCode.UNAUTHORIZED) {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
             }
 
         } else if (!result.isSuccess() && ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(result.getCode())) {
@@ -324,7 +326,9 @@ public abstract class FileActivity extends DrawerActivity
                 updateFileFromDB();
 
             } else if (result.getCode() != ResultCode.CANCELLED) {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
             }
 
         } else if (operation instanceof SynchronizeFileOperation) {
@@ -335,7 +339,9 @@ public abstract class FileActivity extends DrawerActivity
                 updateFileFromDB();
 
             } else {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
             }
         }
     }
@@ -397,7 +403,7 @@ public abstract class FileActivity extends DrawerActivity
             startActivityForResult(updateAccountCredentials, REQUEST_CODE__UPDATE_CREDENTIALS);
 
         } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) {
-            showSnackMessage(getString(R.string.auth_account_does_not_exist));
+            DisplayUtils.showSnackMessage(this, R.string.auth_account_does_not_exist);
         }
 
     }
@@ -575,13 +581,4 @@ public abstract class FileActivity extends DrawerActivity
     public void onCancelCertificate() {
         // nothing to do
     }
-
-    /**
-     * Show a temporary message in a Snackbar bound to the content view
-     *
-     * @param message Message to show.
-     */
-    public void showSnackMessage(String message) {
-        Snackbar.make(findViewById(android.R.id.content),message,Snackbar.LENGTH_LONG).show();
-    }
 }

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

@@ -25,6 +25,7 @@ import android.Manifest;
 import android.accounts.Account;
 import android.accounts.AuthenticatorException;
 import android.annotation.TargetApi;
+import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -98,6 +99,7 @@ import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewTextFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 import com.owncloud.android.utils.DataHolderUtil;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 import com.owncloud.android.utils.MimeTypeUtil;
 import com.owncloud.android.utils.PermissionUtil;
@@ -275,6 +277,10 @@ public class FileDisplayActivity extends HookActivity
         upgradeNotificationForInstantUpload();
     }
 
+    private Activity getActivity() {
+        return this;
+    }
+
     /**
      * For Android 7+.
      * Opens a pop up info for the new instant upload and disabled the old instant upload.
@@ -920,7 +926,7 @@ public class FileDisplayActivity extends HookActivity
 
         } else {
             Log_OC.d(TAG, "User clicked on 'Update' with no selection");
-            showSnackMessage(getString(R.string.filedisplay_no_file_selected));
+            DisplayUtils.showSnackMessage(this, R.string.filedisplay_no_file_selected);
         }
     }
 
@@ -1211,12 +1217,10 @@ public class FileDisplayActivity extends HookActivity
 
                         if (currentDir == null) {
                             // current folder was removed from the server
-                            showSnackMessage(
-                                    String.format(
-                                            getString(R.string.
-                                                    sync_current_folder_was_removed),
-                                            synchFolderRemotePath
-                                    )
+                            DisplayUtils.showSnackMessage(
+                                    getActivity(),
+                                    R.string.sync_current_folder_was_removed,
+                                    synchFolderRemotePath
                             );
 
                             browseToRoot();
@@ -1356,11 +1360,10 @@ public class FileDisplayActivity extends HookActivity
                     }
                     if (renamedInUpload) {
                         String newName = (new File(uploadedRemotePath)).getName();
-                        showSnackMessage(
-                                String.format(
-                                        getString(R.string.filedetails_renamed_in_upload_msg),
-                                        newName
-                                )
+                        DisplayUtils.showSnackMessage(
+                                getActivity(),
+                                R.string.filedetails_renamed_in_upload_msg,
+                                newName
                         );
                     }
                     if (uploadWasFine || getFile().fileExists()) {
@@ -1660,7 +1663,9 @@ public class FileDisplayActivity extends HookActivity
      */
     private void onRemoveFileOperationFinish(RemoveFileOperation operation,
                                              RemoteOperationResult result) {
-        showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+        DisplayUtils.showSnackMessage(
+                this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+        );
 
         if (result.isSuccess()) {
             OCFile removedFile = operation.getFile();
@@ -1698,7 +1703,9 @@ public class FileDisplayActivity extends HookActivity
             refreshListOfFilesFragment(false);
         } else {
             try {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
 
             } catch (NotFoundException e) {
                 Log_OC.e(TAG, "Error while trying to show fail message ", e);
@@ -1718,7 +1725,9 @@ public class FileDisplayActivity extends HookActivity
             refreshListOfFilesFragment(false);
         } else {
             try {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
 
             } catch (NotFoundException e) {
                 Log_OC.e(TAG, "Error while trying to show fail message ", e);
@@ -1769,7 +1778,9 @@ public class FileDisplayActivity extends HookActivity
             }
 
         } else {
-            showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+            DisplayUtils.showSnackMessage(
+                    this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+            );
 
             if (result.isSslRecoverableException()) {
                 mLastSslUntrustedServerResult = result;
@@ -1802,7 +1813,9 @@ public class FileDisplayActivity extends HookActivity
             refreshListOfFilesFragment(false);
         } else {
             try {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
 
             } catch (NotFoundException e) {
                 Log_OC.e(TAG, "Error while trying to show fail message ", e);

+ 13 - 10
src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java

@@ -21,6 +21,7 @@ package com.owncloud.android.ui.activity;
 
 import android.accounts.Account;
 import android.accounts.AuthenticatorException;
+import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -54,6 +55,7 @@ import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.utils.AnalyticsUtils;
 import com.owncloud.android.utils.DataHolderUtil;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 import com.owncloud.android.utils.ThemeUtils;
 
@@ -150,6 +152,10 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         }
     }
 
+    private Activity getActivity() {
+        return this;
+    }
+
     private void createFragments() {
         OCFileListFragment listOfFiles = new OCFileListFragment();
         Bundle args = new Bundle();
@@ -191,7 +197,6 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         Log_OC.e(TAG, "Access to unexisting list of files fragment!!");
         return null;
     }
-
     
     /**
      * {@inheritDoc}
@@ -204,7 +209,6 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         updateNavigationElementsInActionBar();
         // Sync Folder
         startSyncFolderOperation(directory, false);
-        
     }
 
     @Override
@@ -418,7 +422,9 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
             refreshListOfFilesFragment(false);
         } else {
             try {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this,ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
 
             } catch (NotFoundException e) {
                 Log_OC.e(TAG, "Error while trying to show fail message " , e);
@@ -426,8 +432,6 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         }
     }
     
-    
-    
     private class SyncBroadcastReceiver extends BroadcastReceiver {
 
         /**
@@ -458,11 +462,10 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     
                         if (currentDir == null) {
                             // current folder was removed from the server
-                            showSnackMessage(
-                                    String.format(
-                                            getString(R.string.sync_current_folder_was_removed),
-                                            getCurrentFolder().getFileName()
-                                    )
+                            DisplayUtils.showSnackMessage(
+                                    getActivity(),
+                                    R.string.sync_current_folder_was_removed,
+                                    getCurrentFolder().getFileName()
                             );
                             browseToRoot();
                             

+ 13 - 16
src/main/java/com/owncloud/android/ui/activity/Preferences.java

@@ -25,6 +25,7 @@ package com.owncloud.android.ui.activity;
 import android.accounts.Account;
 import android.accounts.AuthenticatorException;
 import android.accounts.OperationCanceledException;
+import android.app.Activity;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
@@ -46,7 +47,6 @@ import android.preference.PreferenceManager;
 import android.preference.PreferenceScreen;
 import android.preference.SwitchPreference;
 import android.support.annotation.LayoutRes;
-import android.support.design.widget.Snackbar;
 import android.support.v4.content.res.ResourcesCompat;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatDelegate;
@@ -70,6 +70,7 @@ import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.utils.AnalyticsUtils;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 import java.io.IOException;
@@ -257,6 +258,7 @@ public class Preferences extends PreferenceActivity
         if (fPrint != null) {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                 if (FingerprintActivity.isFingerprintCapable(MainApp.getAppContext()) && fPrintEnabled) {
+                    final Activity activity = this;
                     fPrint.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                         @Override
                         public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -272,7 +274,7 @@ public class Preferences extends PreferenceActivity
                                     return true;
                                 } else {
                                     if (incoming) {
-                                        showSnackMessage(R.string.prefs_fingerprint_notsetup);
+                                        DisplayUtils.showSnackMessage(activity, R.string.prefs_fingerprint_notsetup);
                                         fPrint.setChecked(false);
                                     }
                                     SharedPreferences appPrefs =
@@ -355,6 +357,7 @@ public class Preferences extends PreferenceActivity
         Preference pCalendarContacts = findPreference("calendar_contacts");
         if (pCalendarContacts != null) {
             if (calendarContactsEnabled) {
+                final Activity activity = this;
                 pCalendarContacts.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                     @Override
                     public boolean onPreferenceClick(Preference preference) {
@@ -362,7 +365,10 @@ public class Preferences extends PreferenceActivity
                             launchDavDroidLogin();
                         } catch (Throwable t) {
                             Log_OC.e(TAG, "Base Uri for account could not be resolved to call DAVdroid!", t);
-                            showSnackMessage(R.string.prefs_calendar_contacts_address_resolve_error);
+                            DisplayUtils.showSnackMessage(
+                                    activity,
+                                    R.string.prefs_calendar_contacts_address_resolve_error
+                            );
                         }
                         return true;
                     }
@@ -667,7 +673,7 @@ public class Preferences extends PreferenceActivity
                         Uri.parse("https://f-droid.org/repository/browse/?fdid=at.bitfire.davdroid"));
                 startActivity(downloadIntent);
 
-                showSnackMessage(R.string.prefs_calendar_contacts_no_store_error);
+                DisplayUtils.showSnackMessage(this, R.string.prefs_calendar_contacts_no_store_error);
             }
         }
     }
@@ -739,7 +745,7 @@ public class Preferences extends PreferenceActivity
                 }
                 appPrefs.putBoolean(PassCodeActivity.PREFERENCE_SET_PASSCODE, true);
                 appPrefs.apply();
-                showSnackMessage(R.string.pass_code_stored);
+                DisplayUtils.showSnackMessage(this, R.string.pass_code_stored);
             }
         } else if (requestCode == ACTION_CONFIRM_PASSCODE && resultCode == RESULT_OK) {
             if (data.getBooleanExtra(PassCodeActivity.KEY_CHECK_RESULT, false)) {
@@ -749,10 +755,10 @@ public class Preferences extends PreferenceActivity
                 appPrefs.putBoolean(PassCodeActivity.PREFERENCE_SET_PASSCODE, false);
                 appPrefs.apply();
 
-                showSnackMessage(R.string.pass_code_removed);
+                DisplayUtils.showSnackMessage(this, R.string.pass_code_removed);
             }
         } else if (requestCode == ACTION_REQUEST_CODE_DAVDROID_SETUP && resultCode == RESULT_OK) {
-            showSnackMessage(R.string.prefs_calendar_contacts_sync_setup_successful);
+            DisplayUtils.showSnackMessage(this, R.string.prefs_calendar_contacts_sync_setup_successful);
         }
     }
 
@@ -899,13 +905,4 @@ public class Preferences extends PreferenceActivity
     public void onCancelMigration() {
         // Migration was canceled so we don't do anything
     }
-
-    /**
-     * Show a temporary message in a Snackbar bound to the content view
-     *
-     * @param messageResource Message to show.
-     */
-    private void showSnackMessage(int messageResource) {
-        Snackbar.make(findViewById(android.R.id.content), messageResource, Snackbar.LENGTH_LONG).show();
-    }
 }

+ 13 - 6
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -26,6 +26,7 @@ package com.owncloud.android.ui.activity;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorException;
+import android.app.Activity;
 import android.app.Dialog;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -93,6 +94,7 @@ import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
 import com.owncloud.android.ui.fragment.TaskRetainerFragment;
 import com.owncloud.android.ui.helpers.UriUploader;
 import com.owncloud.android.utils.DataHolderUtil;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 import com.owncloud.android.utils.FileStorageUtils;
 import com.owncloud.android.utils.ThemeUtils;
@@ -211,6 +213,10 @@ public class ReceiveExternalFilesActivity extends FileActivity
         dialog.show(getSupportFragmentManager(), null);
     }
 
+    private Activity getActivity() {
+        return this;
+    }
+
     @Override
     protected void onAccountSet(boolean stateWasRecovered) {
         super.onAccountSet(mAccountWasRestored);
@@ -975,7 +981,9 @@ public class ReceiveExternalFilesActivity extends FileActivity
             populateDirectoryList();
         } else {
             try {
-                showSnackMessage(ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
+                DisplayUtils.showSnackMessage(
+                        this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources())
+                );
 
             } catch (NotFoundException e) {
                 Log_OC.e(TAG, "Error while trying to show fail message ", e);
@@ -1104,11 +1112,10 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
                         if (currentDir == null) {
                             // current folder was removed from the server
-                            showSnackMessage(
-                                    String.format(
-                                            getString(R.string.sync_current_folder_was_removed),
-                                            getCurrentFolder().getFileName()
-                                    )
+                            DisplayUtils.showSnackMessage(
+                                    getActivity(),
+                                    R.string.sync_current_folder_was_removed,
+                                    getCurrentFolder().getFileName()
                             );
                             browseToRoot();
 

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -167,7 +167,7 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
         /// TODO is this path still active?
         File f = new File(file.getLocalPath());
         if(!f.exists()) {
-            showSnackMessage(getString(R.string.local_file_not_found_toast));
+            DisplayUtils.showSnackMessage(this, R.string.local_file_not_found_toast);
         } else {
             openFileWithDefault(file.getLocalPath());
         }
@@ -188,7 +188,7 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
         try {
             startActivity(myIntent);
         } catch (ActivityNotFoundException e) {
-            showSnackMessage(getString(R.string.file_list_no_app_for_file_type));
+            DisplayUtils.showSnackMessage(this, R.string.file_list_no_app_for_file_type);
             Log_OC.i(TAG, "Could not find app for sending log history.");
         }        
     }

+ 5 - 19
src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java

@@ -24,7 +24,6 @@ import android.app.Dialog;
 import android.content.DialogInterface;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
@@ -37,6 +36,7 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.ui.activity.ComponentsGetter;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 /**
@@ -116,20 +116,19 @@ public class CreateFolderDialogFragment
                         .getText().toString().trim();
             
             if (newFolderName.length() <= 0) {
-                showSnackMessage(R.string.filename_empty);
+                DisplayUtils.showSnackMessage(getActivity(), R.string.filename_empty);
                 return;
             }
             boolean serverWithForbiddenChars = ((ComponentsGetter)getActivity()).
                     getFileOperationsHelper().isVersionWithForbiddenCharacters();
 
             if (!FileUtils.isValidName(newFolderName, serverWithForbiddenChars)) {
-                int messageId = 0;
+
                 if (serverWithForbiddenChars) {
-                    messageId = R.string.filename_forbidden_charaters_from_server;
+                    DisplayUtils.showSnackMessage(getActivity(), R.string.filename_forbidden_charaters_from_server);
                 } else {
-                    messageId = R.string.filename_forbidden_characters;
+                    DisplayUtils.showSnackMessage(getActivity(), R.string.filename_forbidden_characters);
                 }
-                showSnackMessage(messageId);
 
                 return;
             }
@@ -140,17 +139,4 @@ public class CreateFolderDialogFragment
                 getFileOperationsHelper().createFolder(path, false);
         }
     }
-
-    /**
-     * Show a temporary message in a Snackbar bound to the content view of the parent Activity
-     *
-     * @param messageResource Message to show.
-     */
-    private void showSnackMessage(int messageResource) {
-        Snackbar.make(
-                getActivity().findViewById(android.R.id.content),
-                messageResource,
-                Snackbar.LENGTH_LONG
-        ).show();
-    }
 }

+ 6 - 19
src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java

@@ -30,7 +30,6 @@ import android.app.Dialog;
 import android.content.DialogInterface;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
@@ -43,6 +42,7 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.ui.activity.ComponentsGetter;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 
@@ -130,7 +130,7 @@ public class RenameFileDialogFragment
                     .getText().toString().trim();
             
             if (newFileName.length() <= 0) {
-                showSnackMessage(R.string.filename_empty);
+                DisplayUtils.showSnackMessage(getActivity(), R.string.filename_empty);
                 return;
             }
 
@@ -138,13 +138,13 @@ public class RenameFileDialogFragment
                     getFileOperationsHelper().isVersionWithForbiddenCharacters();
 
             if (!FileUtils.isValidName(newFileName, serverWithForbiddenChars)) {
-                int messageId = 0;
+
                 if (serverWithForbiddenChars) {
-                    messageId = R.string.filename_forbidden_charaters_from_server;
+                    DisplayUtils.showSnackMessage(getActivity(), R.string.filename_forbidden_charaters_from_server);
                 } else {
-                    messageId = R.string.filename_forbidden_characters;
+                    DisplayUtils.showSnackMessage(getActivity(), R.string.filename_forbidden_characters);
                 }
-                showSnackMessage(messageId);
+
                 return;
             }
 
@@ -153,17 +153,4 @@ public class RenameFileDialogFragment
 
         }
     }
-
-    /**
-     * Show a temporary message in a Snackbar bound to the content view of the parent Activity
-     *
-     * @param messageResource Message to show.
-     */
-    private void showSnackMessage(int messageResource) {
-        Snackbar.make(
-                getActivity().findViewById(android.R.id.content),
-                messageResource,
-                Snackbar.LENGTH_LONG
-        ).show();
-    }
 }

+ 15 - 23
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -390,16 +390,18 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
      * registers all listeners on all mini FABs.
      */
     private void registerFabListeners() {
-        registerFabUploadListeners();
-        registerFabMkDirListeners();
-        registerFabUploadFromAppListeners();
+        registerFabUploadListeners(getActivity());
+        registerFabMkDirListeners(getActivity());
+        registerFabUploadFromAppListeners(getActivity());
     }
 
     /**
      * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
      * on the Upload mini FAB for the linked action and {@link Snackbar} showing the underlying action.
+     *
+     * @param activity the activity on which's content the {@link Snackbar} will be shown.
      */
-    private void registerFabUploadListeners() {
+    private void registerFabUploadListeners(final Activity activity) {
         getFabUpload().setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -413,7 +415,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         getFabUpload().setOnLongClickListener(new View.OnLongClickListener() {
             @Override
             public boolean onLongClick(View v) {
-                showSnackMessage(R.string.actionbar_upload);
+                DisplayUtils.showSnackMessage(activity, R.string.actionbar_upload);
                 return true;
             }
         });
@@ -422,8 +424,10 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     /**
      * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
      * on the 'Create Dir' mini FAB for the linked action and {@link Snackbar} showing the underlying action.
+     *
+     * @param activity the activity on which's content the {@link Snackbar} will be shown.
      */
-    private void registerFabMkDirListeners() {
+    private void registerFabMkDirListeners(final Activity activity) {
         getFabMkdir().setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -438,7 +442,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         getFabMkdir().setOnLongClickListener(new View.OnLongClickListener() {
             @Override
             public boolean onLongClick(View v) {
-                showSnackMessage(R.string.actionbar_mkdir);
+                DisplayUtils.showSnackMessage(activity, R.string.actionbar_mkdir);
                 return true;
             }
         });
@@ -447,8 +451,10 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     /**
      * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
      * on the Upload from App mini FAB for the linked action and {@link Snackbar} showing the underlying action.
+     *
+     * @param activity the activity on which's content the {@link Snackbar} will be shown.
      */
-    private void registerFabUploadFromAppListeners() {
+    private void registerFabUploadFromAppListeners(final Activity activity) {
         getFabUploadFromApp().setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -470,7 +476,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         getFabUploadFromApp().setOnLongClickListener(new View.OnLongClickListener() {
             @Override
             public boolean onLongClick(View v) {
-                showSnackMessage(R.string.actionbar_upload_from_apps);
+                DisplayUtils.showSnackMessage(activity, R.string.actionbar_upload_from_apps);
                 return true;
             }
         });
@@ -1659,18 +1665,4 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
             listView.setItemChecked(position, select);
         }
     }
-
-
-    /**
-     * Show a temporary message in a Snackbar bound to the content view of the parent Activity
-     *
-     * @param messageResource Message to show.
-     */
-    private void showSnackMessage(int messageResource) {
-        Snackbar.make(
-                getActivity().findViewById(android.R.id.content),
-                messageResource,
-                Snackbar.LENGTH_LONG
-        ).show();
-    }
 }

+ 7 - 9
src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

@@ -49,6 +49,7 @@ import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.ShareActivity;
 import com.owncloud.android.ui.events.FavoriteEvent;
+import com.owncloud.android.utils.DisplayUtils;
 
 import org.greenrobot.eventbus.EventBus;
 
@@ -182,10 +183,10 @@ public class FileOperationsHelper {
                 try {
                     mFileActivity.startActivity(openFileWithIntent);
                 } catch (ActivityNotFoundException anfe) {
-                    mFileActivity.showSnackMessage(mFileActivity.getString(R.string.file_list_no_app_for_file_type));
+                    DisplayUtils.showSnackMessage(mFileActivity, R.string.file_list_no_app_for_file_type);
                 }
             } else {
-                mFileActivity.showSnackMessage(mFileActivity.getString(R.string.file_list_no_app_for_file_type));
+                DisplayUtils.showSnackMessage(mFileActivity, R.string.file_list_no_app_for_file_type);
             }
 
         } else {
@@ -202,10 +203,7 @@ public class FileOperationsHelper {
     public void shareFileViaLink(OCFile file, String password) {
         if (isSharedSupported()) {
             if (file != null) {
-                mFileActivity.showLoadingDialog(
-                        mFileActivity.getApplicationContext().
-                                getString(R.string.wait_a_moment)
-                );
+                mFileActivity.showLoadingDialog(mFileActivity.getString(R.string.wait_a_moment));
                 Intent service = new Intent(mFileActivity, OperationsService.class);
                 service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
                 service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
@@ -222,7 +220,7 @@ public class FileOperationsHelper {
 
         } else {
             // Show a Message
-            mFileActivity.showSnackMessage(mFileActivity.getString(R.string.share_link_no_support_share_api));
+            DisplayUtils.showSnackMessage(mFileActivity, R.string.share_link_no_support_share_api);
         }
     }
 
@@ -243,7 +241,7 @@ public class FileOperationsHelper {
             }
         } else {
             // Show a Message
-            mFileActivity.showSnackMessage(mFileActivity.getString(R.string.share_link_no_support_share_api));
+            DisplayUtils.showSnackMessage(mFileActivity, R.string.share_link_no_support_share_api);
         }
     }
 
@@ -332,7 +330,7 @@ public class FileOperationsHelper {
 
         } else {
             // Show a Message
-            mFileActivity.showSnackMessage(mFileActivity.getString(R.string.share_link_no_support_share_api));
+            DisplayUtils.showSnackMessage(mFileActivity, R.string.share_link_no_support_share_api);
         }
     }
 

+ 37 - 0
src/main/java/com/owncloud/android/utils/DisplayUtils.java

@@ -38,7 +38,9 @@ import android.graphics.drawable.PictureDrawable;
 import android.net.Uri;
 import android.os.Build;
 import android.support.annotation.NonNull;
+import android.support.annotation.StringRes;
 import android.support.design.widget.BottomNavigationView;
+import android.support.design.widget.Snackbar;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
 import android.text.format.DateUtils;
@@ -623,4 +625,39 @@ public class DisplayUtils {
         }
         return text.toString();
     }
+
+    /**
+     * Show a temporary message in a Snackbar bound to the content view.
+     *
+     * @param activity Activity to which's content view the Snackbar is bound.
+     * @param messageResource Message to show.
+     */
+    public static void showSnackMessage(Activity activity, @StringRes int messageResource) {
+        Snackbar.make(activity.findViewById(android.R.id.content), messageResource, Snackbar.LENGTH_LONG).show();
+    }
+
+    /**
+     * Show a temporary message in a Snackbar bound to the content view.
+     *
+     * @param activity        Activity to which's content view the Snackbar is bound.
+     * @param messageResource Resource id for the format string - message to show.
+     * @param formatArgs      The format arguments that will be used for substitution.
+     */
+    public static void showSnackMessage(Activity activity, @StringRes int messageResource, Object... formatArgs) {
+        Snackbar.make(
+                activity.findViewById(android.R.id.content),
+                String.format(activity.getString(messageResource, formatArgs)),
+                Snackbar.LENGTH_LONG)
+                .show();
+    }
+
+    /**
+     * Show a temporary message in a Snackbar bound to the content view.
+     *
+     * @param activity Activity to which's content view the Snackbar is bound.
+     * @param message Message to show.
+     */
+    public static void showSnackMessage(Activity activity, String message) {
+        Snackbar.make(activity.findViewById(android.R.id.content), message, Snackbar.LENGTH_LONG).show();
+    }
 }