1 #!/usr/bin/python 2 3 # Copyright (C) 2014 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 import re 20 21 print "Generate v4 fragment related code for leanback" 22 23 cls = ['Base', 'BaseRow', 'Browse', 'Details', 'Error', 'Headers', 24 'PlaybackOverlay', 'Playback', 'Rows', 'Search', 'VerticalGrid', 'Branded', 25 'GuidedStep', 'Onboarding', 'Video'] 26 27 for w in cls: 28 print "copy {}Fragment to {}SupportFragment".format(w, w) 29 30 file = open('src/android/support/v17/leanback/app/{}Fragment.java'.format(w), 'r') 31 outfile = open('src/android/support/v17/leanback/app/{}SupportFragment.java'.format(w), 'w') 32 33 outfile.write("// CHECKSTYLE:OFF Generated code\n") 34 outfile.write("/* This file is auto-generated from {}Fragment.java. DO NOT MODIFY. */\n\n".format(w)) 35 36 for line in file: 37 line = line.replace('IS_FRAMEWORK_FRAGMENT = true', 'IS_FRAMEWORK_FRAGMENT = false'); 38 for w in cls: 39 line = line.replace('{}Fragment'.format(w), '{}SupportFragment'.format(w)) 40 line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment') 41 line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity') 42 line = line.replace('activity.getFragmentManager()', 'activity.getSupportFragmentManager()') 43 line = line.replace('Activity activity', 'FragmentActivity activity') 44 line = line.replace('(Activity', '(FragmentActivity') 45 line = re.sub(r'FragmentUtil.getContext\(.*this\)', 'getContext()', line); 46 outfile.write(line) 47 file.close() 48 outfile.close() 49 50 print "copy VideoFragmentGlueHost to VideoSupportFragmentGlueHost".format(w, w) 51 file = open('src/android/support/v17/leanback/app/VideoFragmentGlueHost.java'.format(w), 'r') 52 outfile = open('src/android/support/v17/leanback/app/VideoSupportFragmentGlueHost.java'.format(w), 'w') 53 54 outfile.write("// CHECKSTYLE:OFF Generated code\n") 55 outfile.write("/* This file is auto-generated from {}VideoFragmentGlueHost.java. DO NOT MODIFY. */\n\n".format(w)) 56 57 for line in file: 58 line = line.replace('IS_FRAMEWORK_FRAGMENT = true', 'IS_FRAMEWORK_FRAGMENT = false'); 59 line = line.replace('VideoSupportFragmentGlueHost'.format(w), 'VideoSupportFragmentGlueHost'.format(w)) 60 line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment') 61 line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity') 62 line = line.replace('activity.getFragmentManager()', 'activity.getSupportFragmentManager()') 63 line = line.replace('Activity activity', 'FragmentActivity activity') 64 line = line.replace('VideoFragment', 'VideoSupportFragment') 65 line = line.replace('PlaybackFragmentGlueHost', 'PlaybackSupportFragmentGlueHost') 66 line = line.replace('(Activity', '(FragmentActivity') 67 outfile.write(line) 68 file.close() 69 outfile.close() 70 71 print "copy PlaybackFragmentGlueHost to PlaybackSupportFragmentGlueHost".format(w, w) 72 file = open('src/android/support/v17/leanback/app/PlaybackFragmentGlueHost.java'.format(w), 'r') 73 outfile = open('src/android/support/v17/leanback/app/PlaybackSupportFragmentGlueHost.java'.format(w), 'w') 74 75 outfile.write("// CHECKSTYLE:OFF Generated code\n") 76 outfile.write("/* This file is auto-generated from {}PlaybackFragmentGlueHost.java. DO NOT MODIFY. */\n\n".format(w)) 77 78 for line in file: 79 line = line.replace('IS_FRAMEWORK_FRAGMENT = true', 'IS_FRAMEWORK_FRAGMENT = false'); 80 line = line.replace('VideoSupportFragmentGlueHost'.format(w), 'VideoSupportFragmentGlueHost'.format(w)) 81 line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment') 82 line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity') 83 line = line.replace('activity.getFragmentManager()', 'activity.getSupportFragmentManager()') 84 line = line.replace('Activity activity', 'FragmentActivity activity') 85 line = line.replace('PlaybackFragment', 'PlaybackSupportFragment') 86 line = line.replace('PlaybackFragmentGlueHost', 'PlaybackSupportFragmentGlueHost') 87 line = line.replace('(Activity', '(FragmentActivity') 88 outfile.write(line) 89 file.close() 90 outfile.close() 91 92 print "copy DetailsFragmentBackgroundController to DetailsSupportFragmentBackgroundController".format(w, w) 93 file = open('src/android/support/v17/leanback/app/DetailsFragmentBackgroundController.java'.format(w), 'r') 94 outfile = open('src/android/support/v17/leanback/app/DetailsSupportFragmentBackgroundController.java'.format(w), 'w') 95 96 outfile.write("// CHECKSTYLE:OFF Generated code\n") 97 outfile.write("/* This file is auto-generated from {}DetailsFragmentBackgroundController.java. DO NOT MODIFY. */\n\n".format(w)) 98 99 for line in file: 100 line = re.sub(r'FragmentUtil.getContext\(mFragment\)', 'mFragment.getContext()', line); 101 line = line.replace('VideoFragment', 'VideoSupportFragment') 102 line = line.replace('DetailsFragment', 'DetailsSupportFragment') 103 line = line.replace('RowsFragment', 'RowsSupportFragment') 104 line = line.replace('VideoSupportFragmentGlueHost'.format(w), 'VideoSupportFragmentGlueHost'.format(w)) 105 line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment') 106 outfile.write(line) 107 file.close() 108 outfile.close() 109