getWeather(@Query("city") String name);
18 | /* @Query("tag") String tag,
19 | @Query("start") int start,
20 | @Query("count") int count)*/
21 | }
22 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/java/com/shanlovana/rxandretrofit/interfaces/SuccessOrNot.java:
--------------------------------------------------------------------------------
1 | package com.shanlovana.rxandretrofit.interfaces;
2 |
3 | import com.shanlovana.rxandretrofit.entity.WeatherBean;
4 |
5 | /**
6 | * Created by Shanlovana on 2017-04-09.
7 | */
8 |
9 | public interface SuccessOrNot {
10 |
11 | void onSuccess(WeatherBean mWeatherBean);
12 | void onError(String result);
13 | }
14 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
19 |
20 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/rxandretrofit/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/rxandretrofit/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/rxandretrofit/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/rxandretrofit/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/rxandretrofit/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | RXandRetrofit
3 |
4 |
--------------------------------------------------------------------------------
/rxandretrofit/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/rxandretrofit/src/test/java/com/shanlovana/rxandretrofit/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.shanlovana.rxandretrofit;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':rxandretrofit', 'mvpapp', 'tvnetcheck', 'optimization'
2 | include ':multiDownload'
3 |
--------------------------------------------------------------------------------
/tvnetcheck/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/tvnetcheck/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion '25.0.0'
6 | defaultConfig {
7 | applicationId "com.ming.tvnetcheck"
8 | minSdkVersion 19
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 | multiDexEnabled true
14 | }
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 | }
22 |
23 | dependencies {
24 | compile fileTree(include: ['*.jar'], dir: 'libs')
25 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
26 | exclude group: 'com.android.support', module: 'support-annotations'
27 | })
28 | compile 'com.android.support:appcompat-v7:25.0.0'
29 | compile 'com.android.support:multidex:1.0.0'
30 | testCompile 'junit:junit:4.12'
31 | provided files('libs/classes_secure.jar')
32 | }
33 |
--------------------------------------------------------------------------------
/tvnetcheck/libs/classes_secure.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/libs/classes_secure.jar
--------------------------------------------------------------------------------
/tvnetcheck/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\Android\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/tvnetcheck/src/androidTest/java/com/ming/tvnetcheck/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.ming.tvnetcheck", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/java/com/ming/tvnetcheck/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck;
2 |
3 | import android.os.Handler;
4 | import android.os.Message;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.os.Bundle;
7 | import android.util.Log;
8 | import android.widget.ImageView;
9 |
10 | import com.ming.tvnetcheck.utils.NetCheckUtils;
11 |
12 | import static com.ming.tvnetcheck.utils.ConFigs.NET;
13 |
14 | public class MainActivity extends AppCompatActivity {
15 | //网络监听图片数组
16 | public static int[] mNetLogo = new int[]{R.drawable.wifi0, R.drawable.wifi1,
17 | R.drawable.wifi2, R.drawable.wifi3, R.drawable.connect,
18 | R.drawable.etnerror, R.drawable.wifinotnormal};
19 |
20 | ImageView mImageView;
21 | NetCheckUtils mNetCheckUtils;
22 |
23 |
24 | private Handler mHandler = new Handler() {
25 | @Override
26 | public void handleMessage(Message msg) {
27 | super.handleMessage(msg);
28 | switch (msg.what) {
29 | case NET:
30 | int obj = (int) msg.obj;
31 | Log.e("handleMessage","obj"+obj);
32 |
33 | mImageView.setImageResource(mNetLogo[obj]);
34 |
35 | break;
36 |
37 | }
38 | }
39 | };
40 |
41 | @Override
42 | protected void onCreate(Bundle savedInstanceState) {
43 | super.onCreate(savedInstanceState);
44 | setContentView(R.layout.activity_main);
45 | mImageView = (ImageView) findViewById(R.id.netImage);
46 | checkNet();
47 | }
48 |
49 | private void checkNet() {//开启新线程,防止阻塞UI主线程
50 | Thread mThread = new Thread(new Runnable() {
51 | @Override
52 | public void run() {
53 | Log.e("handleMessagecheckNet","obj51");
54 | mNetCheckUtils = new NetCheckUtils(MainActivity.this, mHandler);//网络
55 | mNetCheckUtils.getNetwork();
56 | }
57 | });
58 |
59 | mThread.start();
60 |
61 | }
62 |
63 |
64 | @Override
65 | protected void onDestroy() {
66 | super.onDestroy();
67 | mNetCheckUtils.unregisterReceiver();
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/java/com/ming/tvnetcheck/utils/ConFigs.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck.utils;
2 |
3 | /**
4 | * Created by ChangMingShan on 2017/1/2.
5 | */
6 |
7 | public class ConFigs {
8 |
9 | public static final int NET = 2;
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/java/com/ming/tvnetcheck/utils/NetCheckUtils.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck.utils;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.content.IntentFilter;
7 | import android.net.ConnectivityManager;
8 | import android.net.ethernet.EthernetManager;
9 | import android.net.wifi.WifiManager;
10 | import android.os.Handler;
11 | import android.os.Message;
12 | import android.util.Log;
13 |
14 | import static com.ming.tvnetcheck.utils.ConFigs.NET;
15 |
16 | /**
17 | * Created by ChangMingShan on 2016/11/3.
18 | *
19 | * 设想返回值是一个int值,根据值设置图片
20 | * 将广的注册,处理与销毁完全从activity剥离。
21 | * 在构造函数时,将context和mainactivity的Handler传入,用来刷新主页面的UI
22 | * 调用这个类,构造方法传参,与activity解耦
23 | */
24 |
25 | public class NetCheckUtils {
26 | private Context mContext;
27 | private ConnectivityManager mConnectivityManager;
28 | private WifiManager mWifiManager;
29 | private BroadcastReceiver mReceiver;
30 | private Handler mHandler;
31 | public Boolean isReceiver = false;
32 | public Boolean isConnect = false;
33 |
34 | private int netCondition;
35 |
36 |
37 |
38 | public NetCheckUtils(Context context, Handler handler) {
39 | mContext = context;
40 | mHandler = handler;
41 | }
42 |
43 |
44 | public void getNetwork() {//获得网络的具体返回值
45 |
46 | mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
47 | mConnectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
48 | //广播的action有四种,包含了有线网络变化,无线网络变化和网络连接变化
49 | IntentFilter mFilter = new IntentFilter();
50 | mFilter.addAction(EthernetManager.NETWORK_STATE_CHANGED_ACTION);
51 | mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
52 | mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
53 | mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
54 |
55 |
56 |
57 |
58 | mReceiver = new BroadcastReceiver() {
59 | public void onReceive(Context context, Intent intent) {
60 | handleEvent(mContext, intent);
61 | }
62 | };
63 | if (!isReceiver) {//注册广播
64 | mContext.registerReceiver(mReceiver, mFilter);
65 | isReceiver = true;
66 | }
67 |
68 | }
69 | //注销广播
70 | public void unregisterReceiver() {
71 | mContext.unregisterReceiver(mReceiver);
72 | }
73 |
74 | private void handleEvent(Context context, Intent intent) {
75 | //处理广播不同action事件
76 | String action = intent.getAction();
77 | if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)
78 | || WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)
79 | || ConnectivityManager.CONNECTIVITY_ACTION.equals(action)
80 | || EthernetManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
81 | netCondition = new NetUtils().getNetwork(mContext);
82 | Log.e("changmingshan", "i是NetCheckUtils " + netCondition);
83 | Message msg = new Message();
84 | msg.obj = netCondition;
85 | msg.what =NET;
86 | mHandler.sendMessage(msg);//发送消息,通知主页面更新UI
87 |
88 | }
89 | }
90 |
91 | }
92 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/java/com/ming/tvnetcheck/utils/NetUtils.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck.utils;
2 |
3 | import android.content.Context;
4 | import android.net.ConnectivityManager;
5 | import android.net.NetworkInfo;
6 | import android.net.wifi.WifiManager;
7 | import android.util.Log;
8 |
9 | import java.io.BufferedReader;
10 | import java.io.IOException;
11 | import java.io.InputStreamReader;
12 | import java.net.HttpURLConnection;
13 | import java.net.SocketException;
14 | import java.net.SocketTimeoutException;
15 | import java.net.URL;
16 | /*
17 | * isConnect判断网络是否连接
18 | * isCheck判断网络是否检测
19 | * isPppoeConnect判断pppoe网络是否检测
20 | * mThread新线程来检测pppoe网络,耗时操作不能放在主线程
21 | * netconfigDetail用于返回的网络图标值
22 | * valueEthernet 判断有线网络是否可用的返回值
23 | * valueWifi 判断无线网络是否可用的返回值
24 | * 根据valueEthernet和valueWifi来检测pppoe
25 | * */
26 |
27 | public class NetUtils {
28 | public static boolean isConnect = false,
29 | isCheck = false,
30 | isPppoeConnect = false;
31 | private static Thread mThread = null;
32 | int netconfigDetail, valueEthernet, valueWifi;
33 |
34 | public static boolean isNetworkAvailable() {
35 | return isConnect;
36 | }
37 |
38 | public int getNetwork(Context mContext) {
39 | isCheck = true;
40 | isConnect = false;
41 | WifiManager mWifiManager;
42 | ConnectivityManager mConnectivityManager;
43 | NetworkInfo ethernetNetInfo;
44 |
45 |
46 | mWifiManager = (WifiManager) mContext
47 | .getSystemService(Context.WIFI_SERVICE);//获得WifiManager对象
48 | mConnectivityManager = (ConnectivityManager) mContext
49 | .getSystemService(Context.CONNECTIVITY_SERVICE);//获得ConnectivityManager对象
50 | ethernetNetInfo = mConnectivityManager
51 | .getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);//获得NetworkInfo对象
52 |
53 |
54 | if (ethernetNetInfo.isConnected()) {
55 | netconfigDetail = 4;//如果有线网连接,值为4
56 | valueEthernet = 1;
57 |
58 | } else {
59 |
60 | if (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
61 | if (mWifiManager.getConnectionInfo().getIpAddress() == 0) {
62 | valueWifi = -1;//如果无线网可用,值为-1
63 | netconfigDetail = 6;//如果无线网不可用,值为6
64 | } else {
65 | netconfigDetail = WifiManager.calculateSignalLevel(mWifiManager
66 | .getConnectionInfo().getRssi(), 4);
67 | //如果无线网可用,值为0-3
68 | }
69 |
70 | } else if (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_DISABLED) {
71 | netconfigDetail = 5;//如果无线网不可用,值为5
72 | valueEthernet = -1;//如果无线网不可用,值为-1
73 | }
74 |
75 | }
76 | if (valueWifi < 0 && valueEthernet < 0) {
77 | checkPppoe();//满足判断的条件则判断是否可用,判断网络连通(包含了pppoe的检测)
78 | } else {
79 | isConnect = true;
80 | isCheck = false;
81 | isPppoeConnect = false;
82 |
83 | }
84 | Log.e("getNetwork(Context", "valueWifi " + netconfigDetail);
85 | return netconfigDetail;
86 |
87 | }
88 |
89 | public static void checkPppoe() {
90 | if (mThread != null && !mThread.isInterrupted()) {
91 | mThread.interrupt();//检测前将thread置为null
92 | mThread = null;
93 | }
94 | if (mThread == null || mThread.isInterrupted()) {
95 | mThread = new Thread(new Runnable() {
96 | public void run() {
97 | isCheck = true;
98 | isConnect = false;
99 | isConnect = isConnected();
100 | isCheck = false;
101 | isPppoeConnect = isConnect;
102 | }
103 | });
104 | mThread.start();
105 | }
106 | }
107 |
108 | private static boolean isConnected() {
109 | //发送一个请求用来检测是否已连接网络,并判断通畅
110 | //在这里你也可以ping某个IP,来判断是否已连接
111 | try {
112 | URL url = new URL("http://oavdalesp.bkt.clouddn.com/online");
113 |
114 | HttpURLConnection conn = (HttpURLConnection) url.openConnection();
115 | conn.setRequestMethod("GET");
116 | conn.setRequestProperty("connection", "close");
117 | conn.setConnectTimeout(4000);
118 | conn.setReadTimeout(4000);
119 | BufferedReader reader = null;
120 |
121 | try {
122 | conn.connect();
123 | try {
124 | if (conn.getInputStream() != null)
125 | reader = new BufferedReader(new InputStreamReader(
126 | conn.getInputStream()), 512);
127 | } catch (IOException e) {
128 | if (conn.getErrorStream() != null)
129 | reader = new BufferedReader(new InputStreamReader(
130 | conn.getErrorStream()), 512);
131 | }
132 |
133 | if (reader != null)
134 | reader.close();
135 |
136 | if (conn != null)
137 | conn.disconnect();
138 | return true;
139 | } catch (SocketException e) {
140 | e.printStackTrace();
141 | return false;
142 | } catch (SocketTimeoutException e) {
143 | e.printStackTrace();
144 | return false;
145 | }
146 | } catch (Exception e) {
147 | e.printStackTrace();
148 | }
149 | return false;
150 | }
151 |
152 | }
153 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/bg.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/connect.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/etnerror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/etnerror.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/wifi0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/wifi0.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/wifi1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/wifi1.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/wifi2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/wifi2.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/wifi3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/wifi3.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/drawable/wifinotnormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/drawable/wifinotnormal.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shanlovana/AndroidStudy/fcd5ed0aed0dea213f19324eba3831addf8f297a/tvnetcheck/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | TVNetCheck
3 |
4 |
--------------------------------------------------------------------------------
/tvnetcheck/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tvnetcheck/src/test/java/com/ming/tvnetcheck/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.ming.tvnetcheck;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------