2091 lines
88 KiB
Java
2091 lines
88 KiB
Java
package com.tangem.util;
|
|
|
|
/**
|
|
* Created by Ilia on 20.04.2018.
|
|
*/
|
|
/*
|
|
* Copyright (C) 2017 Jared Rummler
|
|
*
|
|
* 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 android.Manifest;
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.content.pm.PackageManager;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.NetworkInfo;
|
|
import android.os.Build;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.support.annotation.WorkerThread;
|
|
import android.text.TextUtils;
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
import java.util.Locale;
|
|
import org.json.JSONArray;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
// @formatter:off
|
|
/**
|
|
* <p>Get the consumer friendly name of an Android device.</p>
|
|
*
|
|
* <p>On many popular devices the market name of the device is not available. For example, on the
|
|
* Samsung Galaxy S6 the value of {@link Build#MODEL} could be "SM-G920F", "SM-G920I", "SM-G920W8",
|
|
* etc.</p>
|
|
*
|
|
* <p>See the usages below to get the consumer friends name of a device:</p>
|
|
*
|
|
* <p><b>Get the name of the current device:</b></p>
|
|
*
|
|
* <pre>
|
|
* String deviceName = DeviceName.getDeviceName();
|
|
* </pre>
|
|
*
|
|
* <p>The above code will get the correct device name for the top 600 Android devices. If the
|
|
* device is unrecognized, then Build.MODEL is returned.</p>
|
|
*
|
|
* <p><b>Get the name of a device using the device's codename:</b></p>
|
|
*
|
|
* <pre>
|
|
* // Retruns "Moto X Style"
|
|
* DeviceName.getDeviceName("clark", "Unknown device");
|
|
* </pre>
|
|
*
|
|
* <p><b>Get information about the device:</b></p>
|
|
*
|
|
* <pre>
|
|
* DeviceName.with(context).request(new DeviceName.Callback() {
|
|
*
|
|
* @Override public void onFinished(DeviceName.DeviceInfo info, Exception error) {
|
|
* String manufacturer = info.manufacturer; // "Samsung"
|
|
* String name = info.marketName; // "Galaxy S6 Edge"
|
|
* String model = info.model; // "SM-G925I"
|
|
* String codename = info.codename; // "zerolte"
|
|
* String deviceName = info.getName(); // "Galaxy S6 Edge"
|
|
* // FYI: We are on the UI thread.
|
|
* }
|
|
* });
|
|
* </pre>
|
|
*
|
|
* <p>The above code loads JSON from a generated list of device names based on Google's maintained
|
|
* list. It will be up-to-date with Google's supported device list so that you will get the correct
|
|
* name for new or unknown devices. This supports over 10,000 devices.</p>
|
|
*
|
|
* <p>This will only make a network call once. The value is saved to SharedPreferences for future
|
|
* calls.</p>
|
|
*/
|
|
|
|
public class DeviceName {
|
|
|
|
// @formatter:on
|
|
|
|
// JSON which is derived from Google's PDF document which contains all devices on Google Play.
|
|
// To get the URL to the JSON file which contains information about the device name:
|
|
// String url = String.format(DEVICE_JSON_URL, Build.DEVICE);
|
|
private static final String DEVICE_JSON_URL =
|
|
"https://raw.githubusercontent.com/jaredrummler/AndroidDeviceNames/master/json/devices/%s.json";
|
|
|
|
// Preference filename for storing device info so we don't need to download it again.
|
|
private static final String SHARED_PREF_NAME = "device_names";
|
|
|
|
/**
|
|
* Create a new request to get information about a device.
|
|
*
|
|
* @param context
|
|
* the application context
|
|
* @return a new Request instance.
|
|
*/
|
|
public static Request with(Context context) {
|
|
return new Request(context.getApplicationContext());
|
|
}
|
|
|
|
/**
|
|
* Get the consumer friendly name of the device.
|
|
*
|
|
* @return the market name of the current device.
|
|
* @see #getDeviceName(String, String)
|
|
*/
|
|
public static String getDeviceName() {
|
|
return getDeviceName(Build.DEVICE, Build.MODEL, capitalize(Build.MODEL));
|
|
}
|
|
|
|
/**
|
|
* Get the consumer friendly name of a device.
|
|
*
|
|
* @param codename
|
|
* the value of the system property "ro.product.device" ({@link Build#DEVICE})
|
|
* <i>or</i>
|
|
* the value of the system property "ro.product.model" ({@link Build#MODEL})
|
|
* @param fallback
|
|
* the fallback name if the device is unknown. Usually the value of the system property
|
|
* "ro.product.model" ({@link Build#MODEL})
|
|
* @return the market name of a device or {@code fallback} if the device is unknown.
|
|
*/
|
|
public static String getDeviceName(String codename, String fallback) {
|
|
return getDeviceName(codename, codename, fallback);
|
|
}
|
|
|
|
/**
|
|
* Get the consumer friendly name of a device.
|
|
*
|
|
* @param codename
|
|
* the value of the system property "ro.product.device" ({@link Build#DEVICE}).
|
|
* @param model
|
|
* the value of the system property "ro.product.model" ({@link Build#MODEL}).
|
|
* @param fallback
|
|
* the fallback name if the device is unknown. Usually the value of the system property
|
|
* "ro.product.model" ({@link Build#MODEL})
|
|
* @return the market name of a device or {@code fallback} if the device is unknown.
|
|
*/
|
|
public static String getDeviceName(String codename, String model, String fallback) {
|
|
// ----------------------------------------------------------------------------
|
|
// Acer
|
|
if ((codename != null && codename.equals("acer_S57"))
|
|
|| (model != null && model.equals("S57"))) {
|
|
return "Liquid Jade Z";
|
|
}
|
|
if ((codename != null && codename.equals("acer_t08"))
|
|
|| (model != null && model.equals("T08"))) {
|
|
return "Liquid Zest Plus";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Asus
|
|
if ((codename != null && (codename.equals("grouper")
|
|
|| codename.equals("tilapia")))) {
|
|
return "Nexus 7 (2012)";
|
|
}
|
|
if ((codename != null && (codename.equals("deb")
|
|
|| codename.equals("flo")))) {
|
|
return "Nexus 7 (2013)";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Google
|
|
if ((codename != null && codename.equals("sailfish"))) {
|
|
return "Pixel";
|
|
}
|
|
if ((codename != null && codename.equals("walleye"))) {
|
|
return "Pixel 2";
|
|
}
|
|
if ((codename != null && codename.equals("taimen"))) {
|
|
return "Pixel 2 XL";
|
|
}
|
|
if ((codename != null && codename.equals("dragon"))) {
|
|
return "Pixel C";
|
|
}
|
|
if ((codename != null && codename.equals("marlin"))) {
|
|
return "Pixel XL";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// HTC
|
|
if ((codename != null && codename.equals("flounder"))) {
|
|
return "Nexus 9";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Huawei
|
|
if ((codename != null && (codename.equals("HWBND-H")))
|
|
|| (model != null && (model.equals("BND-L21")
|
|
|| model.equals("BND-L24")))) {
|
|
return "Honor 7X";
|
|
}
|
|
if (model != null && model.contains("WAS-LX")) {
|
|
return "P10 lite";
|
|
}
|
|
if ((codename != null && codename.equals("HWBKL"))
|
|
|| (model != null && model.equals("BKL-L09"))) {
|
|
return "Honor View 10";
|
|
}
|
|
if ((codename != null && (codename.equals("HWALP")))
|
|
|| (model != null && (model.equals("ALP-AL00")
|
|
|| model.equals("ALP-L09")
|
|
|| model.equals("ALP-L29")
|
|
|| model.equals("ALP-TL00")))) {
|
|
return "Mate 10";
|
|
}
|
|
if ((codename != null && (codename.equals("HWMHA")))
|
|
|| (model != null && (model.equals("MHA-AL00")
|
|
|| model.equals("MHA-L09")
|
|
|| model.equals("MHA-L29")
|
|
|| model.equals("MHA-TL00")))) {
|
|
return "Mate 9";
|
|
}
|
|
if ((codename != null && codename.equals("angler"))) {
|
|
return "Nexus 6P";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// LGE
|
|
if ((codename != null && (codename.equals("g2")))
|
|
|| (model != null && (model.equals("LG-D800")
|
|
|| model.equals("LG-D801")
|
|
|| model.equals("LG-D802")
|
|
|| model.equals("LG-D802T")
|
|
|| model.equals("LG-D802TR")
|
|
|| model.equals("LG-D803")
|
|
|| model.equals("LG-D805")
|
|
|| model.equals("LG-D806")
|
|
|| model.equals("LG-F320K")
|
|
|| model.equals("LG-F320L")
|
|
|| model.equals("LG-F320S")
|
|
|| model.equals("LG-LS980")
|
|
|| model.equals("VS980 4G")))) {
|
|
return "LG G2";
|
|
}
|
|
if ((codename != null && (codename.equals("g3")))
|
|
|| (model != null && (model.equals("AS985")
|
|
|| model.equals("LG-AS990")
|
|
|| model.equals("LG-D850")
|
|
|| model.equals("LG-D851")
|
|
|| model.equals("LG-D852")
|
|
|| model.equals("LG-D852G")
|
|
|| model.equals("LG-D855")
|
|
|| model.equals("LG-D856")
|
|
|| model.equals("LG-D857")
|
|
|| model.equals("LG-D858")
|
|
|| model.equals("LG-D858HK")
|
|
|| model.equals("LG-D859")
|
|
|| model.equals("LG-F400K")
|
|
|| model.equals("LG-F400L")
|
|
|| model.equals("LG-F400S")
|
|
|| model.equals("LGL24")
|
|
|| model.equals("LGLS990")
|
|
|| model.equals("LGUS990")
|
|
|| model.equals("LGV31")
|
|
|| model.equals("VS985 4G")))) {
|
|
return "LG G3";
|
|
}
|
|
if ((codename != null && (codename.equals("p1")))
|
|
|| (model != null && (model.equals("AS986")
|
|
|| model.equals("LG-AS811")
|
|
|| model.equals("LG-AS991")
|
|
|| model.equals("LG-F500K")
|
|
|| model.equals("LG-F500L")
|
|
|| model.equals("LG-F500S")
|
|
|| model.equals("LG-H810")
|
|
|| model.equals("LG-H811")
|
|
|| model.equals("LG-H812")
|
|
|| model.equals("LG-H815")
|
|
|| model.equals("LG-H818")
|
|
|| model.equals("LG-H819")
|
|
|| model.equals("LGLS991")
|
|
|| model.equals("LGUS991")
|
|
|| model.equals("LGV32")
|
|
|| model.equals("VS986")))) {
|
|
return "LG G4";
|
|
}
|
|
if ((codename != null && (codename.equals("h1")))
|
|
|| (model != null && (model.equals("LG-F700K")
|
|
|| model.equals("LG-F700L")
|
|
|| model.equals("LG-F700S")
|
|
|| model.equals("LG-H820")
|
|
|| model.equals("LG-H820PR")
|
|
|| model.equals("LG-H830")
|
|
|| model.equals("LG-H831")
|
|
|| model.equals("LG-H850")
|
|
|| model.equals("LG-H858")
|
|
|| model.equals("LG-H860")
|
|
|| model.equals("LG-H868")
|
|
|| model.equals("LGAS992")
|
|
|| model.equals("LGLS992")
|
|
|| model.equals("LGUS992")
|
|
|| model.equals("RS988")
|
|
|| model.equals("VS987")))) {
|
|
return "LG G5";
|
|
}
|
|
if ((codename != null && (codename.equals("lucye")))
|
|
|| (model != null && (model.equals("LG-AS993")
|
|
|| model.equals("LG-H870")
|
|
|| model.equals("LG-H870AR")
|
|
|| model.equals("LG-H870DS")
|
|
|| model.equals("LG-H870I")
|
|
|| model.equals("LG-H870S")
|
|
|| model.equals("LG-H871")
|
|
|| model.equals("LG-H872")
|
|
|| model.equals("LG-H872PR")
|
|
|| model.equals("LG-H873")
|
|
|| model.equals("LG-LS993")
|
|
|| model.equals("LGM-G600K")
|
|
|| model.equals("LGM-G600L")
|
|
|| model.equals("LGM-G600S")
|
|
|| model.equals("LGUS997")
|
|
|| model.equals("VS988")))) {
|
|
return "LG G6";
|
|
}
|
|
if ((codename != null && codename.equals("mako"))) {
|
|
return "Nexus 4";
|
|
}
|
|
if ((codename != null && codename.equals("hammerhead"))) {
|
|
return "Nexus 5";
|
|
}
|
|
if ((codename != null && codename.equals("bullhead"))) {
|
|
return "Nexus 5X";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Motorola
|
|
if ((codename != null && codename.equals("shamu"))) {
|
|
return "Nexus 6";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// OnePlus
|
|
if ((codename != null && codename.equals("OnePlus3"))
|
|
|| (model != null && model.equals("ONEPLUS A3000"))) {
|
|
return "OnePlus3";
|
|
}
|
|
if ((codename != null && codename.equals("OnePlus3T"))
|
|
|| (model != null && model.equals("ONEPLUS A3000"))) {
|
|
return "OnePlus3T";
|
|
}
|
|
if ((codename != null && codename.equals("OnePlus5"))
|
|
|| (model != null && model.equals("ONEPLUS A5000"))) {
|
|
return "OnePlus5";
|
|
}
|
|
if ((codename != null && codename.equals("OnePlus5T"))
|
|
|| (model != null && model.equals("ONEPLUS A5010"))) {
|
|
return "OnePlus5T";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Samsung
|
|
if ((codename != null && (codename.equals("a53g")
|
|
|| codename.equals("a5lte")
|
|
|| codename.equals("a5ltechn")
|
|
|| codename.equals("a5ltectc")
|
|
|| codename.equals("a5ltezh")
|
|
|| codename.equals("a5ltezt")
|
|
|| codename.equals("a5ulte")
|
|
|| codename.equals("a5ultebmc")
|
|
|| codename.equals("a5ultektt")
|
|
|| codename.equals("a5ultelgt")
|
|
|| codename.equals("a5ulteskt")))
|
|
|| (model != null && (model.equals("SM-A5000")
|
|
|| model.equals("SM-A5009")
|
|
|| model.equals("SM-A500F")
|
|
|| model.equals("SM-A500F1")
|
|
|| model.equals("SM-A500FU")
|
|
|| model.equals("SM-A500G")
|
|
|| model.equals("SM-A500H")
|
|
|| model.equals("SM-A500K")
|
|
|| model.equals("SM-A500L")
|
|
|| model.equals("SM-A500M")
|
|
|| model.equals("SM-A500S")
|
|
|| model.equals("SM-A500W")
|
|
|| model.equals("SM-A500X")
|
|
|| model.equals("SM-A500XZ")
|
|
|| model.equals("SM-A500Y")
|
|
|| model.equals("SM-A500YZ")))) {
|
|
return "Galaxy A5";
|
|
}
|
|
if ((codename != null && (codename.equals("vivaltods5m")))
|
|
|| (model != null && (model.equals("SM-G313HU")
|
|
|| model.equals("SM-G313HY")
|
|
|| model.equals("SM-G313M")
|
|
|| model.equals("SM-G313MY")))) {
|
|
return "Galaxy Ace 4";
|
|
}
|
|
if ((codename != null && (codename.equals("GT-S6352")
|
|
|| codename.equals("GT-S6802")
|
|
|| codename.equals("GT-S6802B")
|
|
|| codename.equals("SCH-I579")
|
|
|| codename.equals("SCH-I589")
|
|
|| codename.equals("SCH-i579")
|
|
|| codename.equals("SCH-i589")))
|
|
|| (model != null && (model.equals("GT-S6352")
|
|
|| model.equals("GT-S6802")
|
|
|| model.equals("GT-S6802B")
|
|
|| model.equals("SCH-I589")
|
|
|| model.equals("SCH-i579")
|
|
|| model.equals("SCH-i589")))) {
|
|
return "Galaxy Ace Duos";
|
|
}
|
|
if ((codename != null && (codename.equals("GT-S7500")
|
|
|| codename.equals("GT-S7500L")
|
|
|| codename.equals("GT-S7500T")
|
|
|| codename.equals("GT-S7500W")
|
|
|| codename.equals("GT-S7508")))
|
|
|| (model != null && (model.equals("GT-S7500")
|
|
|| model.equals("GT-S7500L")
|
|
|| model.equals("GT-S7500T")
|
|
|| model.equals("GT-S7500W")
|
|
|| model.equals("GT-S7508")))) {
|
|
return "Galaxy Ace Plus";
|
|
}
|
|
if ((codename != null && (codename.equals("heat3gtfnvzw")
|
|
|| codename.equals("heatnfc3g")
|
|
|| codename.equals("heatqlte")))
|
|
|| (model != null && (model.equals("SM-G310HN")
|
|
|| model.equals("SM-G357FZ")
|
|
|| model.equals("SM-S765C")
|
|
|| model.equals("SM-S766C")))) {
|
|
return "Galaxy Ace Style";
|
|
}
|
|
if ((codename != null && (codename.equals("vivalto3g")
|
|
|| codename.equals("vivalto3mve3g")
|
|
|| codename.equals("vivalto5mve3g")
|
|
|| codename.equals("vivaltolte")
|
|
|| codename.equals("vivaltonfc3g")))
|
|
|| (model != null && (model.equals("SM-G313F")
|
|
|| model.equals("SM-G313HN")
|
|
|| model.equals("SM-G313ML")
|
|
|| model.equals("SM-G313MU")
|
|
|| model.equals("SM-G316H")
|
|
|| model.equals("SM-G316HU")
|
|
|| model.equals("SM-G316M")
|
|
|| model.equals("SM-G316MY")))) {
|
|
return "Galaxy Ace4";
|
|
}
|
|
if ((codename != null && (codename.equals("core33g")
|
|
|| codename.equals("coreprimelte")
|
|
|| codename.equals("coreprimelteaio")
|
|
|| codename.equals("coreprimeltelra")
|
|
|| codename.equals("coreprimeltespr")
|
|
|| codename.equals("coreprimeltetfnvzw")
|
|
|| codename.equals("coreprimeltevzw")
|
|
|| codename.equals("coreprimeve3g")
|
|
|| codename.equals("coreprimevelte")
|
|
|| codename.equals("cprimeltemtr")
|
|
|| codename.equals("cprimeltetmo")
|
|
|| codename.equals("rossalte")
|
|
|| codename.equals("rossaltectc")
|
|
|| codename.equals("rossaltexsa")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G360AZ")
|
|
|| model.equals("SM-G3606")
|
|
|| model.equals("SM-G3608")
|
|
|| model.equals("SM-G3609")
|
|
|| model.equals("SM-G360F")
|
|
|| model.equals("SM-G360FY")
|
|
|| model.equals("SM-G360GY")
|
|
|| model.equals("SM-G360H")
|
|
|| model.equals("SM-G360HU")
|
|
|| model.equals("SM-G360M")
|
|
|| model.equals("SM-G360P")
|
|
|| model.equals("SM-G360R6")
|
|
|| model.equals("SM-G360T")
|
|
|| model.equals("SM-G360T1")
|
|
|| model.equals("SM-G360V")
|
|
|| model.equals("SM-G361F")
|
|
|| model.equals("SM-G361H")
|
|
|| model.equals("SM-G361HU")
|
|
|| model.equals("SM-G361M")
|
|
|| model.equals("SM-S820L")))) {
|
|
return "Galaxy Core Prime";
|
|
}
|
|
if ((codename != null && (codename.equals("kanas")
|
|
|| codename.equals("kanas3g")
|
|
|| codename.equals("kanas3gcmcc")
|
|
|| codename.equals("kanas3gctc")
|
|
|| codename.equals("kanas3gnfc")))
|
|
|| (model != null && (model.equals("SM-G3556D")
|
|
|| model.equals("SM-G3558")
|
|
|| model.equals("SM-G3559")
|
|
|| model.equals("SM-G355H")
|
|
|| model.equals("SM-G355HN")
|
|
|| model.equals("SM-G355HQ")
|
|
|| model.equals("SM-G355M")))) {
|
|
return "Galaxy Core2";
|
|
}
|
|
if ((codename != null && (codename.equals("e53g")
|
|
|| codename.equals("e5lte")
|
|
|| codename.equals("e5ltetfnvzw")
|
|
|| codename.equals("e5ltetw")))
|
|
|| (model != null && (model.equals("SM-E500F")
|
|
|| model.equals("SM-E500H")
|
|
|| model.equals("SM-E500M")
|
|
|| model.equals("SM-E500YZ")
|
|
|| model.equals("SM-S978L")))) {
|
|
return "Galaxy E5";
|
|
}
|
|
if ((codename != null && (codename.equals("e73g")
|
|
|| codename.equals("e7lte")
|
|
|| codename.equals("e7ltechn")
|
|
|| codename.equals("e7ltectc")
|
|
|| codename.equals("e7ltehktw")))
|
|
|| (model != null && (model.equals("SM-E7000")
|
|
|| model.equals("SM-E7009")
|
|
|| model.equals("SM-E700F")
|
|
|| model.equals("SM-E700H")
|
|
|| model.equals("SM-E700M")))) {
|
|
return "Galaxy E7";
|
|
}
|
|
if ((codename != null && (codename.equals("SCH-I629")
|
|
|| codename.equals("nevis")
|
|
|| codename.equals("nevis3g")
|
|
|| codename.equals("nevis3gcmcc")
|
|
|| codename.equals("nevisds")
|
|
|| codename.equals("nevisnvess")
|
|
|| codename.equals("nevisp")
|
|
|| codename.equals("nevisvess")
|
|
|| codename.equals("nevisw")))
|
|
|| (model != null && (model.equals("GT-S6790")
|
|
|| model.equals("GT-S6790E")
|
|
|| model.equals("GT-S6790L")
|
|
|| model.equals("GT-S6790N")
|
|
|| model.equals("GT-S6810")
|
|
|| model.equals("GT-S6810B")
|
|
|| model.equals("GT-S6810E")
|
|
|| model.equals("GT-S6810L")
|
|
|| model.equals("GT-S6810M")
|
|
|| model.equals("GT-S6810P")
|
|
|| model.equals("GT-S6812")
|
|
|| model.equals("GT-S6812B")
|
|
|| model.equals("GT-S6812C")
|
|
|| model.equals("GT-S6812i")
|
|
|| model.equals("GT-S6818")
|
|
|| model.equals("GT-S6818V")
|
|
|| model.equals("SCH-I629")))) {
|
|
return "Galaxy Fame";
|
|
}
|
|
if ((codename != null && codename.equals("grandprimelteatt"))
|
|
|| (model != null && model.equals("SAMSUNG-SM-G530A"))) {
|
|
return "Galaxy Go Prime";
|
|
}
|
|
if ((codename != null && (codename.equals("baffinlite")
|
|
|| codename.equals("baffinlitedtv")
|
|
|| codename.equals("baffinq3g")))
|
|
|| (model != null && (model.equals("GT-I9060")
|
|
|| model.equals("GT-I9060L")
|
|
|| model.equals("GT-I9063T")
|
|
|| model.equals("GT-I9082C")
|
|
|| model.equals("GT-I9168")
|
|
|| model.equals("GT-I9168I")))) {
|
|
return "Galaxy Grand Neo";
|
|
}
|
|
if ((codename != null && (codename.equals("fortuna3g")
|
|
|| codename.equals("fortuna3gdtv")
|
|
|| codename.equals("fortunalte")
|
|
|| codename.equals("fortunaltectc")
|
|
|| codename.equals("fortunaltezh")
|
|
|| codename.equals("fortunaltezt")
|
|
|| codename.equals("fortunave3g")
|
|
|| codename.equals("gprimelteacg")
|
|
|| codename.equals("gprimeltecan")
|
|
|| codename.equals("gprimeltemtr")
|
|
|| codename.equals("gprimeltespr")
|
|
|| codename.equals("gprimeltetfnvzw")
|
|
|| codename.equals("gprimeltetmo")
|
|
|| codename.equals("gprimelteusc")
|
|
|| codename.equals("grandprimelte")
|
|
|| codename.equals("grandprimelteaio")
|
|
|| codename.equals("grandprimeve3g")
|
|
|| codename.equals("grandprimeve3gdtv")
|
|
|| codename.equals("grandprimevelte")
|
|
|| codename.equals("grandprimevelteltn")
|
|
|| codename.equals("grandprimeveltezt")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G530AZ")
|
|
|| model.equals("SM-G5306W")
|
|
|| model.equals("SM-G5308W")
|
|
|| model.equals("SM-G5309W")
|
|
|| model.equals("SM-G530BT")
|
|
|| model.equals("SM-G530F")
|
|
|| model.equals("SM-G530FZ")
|
|
|| model.equals("SM-G530H")
|
|
|| model.equals("SM-G530M")
|
|
|| model.equals("SM-G530MU")
|
|
|| model.equals("SM-G530P")
|
|
|| model.equals("SM-G530R4")
|
|
|| model.equals("SM-G530R7")
|
|
|| model.equals("SM-G530T")
|
|
|| model.equals("SM-G530T1")
|
|
|| model.equals("SM-G530W")
|
|
|| model.equals("SM-G530Y")
|
|
|| model.equals("SM-G531BT")
|
|
|| model.equals("SM-G531F")
|
|
|| model.equals("SM-G531H")
|
|
|| model.equals("SM-G531M")
|
|
|| model.equals("SM-G531Y")
|
|
|| model.equals("SM-S920L")
|
|
|| model.equals("gprimelteacg")))) {
|
|
return "Galaxy Grand Prime";
|
|
}
|
|
if ((codename != null && (codename.equals("ms013g")
|
|
|| codename.equals("ms013gdtv")
|
|
|| codename.equals("ms013gss")
|
|
|| codename.equals("ms01lte")
|
|
|| codename.equals("ms01ltektt")
|
|
|| codename.equals("ms01ltelgt")
|
|
|| codename.equals("ms01lteskt")))
|
|
|| (model != null && (model.equals("SM-G710")
|
|
|| model.equals("SM-G7102")
|
|
|| model.equals("SM-G7102T")
|
|
|| model.equals("SM-G7105")
|
|
|| model.equals("SM-G7105H")
|
|
|| model.equals("SM-G7105L")
|
|
|| model.equals("SM-G7106")
|
|
|| model.equals("SM-G7108")
|
|
|| model.equals("SM-G7109")
|
|
|| model.equals("SM-G710K")
|
|
|| model.equals("SM-G710L")
|
|
|| model.equals("SM-G710S")))) {
|
|
return "Galaxy Grand2";
|
|
}
|
|
if ((codename != null && (codename.equals("j13g")
|
|
|| codename.equals("j13gtfnvzw")
|
|
|| codename.equals("j1lte")
|
|
|| codename.equals("j1nlte")
|
|
|| codename.equals("j1qltevzw")
|
|
|| codename.equals("j1xlte")
|
|
|| codename.equals("j1xlteaio")
|
|
|| codename.equals("j1xlteatt")
|
|
|| codename.equals("j1xltecan")
|
|
|| codename.equals("j1xqltespr")
|
|
|| codename.equals("j1xqltetfnvzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-J120A")
|
|
|| model.equals("SAMSUNG-SM-J120AZ")
|
|
|| model.equals("SM-J100F")
|
|
|| model.equals("SM-J100FN")
|
|
|| model.equals("SM-J100G")
|
|
|| model.equals("SM-J100H")
|
|
|| model.equals("SM-J100M")
|
|
|| model.equals("SM-J100ML")
|
|
|| model.equals("SM-J100MU")
|
|
|| model.equals("SM-J100VPP")
|
|
|| model.equals("SM-J100Y")
|
|
|| model.equals("SM-J120F")
|
|
|| model.equals("SM-J120FN")
|
|
|| model.equals("SM-J120M")
|
|
|| model.equals("SM-J120P")
|
|
|| model.equals("SM-J120W")
|
|
|| model.equals("SM-S120VL")
|
|
|| model.equals("SM-S777C")))) {
|
|
return "Galaxy J1";
|
|
}
|
|
if ((codename != null && (codename.equals("j1acelte")
|
|
|| codename.equals("j1acelteltn")
|
|
|| codename.equals("j1acevelte")
|
|
|| codename.equals("j1pop3g")))
|
|
|| (model != null && (model.equals("SM-J110F")
|
|
|| model.equals("SM-J110G")
|
|
|| model.equals("SM-J110H")
|
|
|| model.equals("SM-J110L")
|
|
|| model.equals("SM-J110M")
|
|
|| model.equals("SM-J111F")
|
|
|| model.equals("SM-J111M")))) {
|
|
return "Galaxy J1 Ace";
|
|
}
|
|
if ((codename != null && (codename.equals("j53g")
|
|
|| codename.equals("j5lte")
|
|
|| codename.equals("j5ltechn")
|
|
|| codename.equals("j5ltekx")
|
|
|| codename.equals("j5nlte")
|
|
|| codename.equals("j5ylte")))
|
|
|| (model != null && (model.equals("SM-J5007")
|
|
|| model.equals("SM-J5008")
|
|
|| model.equals("SM-J500F")
|
|
|| model.equals("SM-J500FN")
|
|
|| model.equals("SM-J500G")
|
|
|| model.equals("SM-J500H")
|
|
|| model.equals("SM-J500M")
|
|
|| model.equals("SM-J500N0")
|
|
|| model.equals("SM-J500Y")))) {
|
|
return "Galaxy J5";
|
|
}
|
|
if ((codename != null && (codename.equals("j75ltektt")
|
|
|| codename.equals("j7e3g")
|
|
|| codename.equals("j7elte")
|
|
|| codename.equals("j7ltechn")))
|
|
|| (model != null && (model.equals("SM-J7008")
|
|
|| model.equals("SM-J700F")
|
|
|| model.equals("SM-J700H")
|
|
|| model.equals("SM-J700K")
|
|
|| model.equals("SM-J700M")))) {
|
|
return "Galaxy J7";
|
|
}
|
|
if ((codename != null && (codename.equals("maguro")
|
|
|| codename.equals("toro")
|
|
|| codename.equals("toroplus")))
|
|
|| (model != null && (model.equals("Galaxy X")))) {
|
|
return "Galaxy Nexus";
|
|
}
|
|
if ((codename != null && (codename.equals("lt033g")
|
|
|| codename.equals("lt03ltektt")
|
|
|| codename.equals("lt03ltelgt")
|
|
|| codename.equals("lt03lteskt")
|
|
|| codename.equals("p4notelte")
|
|
|| codename.equals("p4noteltektt")
|
|
|| codename.equals("p4noteltelgt")
|
|
|| codename.equals("p4notelteskt")
|
|
|| codename.equals("p4noteltespr")
|
|
|| codename.equals("p4notelteusc")
|
|
|| codename.equals("p4noteltevzw")
|
|
|| codename.equals("p4noterf")
|
|
|| codename.equals("p4noterfktt")
|
|
|| codename.equals("p4notewifi")
|
|
|| codename.equals("p4notewifi43241any")
|
|
|| codename.equals("p4notewifiany")
|
|
|| codename.equals("p4notewifiktt")
|
|
|| codename.equals("p4notewifiww")))
|
|
|| (model != null && (model.equals("GT-N8000")
|
|
|| model.equals("GT-N8005")
|
|
|| model.equals("GT-N8010")
|
|
|| model.equals("GT-N8013")
|
|
|| model.equals("GT-N8020")
|
|
|| model.equals("SCH-I925")
|
|
|| model.equals("SCH-I925U")
|
|
|| model.equals("SHV-E230K")
|
|
|| model.equals("SHV-E230L")
|
|
|| model.equals("SHV-E230S")
|
|
|| model.equals("SHW-M480K")
|
|
|| model.equals("SHW-M480W")
|
|
|| model.equals("SHW-M485W")
|
|
|| model.equals("SHW-M486W")
|
|
|| model.equals("SM-P601")
|
|
|| model.equals("SM-P602")
|
|
|| model.equals("SM-P605K")
|
|
|| model.equals("SM-P605L")
|
|
|| model.equals("SM-P605S")
|
|
|| model.equals("SPH-P600")))) {
|
|
return "Galaxy Note 10.1";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-01G")
|
|
|| codename.equals("SCL24")
|
|
|| codename.equals("tbeltektt")
|
|
|| codename.equals("tbeltelgt")
|
|
|| codename.equals("tbelteskt")
|
|
|| codename.equals("tblte")
|
|
|| codename.equals("tblteatt")
|
|
|| codename.equals("tbltecan")
|
|
|| codename.equals("tbltechn")
|
|
|| codename.equals("tbltespr")
|
|
|| codename.equals("tbltetmo")
|
|
|| codename.equals("tblteusc")
|
|
|| codename.equals("tbltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-N915A")
|
|
|| model.equals("SC-01G")
|
|
|| model.equals("SCL24")
|
|
|| model.equals("SM-N9150")
|
|
|| model.equals("SM-N915F")
|
|
|| model.equals("SM-N915FY")
|
|
|| model.equals("SM-N915G")
|
|
|| model.equals("SM-N915K")
|
|
|| model.equals("SM-N915L")
|
|
|| model.equals("SM-N915P")
|
|
|| model.equals("SM-N915R4")
|
|
|| model.equals("SM-N915S")
|
|
|| model.equals("SM-N915T")
|
|
|| model.equals("SM-N915T3")
|
|
|| model.equals("SM-N915V")
|
|
|| model.equals("SM-N915W8")
|
|
|| model.equals("SM-N915X")))) {
|
|
return "Galaxy Note Edge";
|
|
}
|
|
if ((codename != null && (codename.equals("v1a3g")
|
|
|| codename.equals("v1awifi")
|
|
|| codename.equals("v1awifikx")
|
|
|| codename.equals("viennalte")
|
|
|| codename.equals("viennalteatt")
|
|
|| codename.equals("viennaltekx")
|
|
|| codename.equals("viennaltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-P907A")
|
|
|| model.equals("SM-P900")
|
|
|| model.equals("SM-P901")
|
|
|| model.equals("SM-P905")
|
|
|| model.equals("SM-P905F0")
|
|
|| model.equals("SM-P905M")
|
|
|| model.equals("SM-P905V")))) {
|
|
return "Galaxy Note Pro 12.2";
|
|
}
|
|
if ((codename != null && (codename.equals("tre3caltektt")
|
|
|| codename.equals("tre3caltelgt")
|
|
|| codename.equals("tre3calteskt")
|
|
|| codename.equals("tre3g")
|
|
|| codename.equals("trelte")
|
|
|| codename.equals("treltektt")
|
|
|| codename.equals("treltelgt")
|
|
|| codename.equals("trelteskt")
|
|
|| codename.equals("trhplte")
|
|
|| codename.equals("trlte")
|
|
|| codename.equals("trlteatt")
|
|
|| codename.equals("trltecan")
|
|
|| codename.equals("trltechn")
|
|
|| codename.equals("trltechnzh")
|
|
|| codename.equals("trltespr")
|
|
|| codename.equals("trltetmo")
|
|
|| codename.equals("trlteusc")
|
|
|| codename.equals("trltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-N910A")
|
|
|| model.equals("SM-N9100")
|
|
|| model.equals("SM-N9106W")
|
|
|| model.equals("SM-N9108V")
|
|
|| model.equals("SM-N9109W")
|
|
|| model.equals("SM-N910C")
|
|
|| model.equals("SM-N910F")
|
|
|| model.equals("SM-N910G")
|
|
|| model.equals("SM-N910H")
|
|
|| model.equals("SM-N910K")
|
|
|| model.equals("SM-N910L")
|
|
|| model.equals("SM-N910P")
|
|
|| model.equals("SM-N910R4")
|
|
|| model.equals("SM-N910S")
|
|
|| model.equals("SM-N910T")
|
|
|| model.equals("SM-N910T2")
|
|
|| model.equals("SM-N910T3")
|
|
|| model.equals("SM-N910U")
|
|
|| model.equals("SM-N910V")
|
|
|| model.equals("SM-N910W8")
|
|
|| model.equals("SM-N910X")
|
|
|| model.equals("SM-N916K")
|
|
|| model.equals("SM-N916L")
|
|
|| model.equals("SM-N916S")))) {
|
|
return "Galaxy Note4";
|
|
}
|
|
if ((codename != null && (codename.equals("noblelte")
|
|
|| codename.equals("noblelteacg")
|
|
|| codename.equals("noblelteatt")
|
|
|| codename.equals("nobleltebmc")
|
|
|| codename.equals("nobleltechn")
|
|
|| codename.equals("nobleltecmcc")
|
|
|| codename.equals("nobleltehk")
|
|
|| codename.equals("nobleltektt")
|
|
|| codename.equals("nobleltelgt")
|
|
|| codename.equals("nobleltelra")
|
|
|| codename.equals("noblelteskt")
|
|
|| codename.equals("nobleltespr")
|
|
|| codename.equals("nobleltetmo")
|
|
|| codename.equals("noblelteusc")
|
|
|| codename.equals("nobleltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-N920A")
|
|
|| model.equals("SM-N9200")
|
|
|| model.equals("SM-N9208")
|
|
|| model.equals("SM-N920C")
|
|
|| model.equals("SM-N920F")
|
|
|| model.equals("SM-N920G")
|
|
|| model.equals("SM-N920I")
|
|
|| model.equals("SM-N920K")
|
|
|| model.equals("SM-N920L")
|
|
|| model.equals("SM-N920P")
|
|
|| model.equals("SM-N920R4")
|
|
|| model.equals("SM-N920R6")
|
|
|| model.equals("SM-N920R7")
|
|
|| model.equals("SM-N920S")
|
|
|| model.equals("SM-N920T")
|
|
|| model.equals("SM-N920V")
|
|
|| model.equals("SM-N920W8")
|
|
|| model.equals("SM-N920X")))) {
|
|
return "Galaxy Note5";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-01J")
|
|
|| codename.equals("SCV34")
|
|
|| codename.equals("gracelte")
|
|
|| codename.equals("graceltektt")
|
|
|| codename.equals("graceltelgt")
|
|
|| codename.equals("gracelteskt")
|
|
|| codename.equals("graceqlteacg")
|
|
|| codename.equals("graceqlteatt")
|
|
|| codename.equals("graceqltebmc")
|
|
|| codename.equals("graceqltechn")
|
|
|| codename.equals("graceqltedcm")
|
|
|| codename.equals("graceqltelra")
|
|
|| codename.equals("graceqltespr")
|
|
|| codename.equals("graceqltetfnvzw")
|
|
|| codename.equals("graceqltetmo")
|
|
|| codename.equals("graceqlteue")
|
|
|| codename.equals("graceqlteusc")
|
|
|| codename.equals("graceqltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-N930A")
|
|
|| model.equals("SC-01J")
|
|
|| model.equals("SCV34")
|
|
|| model.equals("SGH-N037")
|
|
|| model.equals("SM-N9300")
|
|
|| model.equals("SM-N930F")
|
|
|| model.equals("SM-N930K")
|
|
|| model.equals("SM-N930L")
|
|
|| model.equals("SM-N930P")
|
|
|| model.equals("SM-N930R4")
|
|
|| model.equals("SM-N930R6")
|
|
|| model.equals("SM-N930R7")
|
|
|| model.equals("SM-N930S")
|
|
|| model.equals("SM-N930T")
|
|
|| model.equals("SM-N930U")
|
|
|| model.equals("SM-N930V")
|
|
|| model.equals("SM-N930VL")
|
|
|| model.equals("SM-N930W8")
|
|
|| model.equals("SM-N930X")))) {
|
|
return "Galaxy Note7";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-01K")
|
|
|| codename.equals("SCV37")
|
|
|| codename.equals("greatlte")
|
|
|| codename.equals("greatlteks")
|
|
|| codename.equals("greatqlte")
|
|
|| codename.equals("greatqltechn")
|
|
|| codename.equals("greatqltecmcc")
|
|
|| codename.equals("greatqltecs")
|
|
|| codename.equals("greatqlteue")))
|
|
|| (model != null && (model.equals("SC-01K")
|
|
|| model.equals("SCV37")
|
|
|| model.equals("SM-N9500")
|
|
|| model.equals("SM-N9508")
|
|
|| model.equals("SM-N950F")
|
|
|| model.equals("SM-N950N")
|
|
|| model.equals("SM-N950U")
|
|
|| model.equals("SM-N950U1")
|
|
|| model.equals("SM-N950W")
|
|
|| model.equals("SM-N950XN")))) {
|
|
return "Galaxy Note8";
|
|
}
|
|
if ((codename != null && (codename.equals("o5lte")
|
|
|| codename.equals("o5ltechn")
|
|
|| codename.equals("o5prolte")
|
|
|| codename.equals("on5ltemtr")
|
|
|| codename.equals("on5ltetfntmo")
|
|
|| codename.equals("on5ltetmo")))
|
|
|| (model != null && (model.equals("SM-G5500")
|
|
|| model.equals("SM-G550FY")
|
|
|| model.equals("SM-G550T")
|
|
|| model.equals("SM-G550T1")
|
|
|| model.equals("SM-G550T2")
|
|
|| model.equals("SM-S550TL")))) {
|
|
return "Galaxy On5";
|
|
}
|
|
if ((codename != null && (codename.equals("o7lte")
|
|
|| codename.equals("o7ltechn")
|
|
|| codename.equals("on7elte")))
|
|
|| (model != null && (model.equals("SM-G6000")
|
|
|| model.equals("SM-G600F")
|
|
|| model.equals("SM-G600FY")))) {
|
|
return "Galaxy On7";
|
|
}
|
|
if ((codename != null && (codename.equals("GT-I9000")
|
|
|| codename.equals("GT-I9000B")
|
|
|| codename.equals("GT-I9000M")
|
|
|| codename.equals("GT-I9000T")
|
|
|| codename.equals("GT-I9003")
|
|
|| codename.equals("GT-I9003L")
|
|
|| codename.equals("GT-I9008L")
|
|
|| codename.equals("GT-I9010")
|
|
|| codename.equals("GT-I9018")
|
|
|| codename.equals("GT-I9050")
|
|
|| codename.equals("SC-02B")
|
|
|| codename.equals("SCH-I500")
|
|
|| codename.equals("SCH-S950C")
|
|
|| codename.equals("SCH-i909")
|
|
|| codename.equals("SGH-I897")
|
|
|| codename.equals("SGH-T959V")
|
|
|| codename.equals("SGH-T959W")
|
|
|| codename.equals("SHW-M110S")
|
|
|| codename.equals("SHW-M190S")
|
|
|| codename.equals("SPH-D700")
|
|
|| codename.equals("loganlte")))
|
|
|| (model != null && (model.equals("GT-I9000")
|
|
|| model.equals("GT-I9000B")
|
|
|| model.equals("GT-I9000M")
|
|
|| model.equals("GT-I9000T")
|
|
|| model.equals("GT-I9003")
|
|
|| model.equals("GT-I9003L")
|
|
|| model.equals("GT-I9008L")
|
|
|| model.equals("GT-I9010")
|
|
|| model.equals("GT-I9018")
|
|
|| model.equals("GT-I9050")
|
|
|| model.equals("GT-S7275")
|
|
|| model.equals("SAMSUNG-SGH-I897")
|
|
|| model.equals("SC-02B")
|
|
|| model.equals("SCH-I500")
|
|
|| model.equals("SCH-S950C")
|
|
|| model.equals("SCH-i909")
|
|
|| model.equals("SGH-T959V")
|
|
|| model.equals("SGH-T959W")
|
|
|| model.equals("SHW-M110S")
|
|
|| model.equals("SHW-M190S")
|
|
|| model.equals("SPH-D700")))) {
|
|
return "Galaxy S";
|
|
}
|
|
if ((codename != null && (codename.equals("kylechn")
|
|
|| codename.equals("kyleopen")
|
|
|| codename.equals("kyletdcmcc")))
|
|
|| (model != null && (model.equals("GT-S7562")
|
|
|| model.equals("GT-S7568")))) {
|
|
return "Galaxy S Duos";
|
|
}
|
|
if ((codename != null && (codename.equals("kyleprods")))
|
|
|| (model != null && (model.equals("GT-S7582")
|
|
|| model.equals("GT-S7582L")))) {
|
|
return "Galaxy S Duos2";
|
|
}
|
|
if ((codename != null && codename.equals("vivalto3gvn"))
|
|
|| (model != null && model.equals("SM-G313HZ"))) {
|
|
return "Galaxy S Duos3";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-03E")
|
|
|| codename.equals("c1att")
|
|
|| codename.equals("c1ktt")
|
|
|| codename.equals("c1lgt")
|
|
|| codename.equals("c1skt")
|
|
|| codename.equals("d2att")
|
|
|| codename.equals("d2can")
|
|
|| codename.equals("d2cri")
|
|
|| codename.equals("d2dcm")
|
|
|| codename.equals("d2lteMetroPCS")
|
|
|| codename.equals("d2lterefreshspr")
|
|
|| codename.equals("d2ltetmo")
|
|
|| codename.equals("d2mtr")
|
|
|| codename.equals("d2spi")
|
|
|| codename.equals("d2spr")
|
|
|| codename.equals("d2tfnspr")
|
|
|| codename.equals("d2tfnvzw")
|
|
|| codename.equals("d2tmo")
|
|
|| codename.equals("d2usc")
|
|
|| codename.equals("d2vmu")
|
|
|| codename.equals("d2vzw")
|
|
|| codename.equals("d2xar")
|
|
|| codename.equals("m0")
|
|
|| codename.equals("m0apt")
|
|
|| codename.equals("m0chn")
|
|
|| codename.equals("m0cmcc")
|
|
|| codename.equals("m0ctc")
|
|
|| codename.equals("m0ctcduos")
|
|
|| codename.equals("m0skt")
|
|
|| codename.equals("m3")
|
|
|| codename.equals("m3dcm")))
|
|
|| (model != null && (model.equals("GT-I9300")
|
|
|| model.equals("GT-I9300T")
|
|
|| model.equals("GT-I9305")
|
|
|| model.equals("GT-I9305N")
|
|
|| model.equals("GT-I9305T")
|
|
|| model.equals("GT-I9308")
|
|
|| model.equals("Gravity")
|
|
|| model.equals("GravityQuad")
|
|
|| model.equals("SAMSUNG-SGH-I747")
|
|
|| model.equals("SC-03E")
|
|
|| model.equals("SC-06D")
|
|
|| model.equals("SCH-I535")
|
|
|| model.equals("SCH-I535PP")
|
|
|| model.equals("SCH-I939")
|
|
|| model.equals("SCH-I939D")
|
|
|| model.equals("SCH-L710")
|
|
|| model.equals("SCH-R530C")
|
|
|| model.equals("SCH-R530M")
|
|
|| model.equals("SCH-R530U")
|
|
|| model.equals("SCH-R530X")
|
|
|| model.equals("SCH-S960L")
|
|
|| model.equals("SCH-S968C")
|
|
|| model.equals("SGH-I747M")
|
|
|| model.equals("SGH-I748")
|
|
|| model.equals("SGH-T999")
|
|
|| model.equals("SGH-T999L")
|
|
|| model.equals("SGH-T999N")
|
|
|| model.equals("SGH-T999V")
|
|
|| model.equals("SHV-E210K")
|
|
|| model.equals("SHV-E210L")
|
|
|| model.equals("SHV-E210S")
|
|
|| model.equals("SHW-M440S")
|
|
|| model.equals("SPH-L710")
|
|
|| model.equals("SPH-L710T")))) {
|
|
return "Galaxy S3";
|
|
}
|
|
if ((codename != null && (codename.equals("golden")
|
|
|| codename.equals("goldenlteatt")
|
|
|| codename.equals("goldenltebmc")
|
|
|| codename.equals("goldenltevzw")
|
|
|| codename.equals("goldenve3g")))
|
|
|| (model != null && (model.equals("GT-I8190")
|
|
|| model.equals("GT-I8190L")
|
|
|| model.equals("GT-I8190N")
|
|
|| model.equals("GT-I8190T")
|
|
|| model.equals("GT-I8200L")
|
|
|| model.equals("SAMSUNG-SM-G730A")
|
|
|| model.equals("SM-G730V")
|
|
|| model.equals("SM-G730W8")))) {
|
|
return "Galaxy S3 Mini";
|
|
}
|
|
if ((codename != null && (codename.equals("goldenve3g")
|
|
|| codename.equals("goldenvess3g")))
|
|
|| (model != null && (model.equals("GT-I8200")
|
|
|| model.equals("GT-I8200N")
|
|
|| model.equals("GT-I8200Q")))) {
|
|
return "Galaxy S3 Mini Value Edition";
|
|
}
|
|
if ((codename != null && (codename.equals("s3ve3g")
|
|
|| codename.equals("s3ve3gdd")
|
|
|| codename.equals("s3ve3gds")
|
|
|| codename.equals("s3ve3gdsdd")))
|
|
|| (model != null && (model.equals("GT-I9300I")
|
|
|| model.equals("GT-I9301I")
|
|
|| model.equals("GT-I9301Q")))) {
|
|
return "Galaxy S3 Neo";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-04E")
|
|
|| codename.equals("ja3g")
|
|
|| codename.equals("ja3gduosctc")
|
|
|| codename.equals("jaltektt")
|
|
|| codename.equals("jaltelgt")
|
|
|| codename.equals("jalteskt")
|
|
|| codename.equals("jflte")
|
|
|| codename.equals("jflteMetroPCS")
|
|
|| codename.equals("jflteaio")
|
|
|| codename.equals("jflteatt")
|
|
|| codename.equals("jfltecan")
|
|
|| codename.equals("jfltecri")
|
|
|| codename.equals("jfltecsp")
|
|
|| codename.equals("jfltelra")
|
|
|| codename.equals("jflterefreshspr")
|
|
|| codename.equals("jfltespr")
|
|
|| codename.equals("jfltetfnatt")
|
|
|| codename.equals("jfltetfntmo")
|
|
|| codename.equals("jfltetmo")
|
|
|| codename.equals("jflteusc")
|
|
|| codename.equals("jfltevzw")
|
|
|| codename.equals("jfltevzwpp")
|
|
|| codename.equals("jftdd")
|
|
|| codename.equals("jfvelte")
|
|
|| codename.equals("jfwifi")
|
|
|| codename.equals("jsglte")
|
|
|| codename.equals("ks01lte")
|
|
|| codename.equals("ks01ltektt")
|
|
|| codename.equals("ks01ltelgt")))
|
|
|| (model != null && (model.equals("GT-I9500")
|
|
|| model.equals("GT-I9505")
|
|
|| model.equals("GT-I9505X")
|
|
|| model.equals("GT-I9506")
|
|
|| model.equals("GT-I9507")
|
|
|| model.equals("GT-I9507V")
|
|
|| model.equals("GT-I9508")
|
|
|| model.equals("GT-I9508C")
|
|
|| model.equals("GT-I9508V")
|
|
|| model.equals("GT-I9515")
|
|
|| model.equals("GT-I9515L")
|
|
|| model.equals("SAMSUNG-SGH-I337")
|
|
|| model.equals("SAMSUNG-SGH-I337Z")
|
|
|| model.equals("SC-04E")
|
|
|| model.equals("SCH-I545")
|
|
|| model.equals("SCH-I545L")
|
|
|| model.equals("SCH-I545PP")
|
|
|| model.equals("SCH-I959")
|
|
|| model.equals("SCH-R970")
|
|
|| model.equals("SCH-R970C")
|
|
|| model.equals("SCH-R970X")
|
|
|| model.equals("SGH-I337M")
|
|
|| model.equals("SGH-M919")
|
|
|| model.equals("SGH-M919N")
|
|
|| model.equals("SGH-M919V")
|
|
|| model.equals("SGH-S970G")
|
|
|| model.equals("SHV-E300K")
|
|
|| model.equals("SHV-E300L")
|
|
|| model.equals("SHV-E300S")
|
|
|| model.equals("SHV-E330K")
|
|
|| model.equals("SHV-E330L")
|
|
|| model.equals("SM-S975L")
|
|
|| model.equals("SPH-L720")
|
|
|| model.equals("SPH-L720T")))) {
|
|
return "Galaxy S4";
|
|
}
|
|
if ((codename != null && (codename.equals("serrano3g")
|
|
|| codename.equals("serranods")
|
|
|| codename.equals("serranolte")
|
|
|| codename.equals("serranoltebmc")
|
|
|| codename.equals("serranoltektt")
|
|
|| codename.equals("serranoltekx")
|
|
|| codename.equals("serranoltelra")
|
|
|| codename.equals("serranoltespr")
|
|
|| codename.equals("serranolteusc")
|
|
|| codename.equals("serranoltevzw")
|
|
|| codename.equals("serranove3g")
|
|
|| codename.equals("serranovelte")
|
|
|| codename.equals("serranovolteatt")))
|
|
|| (model != null && (model.equals("GT-I9190")
|
|
|| model.equals("GT-I9192")
|
|
|| model.equals("GT-I9192I")
|
|
|| model.equals("GT-I9195")
|
|
|| model.equals("GT-I9195I")
|
|
|| model.equals("GT-I9195L")
|
|
|| model.equals("GT-I9195T")
|
|
|| model.equals("GT-I9195X")
|
|
|| model.equals("GT-I9197")
|
|
|| model.equals("SAMSUNG-SGH-I257")
|
|
|| model.equals("SCH-I435")
|
|
|| model.equals("SCH-I435L")
|
|
|| model.equals("SCH-R890")
|
|
|| model.equals("SGH-I257M")
|
|
|| model.equals("SHV-E370D")
|
|
|| model.equals("SHV-E370K")
|
|
|| model.equals("SPH-L520")))) {
|
|
return "Galaxy S4 Mini";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-04F")
|
|
|| codename.equals("SCL23")
|
|
|| codename.equals("k3g")
|
|
|| codename.equals("klte")
|
|
|| codename.equals("klteMetroPCS")
|
|
|| codename.equals("klteacg")
|
|
|| codename.equals("klteaio")
|
|
|| codename.equals("klteatt")
|
|
|| codename.equals("kltecan")
|
|
|| codename.equals("klteduoszn")
|
|
|| codename.equals("kltektt")
|
|
|| codename.equals("kltelgt")
|
|
|| codename.equals("kltelra")
|
|
|| codename.equals("klteskt")
|
|
|| codename.equals("kltespr")
|
|
|| codename.equals("kltetfnvzw")
|
|
|| codename.equals("kltetmo")
|
|
|| codename.equals("klteusc")
|
|
|| codename.equals("kltevzw")
|
|
|| codename.equals("kwifi")
|
|
|| codename.equals("lentisltektt")
|
|
|| codename.equals("lentisltelgt")
|
|
|| codename.equals("lentislteskt")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G900A")
|
|
|| model.equals("SAMSUNG-SM-G900AZ")
|
|
|| model.equals("SC-04F")
|
|
|| model.equals("SCL23")
|
|
|| model.equals("SM-G9006W")
|
|
|| model.equals("SM-G9008W")
|
|
|| model.equals("SM-G9009W")
|
|
|| model.equals("SM-G900F")
|
|
|| model.equals("SM-G900FQ")
|
|
|| model.equals("SM-G900H")
|
|
|| model.equals("SM-G900I")
|
|
|| model.equals("SM-G900K")
|
|
|| model.equals("SM-G900L")
|
|
|| model.equals("SM-G900M")
|
|
|| model.equals("SM-G900MD")
|
|
|| model.equals("SM-G900P")
|
|
|| model.equals("SM-G900R4")
|
|
|| model.equals("SM-G900R6")
|
|
|| model.equals("SM-G900R7")
|
|
|| model.equals("SM-G900S")
|
|
|| model.equals("SM-G900T")
|
|
|| model.equals("SM-G900T1")
|
|
|| model.equals("SM-G900T3")
|
|
|| model.equals("SM-G900T4")
|
|
|| model.equals("SM-G900V")
|
|
|| model.equals("SM-G900W8")
|
|
|| model.equals("SM-G900X")
|
|
|| model.equals("SM-G906K")
|
|
|| model.equals("SM-G906L")
|
|
|| model.equals("SM-G906S")
|
|
|| model.equals("SM-S903VL")))) {
|
|
return "Galaxy S5";
|
|
}
|
|
if ((codename != null && (codename.equals("s5neolte")
|
|
|| codename.equals("s5neoltecan")))
|
|
|| (model != null && (model.equals("SM-G903F")
|
|
|| model.equals("SM-G903M")
|
|
|| model.equals("SM-G903W")))) {
|
|
return "Galaxy S5 Neo";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-05G")
|
|
|| codename.equals("zeroflte")
|
|
|| codename.equals("zeroflteacg")
|
|
|| codename.equals("zeroflteaio")
|
|
|| codename.equals("zeroflteatt")
|
|
|| codename.equals("zerofltebmc")
|
|
|| codename.equals("zerofltechn")
|
|
|| codename.equals("zerofltectc")
|
|
|| codename.equals("zerofltektt")
|
|
|| codename.equals("zerofltelgt")
|
|
|| codename.equals("zerofltelra")
|
|
|| codename.equals("zerofltemtr")
|
|
|| codename.equals("zeroflteskt")
|
|
|| codename.equals("zerofltespr")
|
|
|| codename.equals("zerofltetfnvzw")
|
|
|| codename.equals("zerofltetmo")
|
|
|| codename.equals("zeroflteusc")
|
|
|| codename.equals("zerofltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G920A")
|
|
|| model.equals("SAMSUNG-SM-G920AZ")
|
|
|| model.equals("SC-05G")
|
|
|| model.equals("SM-G9200")
|
|
|| model.equals("SM-G9208")
|
|
|| model.equals("SM-G9209")
|
|
|| model.equals("SM-G920F")
|
|
|| model.equals("SM-G920I")
|
|
|| model.equals("SM-G920K")
|
|
|| model.equals("SM-G920L")
|
|
|| model.equals("SM-G920P")
|
|
|| model.equals("SM-G920R4")
|
|
|| model.equals("SM-G920R6")
|
|
|| model.equals("SM-G920R7")
|
|
|| model.equals("SM-G920S")
|
|
|| model.equals("SM-G920T")
|
|
|| model.equals("SM-G920T1")
|
|
|| model.equals("SM-G920V")
|
|
|| model.equals("SM-G920W8")
|
|
|| model.equals("SM-G920X")
|
|
|| model.equals("SM-S906L")
|
|
|| model.equals("SM-S907VL")))) {
|
|
return "Galaxy S6";
|
|
}
|
|
if ((codename != null && (codename.equals("404SC")
|
|
|| codename.equals("SC-04G")
|
|
|| codename.equals("SCV31")
|
|
|| codename.equals("zerolte")
|
|
|| codename.equals("zerolteacg")
|
|
|| codename.equals("zerolteatt")
|
|
|| codename.equals("zeroltebmc")
|
|
|| codename.equals("zeroltechn")
|
|
|| codename.equals("zeroltektt")
|
|
|| codename.equals("zeroltelgt")
|
|
|| codename.equals("zeroltelra")
|
|
|| codename.equals("zerolteskt")
|
|
|| codename.equals("zeroltespr")
|
|
|| codename.equals("zeroltetmo")
|
|
|| codename.equals("zerolteusc")
|
|
|| codename.equals("zeroltevzw")))
|
|
|| (model != null && (model.equals("404SC")
|
|
|| model.equals("SAMSUNG-SM-G925A")
|
|
|| model.equals("SC-04G")
|
|
|| model.equals("SCV31")
|
|
|| model.equals("SM-G9250")
|
|
|| model.equals("SM-G925F")
|
|
|| model.equals("SM-G925I")
|
|
|| model.equals("SM-G925K")
|
|
|| model.equals("SM-G925L")
|
|
|| model.equals("SM-G925P")
|
|
|| model.equals("SM-G925R4")
|
|
|| model.equals("SM-G925R6")
|
|
|| model.equals("SM-G925R7")
|
|
|| model.equals("SM-G925S")
|
|
|| model.equals("SM-G925T")
|
|
|| model.equals("SM-G925V")
|
|
|| model.equals("SM-G925W8")
|
|
|| model.equals("SM-G925X")))) {
|
|
return "Galaxy S6 Edge";
|
|
}
|
|
if ((codename != null && (codename.equals("zenlte")
|
|
|| codename.equals("zenlteatt")
|
|
|| codename.equals("zenltebmc")
|
|
|| codename.equals("zenltechn")
|
|
|| codename.equals("zenltektt")
|
|
|| codename.equals("zenltekx")
|
|
|| codename.equals("zenltelgt")
|
|
|| codename.equals("zenlteskt")
|
|
|| codename.equals("zenltespr")
|
|
|| codename.equals("zenltetmo")
|
|
|| codename.equals("zenlteusc")
|
|
|| codename.equals("zenltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G928A")
|
|
|| model.equals("SM-G9280")
|
|
|| model.equals("SM-G9287")
|
|
|| model.equals("SM-G9287C")
|
|
|| model.equals("SM-G928C")
|
|
|| model.equals("SM-G928F")
|
|
|| model.equals("SM-G928G")
|
|
|| model.equals("SM-G928I")
|
|
|| model.equals("SM-G928K")
|
|
|| model.equals("SM-G928L")
|
|
|| model.equals("SM-G928N0")
|
|
|| model.equals("SM-G928P")
|
|
|| model.equals("SM-G928R4")
|
|
|| model.equals("SM-G928S")
|
|
|| model.equals("SM-G928T")
|
|
|| model.equals("SM-G928V")
|
|
|| model.equals("SM-G928W8")
|
|
|| model.equals("SM-G928X")))) {
|
|
return "Galaxy S6 Edge+";
|
|
}
|
|
if ((codename != null && (codename.equals("herolte")
|
|
|| codename.equals("heroltebmc")
|
|
|| codename.equals("heroltektt")
|
|
|| codename.equals("heroltelgt")
|
|
|| codename.equals("herolteskt")
|
|
|| codename.equals("heroqlteacg")
|
|
|| codename.equals("heroqlteaio")
|
|
|| codename.equals("heroqlteatt")
|
|
|| codename.equals("heroqltecctvzw")
|
|
|| codename.equals("heroqltechn")
|
|
|| codename.equals("heroqltelra")
|
|
|| codename.equals("heroqltemtr")
|
|
|| codename.equals("heroqltespr")
|
|
|| codename.equals("heroqltetfnvzw")
|
|
|| codename.equals("heroqltetmo")
|
|
|| codename.equals("heroqlteue")
|
|
|| codename.equals("heroqlteusc")
|
|
|| codename.equals("heroqltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G930A")
|
|
|| model.equals("SAMSUNG-SM-G930AZ")
|
|
|| model.equals("SM-G9300")
|
|
|| model.equals("SM-G9308")
|
|
|| model.equals("SM-G930F")
|
|
|| model.equals("SM-G930K")
|
|
|| model.equals("SM-G930L")
|
|
|| model.equals("SM-G930P")
|
|
|| model.equals("SM-G930R4")
|
|
|| model.equals("SM-G930R6")
|
|
|| model.equals("SM-G930R7")
|
|
|| model.equals("SM-G930S")
|
|
|| model.equals("SM-G930T")
|
|
|| model.equals("SM-G930T1")
|
|
|| model.equals("SM-G930U")
|
|
|| model.equals("SM-G930V")
|
|
|| model.equals("SM-G930VC")
|
|
|| model.equals("SM-G930VL")
|
|
|| model.equals("SM-G930W8")
|
|
|| model.equals("SM-G930X")))) {
|
|
return "Galaxy S7";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-02H")
|
|
|| codename.equals("SCV33")
|
|
|| codename.equals("hero2lte")
|
|
|| codename.equals("hero2ltebmc")
|
|
|| codename.equals("hero2ltektt")
|
|
|| codename.equals("hero2ltelgt")
|
|
|| codename.equals("hero2lteskt")
|
|
|| codename.equals("hero2qlteatt")
|
|
|| codename.equals("hero2qltecctvzw")
|
|
|| codename.equals("hero2qltechn")
|
|
|| codename.equals("hero2qltespr")
|
|
|| codename.equals("hero2qltetmo")
|
|
|| codename.equals("hero2qlteue")
|
|
|| codename.equals("hero2qlteusc")
|
|
|| codename.equals("hero2qltevzw")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-G935A")
|
|
|| model.equals("SC-02H")
|
|
|| model.equals("SCV33")
|
|
|| model.equals("SM-G9350")
|
|
|| model.equals("SM-G935F")
|
|
|| model.equals("SM-G935K")
|
|
|| model.equals("SM-G935L")
|
|
|| model.equals("SM-G935P")
|
|
|| model.equals("SM-G935R4")
|
|
|| model.equals("SM-G935S")
|
|
|| model.equals("SM-G935T")
|
|
|| model.equals("SM-G935U")
|
|
|| model.equals("SM-G935V")
|
|
|| model.equals("SM-G935VC")
|
|
|| model.equals("SM-G935W8")
|
|
|| model.equals("SM-G935X")))) {
|
|
return "Galaxy S7 Edge";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-02J")
|
|
|| codename.equals("SCV36")
|
|
|| codename.equals("dreamlte")
|
|
|| codename.equals("dreamlteks")
|
|
|| codename.equals("dreamqltecan")
|
|
|| codename.equals("dreamqltechn")
|
|
|| codename.equals("dreamqltecmcc")
|
|
|| codename.equals("dreamqltesq")
|
|
|| codename.equals("dreamqlteue")))
|
|
|| (model != null && (model.equals("SC-02J")
|
|
|| model.equals("SCV36")
|
|
|| model.equals("SM-G9500")
|
|
|| model.equals("SM-G9508")
|
|
|| model.equals("SM-G950F")
|
|
|| model.equals("SM-G950N")
|
|
|| model.equals("SM-G950U")
|
|
|| model.equals("SM-G950U1")
|
|
|| model.equals("SM-G950W")))) {
|
|
return "Galaxy S8";
|
|
}
|
|
if ((codename != null && (codename.equals("SC-03J")
|
|
|| codename.equals("SCV35")
|
|
|| codename.equals("dream2lte")
|
|
|| codename.equals("dream2lteks")
|
|
|| codename.equals("dream2qltecan")
|
|
|| codename.equals("dream2qltechn")
|
|
|| codename.equals("dream2qltesq")
|
|
|| codename.equals("dream2qlteue")))
|
|
|| (model != null && (model.equals("SC-03J")
|
|
|| model.equals("SCV35")
|
|
|| model.equals("SM-G9550")
|
|
|| model.equals("SM-G955F")
|
|
|| model.equals("SM-G955N")
|
|
|| model.equals("SM-G955U")
|
|
|| model.equals("SM-G955U1")
|
|
|| model.equals("SM-G955W")))) {
|
|
return "Galaxy S8+";
|
|
}
|
|
if ((codename != null && (codename.equals("starlte")
|
|
|| codename.equals("starlteks")
|
|
|| codename.equals("starqltechn")
|
|
|| codename.equals("starqltecmcc")
|
|
|| codename.equals("starqltecs")
|
|
|| codename.equals("starqltesq")
|
|
|| codename.equals("starqlteue")))
|
|
|| (model != null && (model.equals("SM-G9600")
|
|
|| model.equals("SM-G9608")
|
|
|| model.equals("SM-G960F")
|
|
|| model.equals("SM-G960N")
|
|
|| model.equals("SM-G960U")
|
|
|| model.equals("SM-G960U1")
|
|
|| model.equals("SM-G960W")))) {
|
|
return "Galaxy S9";
|
|
}
|
|
if ((codename != null && (codename.equals("star2lte")
|
|
|| codename.equals("star2lteks")
|
|
|| codename.equals("star2qltechn")
|
|
|| codename.equals("star2qltecs")
|
|
|| codename.equals("star2qltesq")
|
|
|| codename.equals("star2qlteue")))
|
|
|| (model != null && (model.equals("SM-G9650")
|
|
|| model.equals("SM-G965F")
|
|
|| model.equals("SM-G965N")
|
|
|| model.equals("SM-G965U")
|
|
|| model.equals("SM-G965U1")
|
|
|| model.equals("SM-G965W")))) {
|
|
return "Galaxy S9+";
|
|
}
|
|
if ((codename != null && (codename.equals("GT-P7500")
|
|
|| codename.equals("GT-P7500D")
|
|
|| codename.equals("GT-P7503")
|
|
|| codename.equals("GT-P7510")
|
|
|| codename.equals("SC-01D")
|
|
|| codename.equals("SCH-I905")
|
|
|| codename.equals("SGH-T859")
|
|
|| codename.equals("SHW-M300W")
|
|
|| codename.equals("SHW-M380K")
|
|
|| codename.equals("SHW-M380S")
|
|
|| codename.equals("SHW-M380W")))
|
|
|| (model != null && (model.equals("GT-P7500")
|
|
|| model.equals("GT-P7500D")
|
|
|| model.equals("GT-P7503")
|
|
|| model.equals("GT-P7510")
|
|
|| model.equals("SC-01D")
|
|
|| model.equals("SCH-I905")
|
|
|| model.equals("SGH-T859")
|
|
|| model.equals("SHW-M300W")
|
|
|| model.equals("SHW-M380K")
|
|
|| model.equals("SHW-M380S")
|
|
|| model.equals("SHW-M380W")))) {
|
|
return "Galaxy Tab 10.1";
|
|
}
|
|
if ((codename != null && (codename.equals("GT-P6200")
|
|
|| codename.equals("GT-P6200L")
|
|
|| codename.equals("GT-P6201")
|
|
|| codename.equals("GT-P6210")
|
|
|| codename.equals("GT-P6211")
|
|
|| codename.equals("SC-02D")
|
|
|| codename.equals("SGH-T869")
|
|
|| codename.equals("SHW-M430W")))
|
|
|| (model != null && (model.equals("GT-P6200")
|
|
|| model.equals("GT-P6200L")
|
|
|| model.equals("GT-P6201")
|
|
|| model.equals("GT-P6210")
|
|
|| model.equals("GT-P6211")
|
|
|| model.equals("SC-02D")
|
|
|| model.equals("SGH-T869")
|
|
|| model.equals("SHW-M430W")))) {
|
|
return "Galaxy Tab 7.0 Plus";
|
|
}
|
|
if ((codename != null && (codename.equals("gteslteatt")
|
|
|| codename.equals("gtesltebmc")
|
|
|| codename.equals("gtesltelgt")
|
|
|| codename.equals("gteslteskt")
|
|
|| codename.equals("gtesltetmo")
|
|
|| codename.equals("gtesltetw")
|
|
|| codename.equals("gtesltevzw")
|
|
|| codename.equals("gtesqltespr")
|
|
|| codename.equals("gtesqlteusc")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-T377A")
|
|
|| model.equals("SM-T375L")
|
|
|| model.equals("SM-T375S")
|
|
|| model.equals("SM-T3777")
|
|
|| model.equals("SM-T377P")
|
|
|| model.equals("SM-T377R4")
|
|
|| model.equals("SM-T377T")
|
|
|| model.equals("SM-T377V")
|
|
|| model.equals("SM-T377W")))) {
|
|
return "Galaxy Tab E 8.0";
|
|
}
|
|
if ((codename != null && (codename.equals("gtel3g")
|
|
|| codename.equals("gtelltevzw")
|
|
|| codename.equals("gtelwifi")
|
|
|| codename.equals("gtelwifichn")
|
|
|| codename.equals("gtelwifiue")))
|
|
|| (model != null && (model.equals("SM-T560")
|
|
|| model.equals("SM-T560NU")
|
|
|| model.equals("SM-T561")
|
|
|| model.equals("SM-T561M")
|
|
|| model.equals("SM-T561Y")
|
|
|| model.equals("SM-T562")
|
|
|| model.equals("SM-T567V")))) {
|
|
return "Galaxy Tab E 9.6";
|
|
}
|
|
if ((codename != null && (codename.equals("403SC")
|
|
|| codename.equals("degas2wifi")
|
|
|| codename.equals("degas2wifibmwchn")
|
|
|| codename.equals("degas3g")
|
|
|| codename.equals("degaslte")
|
|
|| codename.equals("degasltespr")
|
|
|| codename.equals("degasltevzw")
|
|
|| codename.equals("degasvelte")
|
|
|| codename.equals("degasveltechn")
|
|
|| codename.equals("degaswifi")
|
|
|| codename.equals("degaswifibmwzc")
|
|
|| codename.equals("degaswifidtv")
|
|
|| codename.equals("degaswifiopenbnn")
|
|
|| codename.equals("degaswifiue")))
|
|
|| (model != null && (model.equals("403SC")
|
|
|| model.equals("SM-T230")
|
|
|| model.equals("SM-T230NT")
|
|
|| model.equals("SM-T230NU")
|
|
|| model.equals("SM-T230NW")
|
|
|| model.equals("SM-T230NY")
|
|
|| model.equals("SM-T230X")
|
|
|| model.equals("SM-T231")
|
|
|| model.equals("SM-T232")
|
|
|| model.equals("SM-T235")
|
|
|| model.equals("SM-T235Y")
|
|
|| model.equals("SM-T237P")
|
|
|| model.equals("SM-T237V")
|
|
|| model.equals("SM-T239")
|
|
|| model.equals("SM-T2397")
|
|
|| model.equals("SM-T239C")
|
|
|| model.equals("SM-T239M")))) {
|
|
return "Galaxy Tab4 7.0";
|
|
}
|
|
if ((codename != null && (codename.equals("gvlte")
|
|
|| codename.equals("gvlteatt")
|
|
|| codename.equals("gvltevzw")
|
|
|| codename.equals("gvltexsp")
|
|
|| codename.equals("gvwifijpn")
|
|
|| codename.equals("gvwifiue")))
|
|
|| (model != null && (model.equals("SAMSUNG-SM-T677A")
|
|
|| model.equals("SM-T670")
|
|
|| model.equals("SM-T677")
|
|
|| model.equals("SM-T677V")))) {
|
|
return "Galaxy View";
|
|
}
|
|
if ((codename != null && codename.equals("manta"))) {
|
|
return "Nexus 10";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Sony
|
|
if ((codename != null && (codename.equals("D2104")
|
|
|| codename.equals("D2105")))
|
|
|| (model != null && (model.equals("D2104")
|
|
|| model.equals("D2105")))) {
|
|
return "Xperia E1 dual";
|
|
}
|
|
if ((codename != null && (codename.equals("D2202")
|
|
|| codename.equals("D2203")
|
|
|| codename.equals("D2206")
|
|
|| codename.equals("D2243")))
|
|
|| (model != null && (model.equals("D2202")
|
|
|| model.equals("D2203")
|
|
|| model.equals("D2206")
|
|
|| model.equals("D2243")))) {
|
|
return "Xperia E3";
|
|
}
|
|
if ((codename != null && (codename.equals("E5603")
|
|
|| codename.equals("E5606")
|
|
|| codename.equals("E5653")))
|
|
|| (model != null && (model.equals("E5603")
|
|
|| model.equals("E5606")
|
|
|| model.equals("E5653")))) {
|
|
return "Xperia M5";
|
|
}
|
|
if ((codename != null && (codename.equals("E5633")
|
|
|| codename.equals("E5643")
|
|
|| codename.equals("E5663")))
|
|
|| (model != null && (model.equals("E5633")
|
|
|| model.equals("E5643")
|
|
|| model.equals("E5663")))) {
|
|
return "Xperia M5 Dual";
|
|
}
|
|
if ((codename != null && codename.equals("LT26i"))
|
|
|| (model != null && model.equals("LT26i"))) {
|
|
return "Xperia S";
|
|
}
|
|
if ((codename != null && (codename.equals("D5303")
|
|
|| codename.equals("D5306")
|
|
|| codename.equals("D5316")
|
|
|| codename.equals("D5316N")
|
|
|| codename.equals("D5322")))
|
|
|| (model != null && (model.equals("D5303")
|
|
|| model.equals("D5306")
|
|
|| model.equals("D5316")
|
|
|| model.equals("D5316N")
|
|
|| model.equals("D5322")))) {
|
|
return "Xperia T2 Ultra";
|
|
}
|
|
if ((codename != null && (codename.equals("txs03")))
|
|
|| (model != null && (model.equals("SGPT12")
|
|
|| model.equals("SGPT13")))) {
|
|
return "Xperia Tablet S";
|
|
}
|
|
if ((codename != null && (codename.equals("SGP311")
|
|
|| codename.equals("SGP312")
|
|
|| codename.equals("SGP321")
|
|
|| codename.equals("SGP351")))
|
|
|| (model != null && (model.equals("SGP311")
|
|
|| model.equals("SGP312")
|
|
|| model.equals("SGP321")
|
|
|| model.equals("SGP351")))) {
|
|
return "Xperia Tablet Z";
|
|
}
|
|
if ((codename != null && (codename.equals("D6502")
|
|
|| codename.equals("D6503")
|
|
|| codename.equals("D6543")
|
|
|| codename.equals("SO-03F")))
|
|
|| (model != null && (model.equals("D6502")
|
|
|| model.equals("D6503")
|
|
|| model.equals("D6543")
|
|
|| model.equals("SO-03F")))) {
|
|
return "Xperia Z2";
|
|
}
|
|
if ((codename != null && (codename.equals("401SO")
|
|
|| codename.equals("D6603")
|
|
|| codename.equals("D6616")
|
|
|| codename.equals("D6643")
|
|
|| codename.equals("D6646")
|
|
|| codename.equals("D6653")
|
|
|| codename.equals("SO-01G")
|
|
|| codename.equals("SOL26")
|
|
|| codename.equals("leo")))
|
|
|| (model != null && (model.equals("401SO")
|
|
|| model.equals("D6603")
|
|
|| model.equals("D6616")
|
|
|| model.equals("D6643")
|
|
|| model.equals("D6646")
|
|
|| model.equals("D6653")
|
|
|| model.equals("SO-01G")
|
|
|| model.equals("SOL26")))) {
|
|
return "Xperia Z3";
|
|
}
|
|
if ((codename != null && (codename.equals("402SO")
|
|
|| codename.equals("SO-03G")
|
|
|| codename.equals("SOV31")))
|
|
|| (model != null && (model.equals("402SO")
|
|
|| model.equals("SO-03G")
|
|
|| model.equals("SOV31")))) {
|
|
return "Xperia Z4";
|
|
}
|
|
if ((codename != null && (codename.equals("E5803")
|
|
|| codename.equals("E5823")
|
|
|| codename.equals("SO-02H")))
|
|
|| (model != null && (model.equals("E5803")
|
|
|| model.equals("E5823")
|
|
|| model.equals("SO-02H")))) {
|
|
return "Xperia Z5 Compact";
|
|
}
|
|
// ----------------------------------------------------------------------------
|
|
// Sony Ericsson
|
|
if ((codename != null && (codename.equals("LT26i")
|
|
|| codename.equals("SO-02D")))
|
|
|| (model != null && (model.equals("LT26i")
|
|
|| model.equals("SO-02D")))) {
|
|
return "Xperia S";
|
|
}
|
|
if ((codename != null && (codename.equals("SGP311")
|
|
|| codename.equals("SGP321")
|
|
|| codename.equals("SGP341")
|
|
|| codename.equals("SO-03E")))
|
|
|| (model != null && (model.equals("SGP311")
|
|
|| model.equals("SGP321")
|
|
|| model.equals("SGP341")
|
|
|| model.equals("SO-03E")))) {
|
|
return "Xperia Tablet Z";
|
|
}
|
|
return fallback;
|
|
}
|
|
|
|
/**
|
|
* Get the {@link DeviceInfo} for the current device. Do not run on the UI thread, as this may
|
|
* download JSON to retrieve the {@link DeviceInfo}. JSON is only downloaded once and then
|
|
* stored to {@link SharedPreferences}.
|
|
*
|
|
* @param context
|
|
* the application context.
|
|
* @return {@link DeviceInfo} for the current device.
|
|
*/
|
|
@WorkerThread
|
|
public static DeviceInfo getDeviceInfo(Context context) {
|
|
return getDeviceInfo(context.getApplicationContext(), Build.DEVICE, Build.MODEL);
|
|
}
|
|
|
|
/**
|
|
* Get the {@link DeviceInfo} for the current device. Do not run on the UI thread, as this may
|
|
* download JSON to retrieve the {@link DeviceInfo}. JSON is only downloaded once and then
|
|
* stored to {@link SharedPreferences}.
|
|
*
|
|
* @param context
|
|
* the application context.
|
|
* @param codename
|
|
* the codename of the device
|
|
* @return {@link DeviceInfo} for the current device.
|
|
*/
|
|
@WorkerThread
|
|
public static DeviceInfo getDeviceInfo(Context context, String codename) {
|
|
return getDeviceInfo(context, codename, null);
|
|
}
|
|
|
|
/**
|
|
* Get the {@link DeviceInfo} for the current device. Do not run on the UI thread, as this may
|
|
* download JSON to retrieve the {@link DeviceInfo}. JSON is only downloaded once and then
|
|
* stored to {@link SharedPreferences}.
|
|
*
|
|
* @param context
|
|
* the application context.
|
|
* @param codename
|
|
* the codename of the device
|
|
* @param model
|
|
* the model of the device
|
|
* @return {@link DeviceInfo} for the current device.
|
|
*/
|
|
@WorkerThread
|
|
public static DeviceInfo getDeviceInfo(Context context, String codename, String model) {
|
|
SharedPreferences prefs = context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
|
|
String key = String.format("%s:%s", codename, model);
|
|
String savedJson = prefs.getString(key, null);
|
|
if (savedJson != null) {
|
|
try {
|
|
return new DeviceInfo(new JSONObject(savedJson));
|
|
} catch (JSONException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// check if we have an internet connection
|
|
int ret = context.checkCallingOrSelfPermission(Manifest.permission.ACCESS_NETWORK_STATE);
|
|
boolean isConnectedToNetwork = false;
|
|
if (ret == PackageManager.PERMISSION_GRANTED) {
|
|
ConnectivityManager connMgr = (ConnectivityManager)
|
|
context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
|
|
if (networkInfo != null && networkInfo.isConnected()) {
|
|
isConnectedToNetwork = true;
|
|
}
|
|
} else {
|
|
// assume we are connected.
|
|
isConnectedToNetwork = true;
|
|
}
|
|
|
|
if (isConnectedToNetwork) {
|
|
try {
|
|
// Get the device name from the generated JSON files created from Google's device list.
|
|
String url = String.format(DEVICE_JSON_URL, codename.toLowerCase(Locale.ENGLISH));
|
|
String jsonString = downloadJson(url);
|
|
JSONArray jsonArray = new JSONArray(jsonString);
|
|
for (int i = 0, len = jsonArray.length(); i < len; i++) {
|
|
JSONObject json = jsonArray.getJSONObject(i);
|
|
DeviceInfo info = new DeviceInfo(json);
|
|
if ((codename.equalsIgnoreCase(info.codename) && model == null)
|
|
|| codename.equalsIgnoreCase(info.codename) && model.equalsIgnoreCase(info.model)) {
|
|
// Save to SharedPreferences so we don't need to make another request.
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
editor.putString(key, json.toString());
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
|
|
editor.apply();
|
|
} else {
|
|
editor.commit();
|
|
}
|
|
return info;
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
if (codename.equals(Build.DEVICE) && model.equals(Build.MODEL)) {
|
|
return new DeviceInfo(Build.MANUFACTURER, getDeviceName(), codename, model); // current device
|
|
}
|
|
|
|
return new DeviceInfo(null, null, codename, model); // unknown device
|
|
}
|
|
|
|
/**
|
|
* <p>Capitalizes getAllProcesses the whitespace separated words in a String. Only the first
|
|
* letter of each word is changed.</p>
|
|
*
|
|
* Whitespace is defined by {@link Character#isWhitespace(char)}.
|
|
*
|
|
* @param str
|
|
* the String to capitalize
|
|
* @return capitalized The capitalized String
|
|
*/
|
|
private static String capitalize(String str) {
|
|
if (TextUtils.isEmpty(str)) {
|
|
return str;
|
|
}
|
|
char[] arr = str.toCharArray();
|
|
boolean capitalizeNext = true;
|
|
String phrase = "";
|
|
for (char c : arr) {
|
|
if (capitalizeNext && Character.isLetter(c)) {
|
|
phrase += Character.toUpperCase(c);
|
|
capitalizeNext = false;
|
|
continue;
|
|
} else if (Character.isWhitespace(c)) {
|
|
capitalizeNext = true;
|
|
}
|
|
phrase += c;
|
|
}
|
|
return phrase;
|
|
}
|
|
|
|
/** Download URL to String */
|
|
@WorkerThread
|
|
private static String downloadJson(String myurl) throws IOException {
|
|
StringBuilder sb = new StringBuilder();
|
|
BufferedReader reader = null;
|
|
try {
|
|
URL url = new URL(myurl);
|
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
conn.setReadTimeout(10000);
|
|
conn.setConnectTimeout(15000);
|
|
conn.setRequestMethod("GET");
|
|
conn.setDoInput(true);
|
|
conn.connect();
|
|
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
|
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
|
String line;
|
|
while ((line = reader.readLine()) != null) {
|
|
sb.append(line).append('\n');
|
|
}
|
|
}
|
|
return sb.toString();
|
|
} finally {
|
|
if (reader != null) {
|
|
reader.close();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static final class Request {
|
|
|
|
final Context context;
|
|
final Handler handler;
|
|
String codename;
|
|
String model;
|
|
|
|
private Request(Context ctx) {
|
|
context = ctx;
|
|
handler = new Handler(ctx.getMainLooper());
|
|
}
|
|
|
|
/**
|
|
* Set the device codename to query. You should also set the model.
|
|
*
|
|
* @param codename
|
|
* the value of the system property "ro.product.device"
|
|
* @return This Request object to allow for chaining of calls to set methods.
|
|
* @see Build#DEVICE
|
|
*/
|
|
public Request setCodename(String codename) {
|
|
this.codename = codename;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Set the device model to query. You should also set the codename.
|
|
*
|
|
* @param model
|
|
* the value of the system property "ro.product.model"
|
|
* @return This Request object to allow for chaining of calls to set methods.
|
|
* @see Build#MODEL
|
|
*/
|
|
public Request setModel(String model) {
|
|
this.model = model;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Download information about the device. This saves the results in shared-preferences so
|
|
* future requests will not need a network connection.
|
|
*
|
|
* @param callback
|
|
* the callback to retrieve the {@link DeviceInfo}
|
|
*/
|
|
public void request(Callback callback) {
|
|
if (codename == null && model == null) {
|
|
codename = Build.DEVICE;
|
|
model = Build.MODEL;
|
|
}
|
|
GetDeviceRunnable runnable = new GetDeviceRunnable(callback);
|
|
if (Looper.myLooper() == Looper.getMainLooper()) {
|
|
new Thread(runnable).start();
|
|
} else {
|
|
runnable.run(); // already running in background thread.
|
|
}
|
|
}
|
|
|
|
private final class GetDeviceRunnable implements Runnable {
|
|
|
|
final Callback callback;
|
|
DeviceInfo deviceInfo;
|
|
Exception error;
|
|
|
|
public GetDeviceRunnable(Callback callback) {
|
|
this.callback = callback;
|
|
}
|
|
|
|
@Override public void run() {
|
|
try {
|
|
deviceInfo = getDeviceInfo(context, codename, model);
|
|
} catch (Exception e) {
|
|
error = e;
|
|
}
|
|
handler.post(new Runnable() {
|
|
|
|
@Override public void run() {
|
|
callback.onFinished(deviceInfo, error);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Callback which is invoked when the {@link DeviceInfo} is finished loading.
|
|
*/
|
|
public interface Callback {
|
|
|
|
/**
|
|
* Callback to get the device info. This is run on the UI thread.
|
|
*
|
|
* @param info
|
|
* the requested {@link DeviceInfo}
|
|
* @param error
|
|
* {@code null} if nothing went wrong.
|
|
*/
|
|
void onFinished(DeviceInfo info, Exception error);
|
|
}
|
|
|
|
/**
|
|
* Device information based on
|
|
* <a href="https://support.google.com/googleplay/answer/1727131">Google's maintained list</a>.
|
|
*/
|
|
public static final class DeviceInfo {
|
|
|
|
/** Retail branding */
|
|
public final String manufacturer;
|
|
|
|
/** Marketing name */
|
|
public final String marketName;
|
|
|
|
/** the value of the system property "ro.product.device" */
|
|
public final String codename;
|
|
|
|
/** the value of the system property "ro.product.model" */
|
|
public final String model;
|
|
|
|
public DeviceInfo(String manufacturer, String marketName, String codename, String model) {
|
|
this.manufacturer = manufacturer;
|
|
this.marketName = marketName;
|
|
this.codename = codename;
|
|
this.model = model;
|
|
}
|
|
|
|
private DeviceInfo(JSONObject jsonObject) throws JSONException {
|
|
manufacturer = jsonObject.getString("manufacturer");
|
|
marketName = jsonObject.getString("market_name");
|
|
codename = jsonObject.getString("codename");
|
|
model = jsonObject.getString("model");
|
|
}
|
|
|
|
/**
|
|
* @return the consumer friendly name of the device.
|
|
*/
|
|
public String getName() {
|
|
if (!TextUtils.isEmpty(marketName)) {
|
|
return marketName;
|
|
}
|
|
return capitalize(model);
|
|
}
|
|
}
|
|
|
|
}
|
|
|