| #!/usr/bin/python |
| |
| # Copyright (C) 2017 The Android Open Source Project |
| # |
| # 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. |
| |
| import os |
| import sys |
| import re |
| |
| print "Generate framework fragment related code for leanback" |
| |
| cls = ['Base', 'BaseRow', 'Browse', 'Details', 'Error', 'Headers', |
| 'Playback', 'Rows', 'Search', 'VerticalGrid', 'Branded', |
| 'GuidedStep', 'Onboarding', 'Video'] |
| |
| for w in cls: |
| print "copy {}SupportFragment to {}Fragment".format(w, w) |
| |
| file = open('src/main/java/androidx/leanback/app/{}SupportFragment.java'.format(w), 'r') |
| content = "// CHECKSTYLE:OFF Generated code\n" |
| content = content + "/* This file is auto-generated from {}SupportFragment.java. DO NOT MODIFY. */\n\n".format(w) |
| |
| for line in file: |
| line = line.replace('IS_FRAMEWORK_FRAGMENT = false', 'IS_FRAMEWORK_FRAGMENT = true'); |
| for w2 in cls: |
| line = line.replace('{}SupportFragment'.format(w2), '{}Fragment'.format(w2)) |
| line = line.replace('androidx.fragment.app.FragmentActivity', 'android.app.Activity') |
| line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') |
| line = line.replace('activity.getSupportFragmentManager()', 'activity.getFragmentManager()') |
| line = line.replace('FragmentActivity activity', 'Activity activity') |
| line = line.replace('FragmentActivity#onBackPressed', 'Activity#onBackPressed') |
| line = line.replace('(FragmentActivity', '(Activity') |
| line = line.replace('setEnterTransition(enterTransition)', 'setEnterTransition((android.transition.Transition) enterTransition)'); |
| line = line.replace('setSharedElementEnterTransition(sharedElementTransition)', 'setSharedElementEnterTransition((android.transition.Transition) sharedElementTransition)'); |
| line = line.replace('setExitTransition(exitTransition)', 'setExitTransition((android.transition.Transition) exitTransition)'); |
| line = line.replace('requestPermissions(new', 'PermissionHelper.requestPermissions(SearchFragment.this, new'); |
| # replace getContext() with FragmentUtil.getContext(XXXFragment.this), but dont match the case "view.getContext()" |
| line = re.sub(r'([^\.])getContext\(\)', r'\1FragmentUtil.getContext({}Fragment.this)'.format(w), line); |
| content = content + line |
| file.close() |
| # add deprecated tag to fragment class and inner classes/interfaces |
| content = re.sub(r'\*\/\n(@.*\n|)(public |abstract public |abstract |)class', '* @deprecated use {@link ' + w + 'SupportFragment}\n */\n@Deprecated\n\\1\\2class', content) |
| content = re.sub(r'\*\/\n public (static class|interface|final static class|abstract static class)', '* @deprecated use {@link ' + w + 'SupportFragment}\n */\n @Deprecated\n public \\1', content) |
| outfile = open('src/main/java/androidx/leanback/app/{}Fragment.java'.format(w), 'w') |
| outfile.write(content) |
| outfile.close() |
| |
| |
| |
| print "copy VideoSupportFragmentGlueHost to VideoFragmentGlueHost" |
| file = open('src/main/java/androidx/leanback/app/VideoSupportFragmentGlueHost.java', 'r') |
| content = "// CHECKSTYLE:OFF Generated code\n" |
| content = content + "/* This file is auto-generated from VideoSupportFragmentGlueHost.java. DO NOT MODIFY. */\n\n" |
| for line in file: |
| line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') |
| line = line.replace('VideoSupportFragment', 'VideoFragment') |
| line = line.replace('PlaybackSupportFragment', 'PlaybackFragment') |
| content = content + line |
| file.close() |
| # add deprecated tag to class |
| content = re.sub(r'\*\/\npublic class', '* @deprecated use {@link VideoSupportFragmentGlueHost}\n */\n@Deprecated\npublic class', content) |
| outfile = open('src/main/java/androidx/leanback/app/VideoFragmentGlueHost.java', 'w') |
| outfile.write(content) |
| outfile.close() |
| |
| |
| |
| print "copy PlaybackSupportFragmentGlueHost to PlaybackFragmentGlueHost" |
| file = open('src/main/java/androidx/leanback/app/PlaybackSupportFragmentGlueHost.java', 'r') |
| content = "// CHECKSTYLE:OFF Generated code\n" |
| content = content + "/* This file is auto-generated from {}PlaybackSupportFragmentGlueHost.java. DO NOT MODIFY. */\n\n" |
| for line in file: |
| line = line.replace('VideoSupportFragment', 'VideoFragment') |
| line = line.replace('PlaybackSupportFragment', 'PlaybackFragment') |
| line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') |
| content = content + line |
| file.close() |
| # add deprecated tag to class |
| content = re.sub(r'\*\/\npublic class', '* @deprecated use {@link PlaybackSupportFragmentGlueHost}\n */\n@Deprecated\npublic class', content) |
| outfile = open('src/main/java/androidx/leanback/app/PlaybackFragmentGlueHost.java', 'w') |
| outfile.write(content) |
| outfile.close() |
| |
| |
| |
| print "copy DetailsSupportFragmentBackgroundController to DetailsFragmentBackgroundController" |
| file = open('src/main/java/androidx/leanback/app/DetailsSupportFragmentBackgroundController.java', 'r') |
| content = "// CHECKSTYLE:OFF Generated code\n" |
| content = content + "/* This file is auto-generated from {}DetailsSupportFragmentBackgroundController.java. DO NOT MODIFY. */\n\n" |
| for line in file: |
| line = line.replace('VideoSupportFragment', 'VideoFragment') |
| line = line.replace('DetailsSupportFragment', 'DetailsFragment') |
| line = line.replace('RowsSupportFragment', 'RowsFragment') |
| line = line.replace('androidx.fragment.app.Fragment', 'android.app.Fragment') |
| line = line.replace('mFragment.getContext()', 'FragmentUtil.getContext(mFragment)') |
| content = content + line |
| file.close() |
| # add deprecated tag to class |
| content = re.sub(r'\*\/\npublic class', '* @deprecated use {@link DetailsSupportFragmentBackgroundController}\n */\n@Deprecated\npublic class', content) |
| outfile = open('src/main/java/androidx/leanback/app/DetailsFragmentBackgroundController.java', 'w') |
| outfile.write(content) |
| outfile.close() |