2323 */
2424public final class RomUtils {
2525
26- public static final String ROM_HUAWEI = "huawei" ;
27- public static final String ROM_VIVO = "vivo" ;
28- public static final String ROM_XIAOMI = "xiaomi" ;
29- public static final String ROM_OPPO = "oppo" ;
30- public static final String ROM_LEECO = "leeco" ;
31- public static final String ROM_QIKU = "qiku" ;
32- public static final String ROM_ZTE = "zte" ;
33- public static final String ROM_ONEPLUS = "oneplus" ;
34- public static final String ROM_NUBIA = "nubia" ;
35- public static final String ROM_SAMSUNG = "samsung" ;
36- public static final String ROM_MEIZU = "meizu" ;
37- public static final String ROM_COOLPAD = "coolpad" ;
38- public static final String ROM_LENOVO = "lenovo" ;
26+ public static final String ROM_HUAWEI = "huawei" ;
27+ public static final String ROM_VIVO = "vivo" ;
28+ public static final String ROM_XIAOMI = "xiaomi" ;
29+ public static final String ROM_OPPO = "oppo" ;
30+ public static final String [] ROM_LEECO = {"leeco" , "letv" };
31+ public static final String [] ROM_360 = {"360" , "qiku" };
32+ public static final String ROM_ZTE = "zte" ;
33+ public static final String ROM_ONEPLUS = "oneplus" ;
34+ public static final String ROM_NUBIA = "nubia" ;
35+
36+ public static final String [] ROM_COOLPAD = {"coolpad" , "yulong" };
37+ public static final String [] ROM_LG = {"lg" , "lge" };
38+ public static final String ROM_GOOGLE = "google" ;
39+ public static final String ROM_SAMSUNG = "samsung" ;
40+ public static final String ROM_MEIZU = "meizu" ;
41+ public static final String ROM_LENOVO = "lenovo" ;
42+ public static final String ROM_SMARTISAN = "smartisan" ;
43+ public static final String ROM_HTC = "htc" ;
44+ public static final String ROM_SONY = "sony" ;
45+ public static final String ROM_AMIGO = "amigo" ;
3946
4047 public static final String VERSION_PROPERTY_HUAWEI = "ro.build.version.emui" ;
4148 public static final String VERSION_PROPERTY_VIVO = "ro.vivo.os.build.display.id" ;
4249 public static final String VERSION_PROPERTY_XIAOMI = "ro.build.version.incremental" ;
4350 public static final String VERSION_PROPERTY_OPPO = "ro.build.version.opporom" ;
4451 public static final String VERSION_PROPERTY_LEECO = "ro.letv.release.version" ;
45- public static final String VERSION_PROPERTY_QIKU = "ro.build.uiversion" ;
52+ public static final String VERSION_PROPERTY_360 = "ro.build.uiversion" ;
4653 public static final String VERSION_PROPERTY_ZTE = "ro.build.MiFavor_version" ;
4754 public static final String VERSION_PROPERTY_ONEPLUS = "ro.rom.version" ;
4855 public static final String VERSION_PROPERTY_NUBIA = "ro.build.rom.id" ;
@@ -96,16 +103,16 @@ public static boolean isOppo() {
96103 * @return {@code true}: yes<br>{@code false}: no
97104 */
98105 public static boolean isLeeco () {
99- return ROM_LEECO .equals (getRomInfo ().name );
106+ return ROM_LEECO [ 0 ] .equals (getRomInfo ().name );
100107 }
101108
102109 /**
103- * Return whether the rom is made by qiku .
110+ * Return whether the rom is made by 360 .
104111 *
105112 * @return {@code true}: yes<br>{@code false}: no
106113 */
107- public static boolean isQiku () {
108- return ROM_QIKU .equals (getRomInfo ().name );
114+ public static boolean is360 () {
115+ return ROM_360 [ 0 ] .equals (getRomInfo ().name );
109116 }
110117
111118 /**
@@ -159,7 +166,7 @@ public static boolean isMeizu() {
159166 * @return {@code true}: yes<br>{@code false}: no
160167 */
161168 public static boolean isCoolpad () {
162- return ROM_COOLPAD .equals (getRomInfo ().name );
169+ return ROM_COOLPAD [ 0 ] .equals (getRomInfo ().name );
163170 }
164171
165172 /**
@@ -181,7 +188,7 @@ public static RomInfo getRomInfo() {
181188 bean = new RomInfo ();
182189 final String brandName = getBrand ();
183190 final String manufacturer = getManufacturer ();
184- if (ROM_HUAWEI . equals (brandName ) || ROM_HUAWEI . equals ( manufacturer )) {
191+ if (isRightRom (brandName , manufacturer , ROM_HUAWEI )) {
185192 bean .name = ROM_HUAWEI ;
186193 String version = getRomVersion (VERSION_PROPERTY_HUAWEI );
187194 String [] temp = version .split ("_" );
@@ -190,49 +197,86 @@ public static RomInfo getRomInfo() {
190197 } else {
191198 bean .version = version ;
192199 }
193- } else if (ROM_VIVO .equals (brandName ) || ROM_VIVO .equals (manufacturer )) {
200+ return bean ;
201+ }
202+ if (isRightRom (brandName , manufacturer , ROM_VIVO )) {
194203 bean .name = ROM_VIVO ;
195204 bean .version = getRomVersion (VERSION_PROPERTY_VIVO );
196- } else if (ROM_XIAOMI .equals (brandName ) || ROM_XIAOMI .equals (manufacturer )) {
205+ return bean ;
206+ }
207+ if (isRightRom (brandName , manufacturer , ROM_XIAOMI )) {
197208 bean .name = ROM_XIAOMI ;
198209 bean .version = getRomVersion (VERSION_PROPERTY_XIAOMI );
199- } else if (ROM_OPPO .equals (brandName ) || ROM_OPPO .equals (manufacturer )) {
210+ return bean ;
211+ }
212+ if (isRightRom (brandName , manufacturer , ROM_OPPO )) {
200213 bean .name = ROM_OPPO ;
201214 bean .version = getRomVersion (VERSION_PROPERTY_OPPO );
202- } else if (ROM_LEECO .equals (brandName ) || ROM_LEECO .equals (manufacturer )) {
203- bean .name = ROM_LEECO ;
215+ return bean ;
216+ }
217+ if (isRightRom (brandName , manufacturer , ROM_LEECO )) {
218+ bean .name = ROM_LEECO [0 ];
204219 bean .version = getRomVersion (VERSION_PROPERTY_LEECO );
205- } else if (ROM_QIKU .equals (brandName ) || ROM_QIKU .equals (manufacturer )) {
206- bean .name = ROM_QIKU ;
207- bean .version = getRomVersion (VERSION_PROPERTY_QIKU );
208- } else if (ROM_ZTE .equals (brandName ) || ROM_ZTE .equals (manufacturer )) {
220+ return bean ;
221+ }
222+
223+ if (isRightRom (brandName , manufacturer , ROM_360 )) {
224+ bean .name = ROM_360 [0 ];
225+ bean .version = getRomVersion (VERSION_PROPERTY_360 );
226+ return bean ;
227+ }
228+ if (isRightRom (brandName , manufacturer , ROM_ZTE )) {
209229 bean .name = ROM_ZTE ;
210230 bean .version = getRomVersion (VERSION_PROPERTY_ZTE );
211- } else if (ROM_ONEPLUS .equals (brandName ) || ROM_ONEPLUS .equals (manufacturer )) {
231+ return bean ;
232+ }
233+ if (isRightRom (brandName , manufacturer , ROM_ONEPLUS )) {
212234 bean .name = ROM_ONEPLUS ;
213235 bean .version = getRomVersion (VERSION_PROPERTY_ONEPLUS );
214- } else if (ROM_NUBIA .equals (brandName ) || ROM_NUBIA .equals (manufacturer )) {
236+ return bean ;
237+ }
238+ if (isRightRom (brandName , manufacturer , ROM_NUBIA )) {
215239 bean .name = ROM_NUBIA ;
216240 bean .version = getRomVersion (VERSION_PROPERTY_NUBIA );
217- } else if (ROM_SAMSUNG .equals (brandName ) || ROM_SAMSUNG .equals (manufacturer )) {
241+ return bean ;
242+ }
243+
244+ if (isRightRom (brandName , manufacturer , ROM_COOLPAD )) {
245+ bean .name = ROM_COOLPAD [0 ];
246+ } else if (isRightRom (brandName , manufacturer , ROM_LG )) {
247+ bean .name = ROM_LG [0 ];
248+ } else if (isRightRom (brandName , manufacturer , ROM_GOOGLE )) {
249+ bean .name = ROM_GOOGLE ;
250+ } else if (isRightRom (brandName , manufacturer , ROM_SAMSUNG )) {
218251 bean .name = ROM_SAMSUNG ;
219- bean .version = getRomVersion ("" );
220- } else if (ROM_MEIZU .equals (brandName ) || ROM_MEIZU .equals (manufacturer )) {
252+ } else if (isRightRom (brandName , manufacturer , ROM_MEIZU )) {
221253 bean .name = ROM_MEIZU ;
222- bean .version = getRomVersion ("" );
223- } else if (ROM_COOLPAD .equals (brandName ) || ROM_COOLPAD .equals (manufacturer )) {
224- bean .name = ROM_COOLPAD ;
225- bean .version = getRomVersion ("" );
226- } else if (ROM_LENOVO .equals (brandName ) || ROM_LENOVO .equals (manufacturer )) {
254+ } else if (isRightRom (brandName , manufacturer , ROM_LENOVO )) {
227255 bean .name = ROM_LENOVO ;
228- bean .version = getRomVersion ("" );
256+ } else if (isRightRom (brandName , manufacturer , ROM_SMARTISAN )) {
257+ bean .name = ROM_SMARTISAN ;
258+ } else if (isRightRom (brandName , manufacturer , ROM_HTC )) {
259+ bean .name = ROM_HTC ;
260+ } else if (isRightRom (brandName , manufacturer , ROM_SONY )) {
261+ bean .name = ROM_SONY ;
262+ } else if (isRightRom (brandName , manufacturer , ROM_AMIGO )) {
263+ bean .name = ROM_AMIGO ;
229264 } else {
230265 bean .name = manufacturer ;
231- bean .version = getRomVersion ("" );
232266 }
267+ bean .version = getRomVersion ("" );
233268 return bean ;
234269 }
235270
271+ private static boolean isRightRom (final String brand , final String manufacturer , final String ... names ) {
272+ for (String name : names ) {
273+ if (brand .contains (name ) || manufacturer .contains (name )) {
274+ return true ;
275+ }
276+ }
277+ return false ;
278+ }
279+
236280 private static String getManufacturer () {
237281 try {
238282 String manufacturer = Build .MANUFACTURER ;
0 commit comments