1bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov/* 2bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * Copyright (C) 2016 The Android Open Source Project 3bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * 4bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * Licensed under the Apache License, Version 2.0 (the "License"); 5bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * you may not use this file except in compliance with the License. 6bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * You may obtain a copy of the License at 7bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * 8bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * http://www.apache.org/licenses/LICENSE-2.0 9bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * 10bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * Unless required by applicable law or agreed to in writing, software 11bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * distributed under the License is distributed on an "AS IS" BASIS, 12bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * See the License for the specific language governing permissions and 14bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * limitations under the License. 15bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov */ 16bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 17bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovpackage android.support.percent; 18bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 19bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport android.support.test.espresso.UiController; 20bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport android.support.test.espresso.ViewAction; 21bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport android.support.v4.view.ViewCompat; 22bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport android.view.View; 23bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport org.hamcrest.Matcher; 24bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 25bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovimport static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; 26bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 27bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikovpublic class LayoutDirectionActions { 28bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov /** 29bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov * Sets layout direction on the view. 30bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov */ 31bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov public static ViewAction setLayoutDirection(final int layoutDirection) { 32bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov return new ViewAction() { 33bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov @Override 34bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov public Matcher<View> getConstraints() { 35bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov return isDisplayed(); 36bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov } 37bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 38bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov @Override 39bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov public String getDescription() { 40bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov return "set layout direction"; 41bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov } 42bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 43bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov @Override 44bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov public void perform(UiController uiController, View view) { 45bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov uiController.loopMainThreadUntilIdle(); 46bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 47bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov ViewCompat.setLayoutDirection(view, layoutDirection); 48bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov 49bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov uiController.loopMainThreadUntilIdle(); 50bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov } 51bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov }; 52bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov } 53bcbbc065a6ff7a0cd2ebb0b29cc9298a6fce77e5Kirill Grouchnikov} 54