1 /* 2 * Copyright 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.example.android.basicpermissions.util 18 19 import android.support.design.widget.Snackbar 20 import android.view.View 21 22 fun View.showSnackbar(msgId: Int, length: Int) { 23 showSnackbar(context.getString(msgId), length) 24 } 25 26 fun View.showSnackbar(msg: String, length: Int) { 27 showSnackbar(msg, length, null, {}) 28 } 29 30 fun View.showSnackbar( 31 msgId: Int, 32 length: Int, 33 actionMessageId: Int, 34 action: (View) -> Unit 35 ) { 36 showSnackbar(context.getString(msgId), length, context.getString(actionMessageId), action) 37 } 38 39 fun View.showSnackbar( 40 msg: String, 41 length: Int, 42 actionMessage: CharSequence?, 43 action: (View) -> Unit 44 ) { 45 val snackbar = Snackbar.make(this, msg, length) 46 if (actionMessage != null) { 47 snackbar.setAction(actionMessage) { 48 action(this) 49 }.show() 50 } 51 } 52