| /* | |
| * Copyright (C) 2015 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| package com.android.documentsui.ui; | |
| import android.app.Activity; | |
| import android.view.Gravity; | |
| import android.view.View; | |
| import android.widget.TextView; | |
| import androidx.annotation.StringRes; | |
| import com.android.documentsui.R; | |
| import com.android.documentsui.base.Shared; | |
| import com.google.android.material.snackbar.Snackbar; | |
| import java.util.function.Consumer; | |
| public final class Snackbars { | |
| private Snackbars() {} | |
| public static final void showDocumentsClipped(Activity activity, int docCount) { | |
| String msg = Shared.getQuantityString( | |
| activity, R.plurals.clipboard_files_clipped, docCount); | |
| Snackbars.makeSnackbar(activity, msg, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showMove(Activity activity, int docCount) { | |
| CharSequence message = Shared.getQuantityString(activity, R.plurals.move_begin, docCount); | |
| makeSnackbar(activity, message, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showCopy(Activity activity, int docCount) { | |
| CharSequence message = Shared.getQuantityString(activity, R.plurals.copy_begin, docCount); | |
| makeSnackbar(activity, message, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showCompress(Activity activity, int docCount) { | |
| CharSequence message = Shared.getQuantityString(activity, R.plurals.compress_begin, docCount); | |
| makeSnackbar(activity, message, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showExtract(Activity activity, int docCount) { | |
| CharSequence message = Shared.getQuantityString(activity, R.plurals.extract_begin, docCount); | |
| makeSnackbar(activity, message, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showDelete(Activity activity, int docCount) { | |
| CharSequence message = Shared.getQuantityString(activity, R.plurals.deleting, docCount); | |
| makeSnackbar(activity, message, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showOperationRejected(Activity activity) { | |
| makeSnackbar(activity, R.string.file_operation_rejected, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showOperationFailed(Activity activity) { | |
| makeSnackbar(activity, R.string.file_operation_error, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showRenameFailed(Activity activity) { | |
| makeSnackbar(activity, R.string.rename_error, Snackbar.LENGTH_LONG).show(); | |
| } | |
| public static final void showInspectorError(Activity activity) { | |
| //Document Inspector uses a different view from other files app activities. | |
| final View view = activity.findViewById(R.id.inspector_root); | |
| Snackbar.make(view, R.string.inspector_load_error, Snackbar.LENGTH_INDEFINITE).show(); | |
| } | |
| public static final void showCustomTextWithImage(Activity activity, String text, int imageRes) { | |
| Snackbar snackbar = makeSnackbar(activity, text, Snackbar.LENGTH_LONG); | |
| View snackbarLayout = snackbar.getView(); | |
| TextView textView = (TextView)snackbarLayout.findViewById( | |
| com.google.android.material.R.id.snackbar_text); | |
| textView.setGravity(Gravity.CENTER_HORIZONTAL); | |
| textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); | |
| textView.setCompoundDrawablesWithIntrinsicBounds(imageRes, 0, 0, 0); | |
| snackbar.show(); | |
| } | |
| public static final Snackbar makeSnackbarWithAction(Activity activity, int docCount, | |
| CharSequence message, int duration, CharSequence actionText, | |
| Consumer<View> action, final Snackbar.Callback callback) { | |
| return makeSnackbar(activity, message, duration) | |
| .setAction(actionText, action::accept) | |
| .addCallback(callback); | |
| } | |
| public static final Snackbar makeSnackbar(Activity activity, @StringRes int messageId, | |
| int duration) { | |
| return Snackbars.makeSnackbar( | |
| activity, activity.getResources().getText(messageId), duration); | |
| } | |
| public static final Snackbar makeSnackbar( | |
| Activity activity, CharSequence message, int duration) { | |
| final View view = activity.findViewById(R.id.container_save); | |
| return Snackbar.make(view, message, duration); | |
| } | |
| } |