1 #!/usr/bin/python 2 3 # Copyright (C) 2015 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 import os 18 import sys 19 20 print "Generate v4 fragment related code for leanback" 21 22 ####### generate XXXTestFragment classes ####### 23 24 files = ['BrowseTest', 'GuidedStepTest', 'PlaybackTest', 'DetailsTest'] 25 26 cls = ['BrowseTest', 'Background', 'Base', 'BaseRow', 'Browse', 'Details', 'Error', 'Headers', 27 'PlaybackOverlay', 'Rows', 'Search', 'VerticalGrid', 'Branded', 28 'GuidedStepTest', 'GuidedStep', 'RowsTest', 'PlaybackTest', 'Playback', 'Video', 29 'DetailsTest'] 30 31 for w in files: 32 print "copy {}SupportFragment to {}Fragment".format(w, w) 33 34 file = open('java/android/support/v17/leanback/app/{}SupportFragment.java'.format(w), 'r') 35 outfile = open('java/android/support/v17/leanback/app/{}Fragment.java'.format(w), 'w') 36 37 outfile.write("// CHECKSTYLE:OFF Generated code\n") 38 outfile.write("/* This file is auto-generated from {}SupportFragment.java. DO NOT MODIFY. */\n\n".format(w)) 39 40 for line in file: 41 for w in cls: 42 line = line.replace('{}SupportFragment'.format(w), '{}Fragment'.format(w)) 43 line = line.replace('androidx.fragment.app.FragmentActivity', 'android.app.Activity') 44 line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') 45 line = line.replace('FragmentActivity getActivity()', 'Activity getActivity()') 46 outfile.write(line) 47 file.close() 48 outfile.close() 49 50 ####### generate XXXFragmentTestBase classes ####### 51 52 testcls = ['GuidedStep', 'Single'] 53 54 for w in testcls: 55 print "copy {}SupportFrgamentTestBase to {}FragmentTestBase".format(w, w) 56 57 file = open('java/android/support/v17/leanback/app/{}SupportFragmentTestBase.java'.format(w), 'r') 58 outfile = open('java/android/support/v17/leanback/app/{}FragmentTestBase.java'.format(w), 'w') 59 60 outfile.write("// CHECKSTYLE:OFF Generated code\n") 61 outfile.write("/* This file is auto-generated from {}SupportFrgamentTestBase.java. DO NOT MODIFY. */\n\n".format(w)) 62 63 for line in file: 64 for w in cls: 65 line = line.replace('{}SupportFragment'.format(w), '{}Fragment'.format(w)) 66 for w in testcls: 67 line = line.replace('{}SupportFragmentTestBase'.format(w), '{}FragmentTestBase'.format(w)) 68 line = line.replace('{}SupportFragmentTestActivity'.format(w), '{}FragmentTestActivity'.format(w)) 69 line = line.replace('{}TestSupportFragment'.format(w), '{}TestFragment'.format(w)) 70 line = line.replace('androidx.fragment.app.FragmentActivity', 'android.app.Activity') 71 line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') 72 outfile.write(line) 73 file.close() 74 outfile.close() 75 76 ####### generate XXXFragmentTest classes ####### 77 78 testcls = ['Browse', 'GuidedStep', 'VerticalGrid', 'Playback', 'Video', 'Details', 'Rows', 'Headers'] 79 80 for w in testcls: 81 print "copy {}SupporFrgamentTest to {}tFragmentTest".format(w, w) 82 83 file = open('java/android/support/v17/leanback/app/{}SupportFragmentTest.java'.format(w), 'r') 84 outfile = open('java/android/support/v17/leanback/app/{}FragmentTest.java'.format(w), 'w') 85 86 outfile.write("// CHECKSTYLE:OFF Generated code\n") 87 outfile.write("/* This file is auto-generated from {}SupportFragmentTest.java. DO NOT MODIFY. */\n\n".format(w)) 88 89 for line in file: 90 for w in cls: 91 line = line.replace('{}SupportFragment'.format(w), '{}Fragment'.format(w)) 92 for w in testcls: 93 line = line.replace('SingleSupportFragmentTestBase', 'SingleFragmentTestBase') 94 line = line.replace('SingleSupportFragmentTestActivity', 'SingleFragmentTestActivity') 95 line = line.replace('{}SupportFragmentTestBase'.format(w), '{}FragmentTestBase'.format(w)) 96 line = line.replace('{}SupportFragmentTest'.format(w), '{}FragmentTest'.format(w)) 97 line = line.replace('{}SupportFragmentTestActivity'.format(w), '{}FragmentTestActivity'.format(w)) 98 line = line.replace('{}TestSupportFragment'.format(w), '{}TestFragment'.format(w)) 99 line = line.replace('androidx.fragment.app.FragmentActivity', 'android.app.Activity') 100 line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') 101 line = line.replace('extends FragmentActivity', 'extends Activity') 102 line = line.replace('Activity.this.getSupportFragmentManager', 'Activity.this.getFragmentManager') 103 line = line.replace('tivity.getSupportFragmentManager', 'tivity.getFragmentManager') 104 outfile.write(line) 105 file.close() 106 outfile.close() 107 108 109 ####### generate XXXTestActivity classes ####### 110 testcls = ['Browse', 'GuidedStep', 'Single'] 111 112 for w in testcls: 113 print "copy {}SupportFragmentTestActivity to {}FragmentTestActivity".format(w, w) 114 file = open('java/android/support/v17/leanback/app/{}SupportFragmentTestActivity.java'.format(w), 'r') 115 outfile = open('java/android/support/v17/leanback/app/{}FragmentTestActivity.java'.format(w), 'w') 116 outfile.write("// CHECKSTYLE:OFF Generated code\n") 117 outfile.write("/* This file is auto-generated from {}SupportFragmentTestActivity.java. DO NOT MODIFY. */\n\n".format(w)) 118 for line in file: 119 line = line.replace('{}TestSupportFragment'.format(w), '{}TestFragment'.format(w)) 120 line = line.replace('{}SupportFragmentTestActivity'.format(w), '{}FragmentTestActivity'.format(w)) 121 line = line.replace('androidx.fragment.app.FragmentActivity', 'android.app.Activity') 122 line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') 123 line = line.replace('extends FragmentActivity', 'extends Activity') 124 line = line.replace('getSupportFragmentManager', 'getFragmentManager') 125 outfile.write(line) 126 file.close() 127 outfile.close() 128 129 ####### generate Float parallax test ####### 130 131 print "copy ParallaxIntEffectTest to ParallaxFloatEffectTest" 132 file = open('java/android/support/v17/leanback/widget/ParallaxIntEffectTest.java', 'r') 133 outfile = open('java/android/support/v17/leanback/widget/ParallaxFloatEffectTest.java', 'w') 134 outfile.write("// CHECKSTYLE:OFF Generated code\n") 135 outfile.write("/* This file is auto-generated from ParallaxIntEffectTest.java. DO NOT MODIFY. */\n\n") 136 for line in file: 137 line = line.replace('IntEffect', 'FloatEffect') 138 line = line.replace('IntParallax', 'FloatParallax') 139 line = line.replace('IntProperty', 'FloatProperty') 140 line = line.replace('intValue()', 'floatValue()') 141 line = line.replace('int screenMax', 'float screenMax') 142 line = line.replace('assertEquals((int)', 'assertFloatEquals((float)') 143 line = line.replace('(int)', '(float)') 144 line = line.replace('int[', 'float[') 145 line = line.replace('Integer', 'Float'); 146 outfile.write(line) 147 file.close() 148 outfile.close() 149 150 151 print "copy ParallaxIntTest to ParallaxFloatTest" 152 file = open('java/android/support/v17/leanback/widget/ParallaxIntTest.java', 'r') 153 outfile = open('java/android/support/v17/leanback/widget/ParallaxFloatTest.java', 'w') 154 outfile.write("// CHECKSTYLE:OFF Generated code\n") 155 outfile.write("/* This file is auto-generated from ParallaxIntTest.java. DO NOT MODIFY. */\n\n") 156 for line in file: 157 line = line.replace('ParallaxIntTest', 'ParallaxFloatTest') 158 line = line.replace('IntParallax', 'FloatParallax') 159 line = line.replace('IntProperty', 'FloatProperty') 160 line = line.replace('verifyIntProperties', 'verifyFloatProperties') 161 line = line.replace('intValue()', 'floatValue()') 162 line = line.replace('int screenMax', 'float screenMax') 163 line = line.replace('assertEquals((int)', 'assertFloatEquals((float)') 164 line = line.replace('(int)', '(float)') 165 outfile.write(line) 166 file.close() 167 outfile.close() 168 169