Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #3746: Add regex to ban <include> tag in layout files. #4656

Merged
merged 40 commits into from
Nov 8, 2022

Conversation

Ryggs
Copy link
Contributor

@Ryggs Ryggs commented Oct 14, 2022

Explanation

Fixes #3746

This PR bans all usage of the <include...> tag in XML layout files that reference it. It does so by adding a check block inside the file_content_validation_checks text proto script file.

This pr also removes the toolbar.xml file, since its no longer being used.

Essential Checklist

  • The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

For UI-specific PRs only

If your PR includes UI-related changes, then:

  • Add screenshots for portrait/landscape for both a tablet & phone of the before & after UI changes
  • For the screenshots above, include both English and pseudo-localized (RTL) screenshots (see RTL guide)
  • Add a video showing the full UX flow with a screen reader enabled (see accessibility guide)
  • Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing

SCREENSHOT FOR THE REGEX PATTERN CHECKS FAILED

checksfailed

SCREENSHOT FOR THE REGEX PATTERN CHECKS PASSED

passed

A LIST OF THE FILES THAT HAVE THE <INCLUDE.../> TAG

  • app/src/main/res/layout/add_profile_activity.xml
  • addprofileactivity
  • app/src/main/res/layout/administrator_controls_activity.xml:15: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/help_without_drawer_activity.xml:11: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/option_activity.xml:13: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/options_without_drawer_activity.xml:11: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/developer_options_activity.xml:15: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/home_activity.xml:14: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/help_activity.xml:13: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout/profile_progress_activity.xml:9: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout-sw600dp/administrator_controls_activity.xml:15: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout-sw600dp/option_activity.xml:13: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout-sw600dp/options_without_drawer_activity.xml:12: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead
  • app/src/main/res/layout-sw600dp/help_activity.xml:13: Remove <include .../> tag from layout and use the appropriate widget, e.g like AppBarLayout widget instead

@Ryggs Ryggs changed the title Add regex to ban include Fix #3746 : Fix Add regex to ban include in layout files Oct 16, 2022
@Ryggs Ryggs changed the title Fix #3746 : Fix Add regex to ban include in layout files Fix #3746 : Fixes add regex to ban include tag in layout files. Oct 16, 2022
@Ryggs Ryggs changed the title Fix #3746 : Fixes add regex to ban include tag in layout files. Fix #3746 : Fixes add regex to ban <include> tag in layout files. Oct 16, 2022
Copy link
Sponsor Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Ryggs! Took a first pass. This looks on the correct track. I did have some follow-up comments--PTAL.

scripts/assets/file_content_validation_checks.textproto Outdated Show resolved Hide resolved
app/src/main/res/layout-sw600dp/help_activity.xml Outdated Show resolved Hide resolved
scripts/assets/file_content_validation_checks.textproto Outdated Show resolved Hide resolved
@BenHenning BenHenning assigned Ryggs and unassigned BenHenning Oct 18, 2022
Copy link
Sponsor Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Ryggs I think there's still an issue here--PTAL at my comment.

app/src/main/res/layout/add_profile_activity.xml Outdated Show resolved Hide resolved
@BenHenning BenHenning assigned Ryggs and unassigned BenHenning Oct 29, 2022
@rt4914 rt4914 removed their assignment Oct 31, 2022
@Ryggs Ryggs assigned BenHenning and unassigned Ryggs Nov 2, 2022
@Ryggs Ryggs requested a review from BenHenning November 2, 2022 08:24
@BenHenning
Copy link
Sponsor Member

@BenHenning BenHenning assigned Ryggs and unassigned BenHenning Nov 3, 2022
@Ryggs Ryggs assigned BenHenning and unassigned Ryggs Nov 7, 2022
Copy link
Sponsor Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Ryggs. The PR LGTM, but please update to the latest develop & send back so that I can approve & merge.

@BenHenning
Copy link
Sponsor Member

Actually, maybe I can just update the branch to avoid needing to do another back-and-forth.

Copy link
Sponsor Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the clean sync with develop, approving this and enabling auto-merge.

@BenHenning BenHenning enabled auto-merge (squash) November 8, 2022 05:13
@oppiabot
Copy link

oppiabot bot commented Nov 8, 2022

Unassigning @BenHenning since they have already approved the PR.

@oppiabot oppiabot bot added the PR: LGTM label Nov 8, 2022
@BenHenning BenHenning merged commit f197997 into oppia:develop Nov 8, 2022
adhiamboperes pushed a commit to adhiamboperes/oppia-android that referenced this pull request Nov 10, 2022
…a#4656)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
Fixes  [oppia#3746](oppia#3746)

This PR bans all usage of the <include...> tag in XML layout files that
reference it. It does so by adding a check block inside the
file_content_validation_checks text proto script file.

This pr also removes the toolbar.xml file, since its no longer being
used.
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
<!-- Delete these section if this PR does not include UI-related
changes. -->
If your PR includes UI-related changes, then:
- Add screenshots for portrait/landscape for both a tablet & phone of
the before & after UI changes
- For the screenshots above, include both English and pseudo-localized
(RTL) screenshots (see [RTL
guide](https://github.com/oppia/oppia-android/wiki/RTL-Guidelines))
- Add a video showing the full UX flow with a screen reader enabled (see
[accessibility
guide](https://github.com/oppia/oppia-android/wiki/Accessibility-(A11y)-Guide))
- Add a screenshot demonstrating that you ran affected Espresso tests
locally & that they're passing

## SCREENSHOT FOR THE REGEX PATTERN CHECKS FAILED 


![checksfailed](https://user-images.githubusercontent.com/31986629/196036816-ddb6e065-d4bc-4f96-95e7-f5228ae3e23d.PNG)

## SCREENSHOT FOR THE REGEX PATTERN CHECKS PASSED


![passed](https://user-images.githubusercontent.com/31986629/196038476-e54e2319-6567-4b96-934d-c040b36360c5.PNG)

## A LIST OF THE FILES THAT HAVE THE <INCLUDE.../> TAG
- app/src/main/res/layout/add_profile_activity.xml
- addprofileactivity
- app/src/main/res/layout/administrator_controls_activity.xml:15: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
- app/src/main/res/layout/help_without_drawer_activity.xml:11: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
- app/src/main/res/layout/option_activity.xml:13: Remove <include .../>
tag from layout and use the appropriate widget, e.g like AppBarLayout
widget instead
- app/src/main/res/layout/options_without_drawer_activity.xml:11: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
- app/src/main/res/layout/developer_options_activity.xml:15: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
- app/src/main/res/layout/home_activity.xml:14: Remove <include .../>
tag from layout and use the appropriate widget, e.g like AppBarLayout
widget instead
- app/src/main/res/layout/help_activity.xml:13: Remove <include .../>
tag from layout and use the appropriate widget, e.g like AppBarLayout
widget instead
- app/src/main/res/layout/profile_progress_activity.xml:9: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
-
app/src/main/res/layout-sw600dp/administrator_controls_activity.xml:15:
Remove <include .../> tag from layout and use the appropriate widget,
e.g like AppBarLayout widget instead
- app/src/main/res/layout-sw600dp/option_activity.xml:13: Remove
<include .../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead
-
app/src/main/res/layout-sw600dp/options_without_drawer_activity.xml:12:
Remove <include .../> tag from layout and use the appropriate widget,
e.g like AppBarLayout widget instead
- app/src/main/res/layout-sw600dp/help_activity.xml:13: Remove <include
.../> tag from layout and use the appropriate widget, e.g like
AppBarLayout widget instead

Co-authored-by: MAZAKPE <makpalyy@gmail.com>
Co-authored-by: Ben Henning <ben@oppia.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add regex to ban <include> in layout files
4 participants