/* * Copyright (C) 2016 Andrew Lord * * 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.github.andrewlord1990.snackbarbuilder.toastbuilder; import android.annotation.SuppressLint; import android.content.Context; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; import android.widget.Toast; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; @Implements(Toast.class) public class CustomShadowToast { /** * Implementation of makeText that actually shows the message. */ @Implementation @SuppressLint("ShowToast") public static Toast makeText(Context context, CharSequence text, int duration) { LinearLayout layout = new LinearLayout(context); layout.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); TextView messageView = new TextView(context); layout.setLayoutParams( new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); messageView.setId(android.R.id.message); layout.addView(messageView); Toast toast = new Toast(context); toast.setView(layout); toast.setDuration(duration); toast.setText(text); return toast; } }