Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 9b356d5

Browse files
Merge pull request #964 from github-for-unity/fixes/icon-cache
Refactor icon cache
2 parents 15da9ce + d128e52 commit 9b356d5

File tree

3 files changed

+56
-180
lines changed

3 files changed

+56
-180
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/Misc/Styles.cs

Lines changed: 27 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -96,33 +96,6 @@ class Styles
9696
locksViewLockedByStyle,
9797
locksViewLockedBySelectedStyle;
9898

99-
private static Texture2D branchIcon,
100-
activeBranchIcon,
101-
trackingBranchIcon,
102-
favoriteIconOn,
103-
favoriteIconOff,
104-
smallLogoIcon,
105-
bigLogoIcon,
106-
folderIcon,
107-
mergeIcon,
108-
dotIcon,
109-
localCommitIcon,
110-
repoIcon,
111-
lockIcon,
112-
emptyStateInit,
113-
dropdownListIcon,
114-
globeIcon,
115-
spinnerInside,
116-
spinnerOutside,
117-
code,
118-
rocket,
119-
merge,
120-
spinnerInsideInverted,
121-
spinnerOutsideInverted,
122-
codeInverted,
123-
rocketInverted,
124-
mergeInverted;
125-
12699
public static Texture2D GetFileStatusIcon(GitFileStatus status, bool isLocked)
127100
{
128101
if (isLocked)
@@ -833,330 +806,207 @@ public static Texture2D ActiveBranchIcon
833806
{
834807
get
835808
{
836-
if (activeBranchIcon == null)
837-
{
838-
activeBranchIcon = Utility.GetIcon("current-branch-indicator.png", "current-branch-indicator@2x.png");
839-
}
840-
return activeBranchIcon;
809+
return Utility.GetIcon("current-branch-indicator.png", "current-branch-indicator@2x.png", Utility.IsDarkTheme);
841810
}
842811
}
843812

844813
public static Texture2D BranchIcon
845814
{
846815
get
847816
{
848-
if (branchIcon == null)
849-
{
850-
branchIcon = Utility.GetIcon("branch.png", "branch@2x.png");
851-
}
852-
return branchIcon;
817+
return Utility.GetIcon("branch.png", "branch@2x.png");
853818
}
854819
}
855820

856821
public static Texture2D TrackingBranchIcon
857822
{
858823
get
859824
{
860-
if (trackingBranchIcon == null)
861-
{
862-
trackingBranchIcon = Utility.GetIcon("tracked-branch-indicator.png");
863-
}
864-
865-
return trackingBranchIcon;
825+
return Utility.GetIcon("tracked-branch-indicator.png");
866826
}
867827
}
868828

869829
public static Texture2D FavoriteIconOn
870830
{
871831
get
872832
{
873-
if (favoriteIconOn == null)
874-
{
875-
favoriteIconOn = Utility.GetIcon("favorite-branch-indicator.png");
876-
}
877-
878-
return favoriteIconOn;
833+
return Utility.GetIcon("favorite-branch-indicator.png");
879834
}
880835
}
881836

882837
public static Texture2D FavoriteIconOff
883838
{
884839
get
885840
{
886-
if (favoriteIconOff == null)
887-
{
888-
favoriteIconOff = FolderIcon;
889-
}
890-
891-
return favoriteIconOff;
841+
return FolderIcon;
892842
}
893843
}
894844

895845
public static Texture2D SmallLogo
896846
{
897847
get
898848
{
899-
if (smallLogoIcon == null)
900-
{
901-
smallLogoIcon = Utility.GetIcon("small-logo.png");
902-
}
903-
904-
return smallLogoIcon;
849+
return Utility.IsDarkTheme ? Utility.GetIcon("small-logo-light.png", "small-logo-light@2x.png") : Utility.GetIcon("small-logo.png", "small-logo@2x.png");
905850
}
906851
}
907852

908853
public static Texture2D BigLogo
909854
{
910855
get
911856
{
912-
if (bigLogoIcon == null)
913-
{
914-
var defaultTextColor = Label.normal.textColor;
915-
if (defaultTextColor.r > 0.5f && defaultTextColor.g > 0.5f && defaultTextColor.b > 0.5f)
916-
bigLogoIcon = Utility.GetIcon("big-logo-light.png");
917-
else
918-
bigLogoIcon = Utility.GetIcon("big-logo.png");
919-
}
920-
921-
return bigLogoIcon;
857+
return Utility.IsDarkTheme ? Utility.GetIcon("big-logo-light.png", "big-logo-light@2x.png") : Utility.GetIcon("big-logo.png", "big-logo@2x.png");
922858
}
923859
}
924860

925861
public static Texture2D MergeIcon
926862
{
927863
get
928864
{
929-
if (mergeIcon == null)
930-
{
931-
mergeIcon = Utility.GetIcon("git-merge.png", "git-merge@2x.png");
932-
}
933-
934-
return mergeIcon;
865+
return Utility.GetIcon("git-merge.png", "git-merge@2x.png");
935866
}
936867
}
937868

938869
public static Texture2D DotIcon
939870
{
940871
get
941872
{
942-
if (dotIcon == null)
943-
{
944-
dotIcon = Utility.GetIcon("dot.png", "dot@2x.png");
945-
}
946-
947-
return dotIcon;
873+
return Utility.GetIcon("dot.png", "dot@2x.png", Utility.IsDarkTheme);
948874
}
949875
}
950876

951877
public static Texture2D LocalCommitIcon
952878
{
953879
get
954880
{
955-
if (localCommitIcon == null)
956-
{
957-
localCommitIcon = Utility.GetIcon("local-commit-icon.png", "local-commit-icon@2x.png");
958-
}
959-
960-
return localCommitIcon;
881+
return Utility.GetIcon("local-commit-icon.png", "local-commit-icon@2x.png", Utility.IsDarkTheme);
961882
}
962883
}
963884

964885
public static Texture2D FolderIcon
965886
{
966887
get
967888
{
968-
if (folderIcon == null)
969-
{
970-
folderIcon = EditorGUIUtility.FindTexture("Folder Icon");
971-
}
972-
973-
return folderIcon;
889+
return EditorGUIUtility.FindTexture("Folder Icon");
974890
}
975891
}
976892

977893
public static Texture2D RepoIcon
978894
{
979895
get
980896
{
981-
if (repoIcon == null)
982-
{
983-
repoIcon = Utility.GetIcon("repo.png", "repo@2x.png");
984-
}
985-
return repoIcon;
897+
return Utility.GetIcon("repo.png", "repo@2x.png", Utility.IsDarkTheme);
986898
}
987899
}
988900

989901
public static Texture2D LockIcon
990902
{
991903
get
992904
{
993-
if (lockIcon == null)
994-
{
995-
lockIcon = Utility.GetIcon("lock.png", "lock@2x.png");
996-
}
997-
return lockIcon;
905+
return Utility.GetIcon("lock.png", "lock@2x.png");
998906
}
999907
}
1000908

1001909
public static Texture2D EmptyStateInit
1002910
{
1003-
get
1004-
{
1005-
if (emptyStateInit == null)
911+
get
1006912
{
1007-
emptyStateInit = Utility.GetIcon("empty-state-init.png", "empty-state-init@2x.png");
913+
return Utility.GetIcon("empty-state-init.png", "empty-state-init@2x.png");
1008914
}
1009-
return emptyStateInit;
1010-
}
1011-
1012915
}
1013916

1014917
public static Texture2D DropdownListIcon
1015918
{
1016919
get
1017920
{
1018-
if (dropdownListIcon == null)
1019-
{
1020-
dropdownListIcon = Utility.GetIcon("dropdown-list-icon.png", "dropdown-list-icon@2x.png");
1021-
}
1022-
return dropdownListIcon;
921+
return Utility.GetIcon("dropdown-list-icon.png", "dropdown-list-icon@2x.png");
1023922
}
1024923
}
1025924

1026925
public static Texture2D GlobeIcon
1027926
{
1028927
get
1029928
{
1030-
if (globeIcon == null)
1031-
{
1032-
globeIcon = Utility.GetIcon("globe.png", "globe@2x.png");
1033-
}
1034-
return globeIcon;
929+
return Utility.GetIcon("globe.png", "globe@2x.png", Utility.IsDarkTheme);
1035930
}
1036931
}
1037932

1038933
public static Texture2D SpinnerInside
1039934
{
1040935
get
1041936
{
1042-
if (spinnerInside == null)
1043-
{
1044-
spinnerInside = Utility.GetIcon("spinner-inside.png", "spinner-inside@2x.png");
1045-
}
1046-
return spinnerInside;
937+
return Utility.GetIcon("spinner-inside.png", "spinner-inside@2x.png");
1047938
}
1048939
}
1049940

1050941
public static Texture2D SpinnerOutside
1051942
{
1052943
get
1053944
{
1054-
if (spinnerOutside == null)
1055-
{
1056-
spinnerOutside = Utility.GetIcon("spinner-outside.png", "spinner-outside@2x.png");
1057-
}
1058-
return spinnerOutside;
945+
return Utility.GetIcon("spinner-outside.png", "spinner-outside@2x.png");
1059946
}
1060947
}
1061948

1062949
public static Texture2D Code
1063950
{
1064951
get
1065952
{
1066-
if (code == null)
1067-
{
1068-
code = Utility.GetIcon("code.png", "code@2x.png");
1069-
}
1070-
return code;
953+
return Utility.GetIcon("code.png", "code@2x.png");
1071954
}
1072955
}
1073956

1074957
public static Texture2D Rocket
1075958
{
1076959
get
1077960
{
1078-
if (rocket == null)
1079-
{
1080-
rocket = Utility.GetIcon("rocket.png", "rocket@2x.png");
1081-
}
1082-
return rocket;
961+
return Utility.GetIcon("rocket.png", "rocket@2x.png");
1083962
}
1084963
}
1085964

1086965
public static Texture2D Merge
1087966
{
1088967
get
1089968
{
1090-
if (merge == null)
1091-
{
1092-
merge = Utility.GetIcon("merge.png", "merge@2x.png");
1093-
}
1094-
return merge;
969+
return Utility.GetIcon("merge.png", "merge@2x.png");
1095970
}
1096971
}
1097972

1098973
public static Texture2D SpinnerInsideInverted
1099974
{
1100975
get
1101976
{
1102-
if (spinnerInsideInverted == null)
1103-
{
1104-
spinnerInsideInverted = Utility.GetIcon("spinner-inside.png", "spinner-inside@2x.png");
1105-
spinnerInsideInverted.InvertColors();
1106-
}
1107-
return spinnerInsideInverted;
977+
return Utility.GetIcon("spinner-inside.png", "spinner-inside@2x.png", true);
1108978
}
1109979
}
1110980

1111981
public static Texture2D SpinnerOutsideInverted
1112982
{
1113983
get
1114984
{
1115-
if (spinnerOutsideInverted == null)
1116-
{
1117-
spinnerOutsideInverted = Utility.GetIcon("spinner-outside.png", "spinner-outside@2x.png");
1118-
spinnerOutsideInverted.InvertColors();
1119-
}
1120-
return spinnerOutsideInverted;
985+
return Utility.GetIcon("spinner-outside.png", "spinner-outside@2x.png", true);
1121986
}
1122987
}
1123988

1124989
public static Texture2D CodeInverted
1125990
{
1126991
get
1127992
{
1128-
if (codeInverted == null)
1129-
{
1130-
codeInverted = Utility.GetIcon("code.png", "code@2x.png");
1131-
codeInverted.InvertColors();
1132-
}
1133-
return codeInverted;
993+
return Utility.GetIcon("code.png", "code@2x.png", true);
1134994
}
1135995
}
1136996

1137997
public static Texture2D RocketInverted
1138998
{
1139999
get
11401000
{
1141-
if (rocketInverted == null)
1142-
{
1143-
rocketInverted = Utility.GetIcon("rocket.png", "rocket@2x.png");
1144-
rocketInverted.InvertColors();
1145-
}
1146-
return rocketInverted;
1001+
return Utility.GetIcon("rocket.png", "rocket@2x.png", true);
11471002
}
11481003
}
11491004

11501005
public static Texture2D MergeInverted
11511006
{
11521007
get
11531008
{
1154-
if (mergeInverted == null)
1155-
{
1156-
mergeInverted = Utility.GetIcon("merge.png", "merge@2x.png");
1157-
mergeInverted.InvertColors();
1158-
}
1159-
return mergeInverted;
1009+
return Utility.GetIcon("merge.png", "merge@2x.png", true);
11601010
}
11611011
}
11621012
private static GUIStyle foldout;

0 commit comments

Comments
 (0)