1ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen/* 2ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * Copyright (C) 2014 The Android Open Source Project 3ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * 4ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * Licensed under the Apache License, Version 2.0 (the "License"); 5ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * you may not use this file except in compliance with the License. 6ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * You may obtain a copy of the License at 7ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * 8ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * http://www.apache.org/licenses/LICENSE-2.0 9ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * 10ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * Unless required by applicable law or agreed to in writing, software 11ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * distributed under the License is distributed on an "AS IS" BASIS, 12ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * See the License for the specific language governing permissions and 14ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen * limitations under the License. 15ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen */ 16ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 17ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenpackage android.support.v4.app; 18ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 19ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport android.app.RemoteInput; 20ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport android.content.Intent; 21ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenimport android.os.Bundle; 22ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 23ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazenclass RemoteInputCompatApi20 { 24ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen static RemoteInputCompatBase.RemoteInput[] toCompat(RemoteInput[] srcArray, 25ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInputCompatBase.RemoteInput.Factory factory) { 26ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen if (srcArray == null) { 27ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen return null; 28ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 29ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInputCompatBase.RemoteInput[] result = factory.newArray(srcArray.length); 30ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen for (int i = 0; i < srcArray.length; i++) { 31ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInput src = srcArray[i]; 32ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen result[i] = factory.build(src.getResultKey(), src.getLabel(), src.getChoices(), 33ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen src.getAllowFreeFormInput(), src.getExtras()); 34ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 35ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen return result; 36ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 37ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 38ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen static RemoteInput[] fromCompat(RemoteInputCompatBase.RemoteInput[] srcArray) { 39ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen if (srcArray == null) { 40ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen return null; 41ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 42ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInput[] result = new RemoteInput[srcArray.length]; 43ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen for (int i = 0; i < srcArray.length; i++) { 44ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInputCompatBase.RemoteInput src = srcArray[i]; 45ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen result[i] = new RemoteInput.Builder(src.getResultKey()) 46ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen .setLabel(src.getLabel()) 47ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen .setChoices(src.getChoices()) 48ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen .setAllowFreeFormInput(src.getAllowFreeFormInput()) 492bb98d48fdaf79a2bbd9d247da81a2bb9834dfc7Griff Hazen .addExtras(src.getExtras()) 50ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen .build(); 51ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 52ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen return result; 53ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 54ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 55ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen static Bundle getResultsFromIntent(Intent intent) { 56ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen return RemoteInput.getResultsFromIntent(intent); 57ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 58ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen 59ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen static void addResultsToIntent(RemoteInputCompatBase.RemoteInput[] remoteInputs, 60ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen Intent intent, Bundle results) { 61ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen RemoteInput.addResultsToIntent(fromCompat(remoteInputs), intent, results); 62ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen } 63ce16e4276c2f61109a23b3f6707cfcd87b07c735Griff Hazen} 64