Merge branch 'final' of https://bdgit.educoder.net/pvqcyimsk/gitproject into final
	
		
	
				
					
				
			| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 14 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
| 
		 After Width: | Height: | Size: 12 KiB  | 
| 
		 After Width: | Height: | Size: 7.7 KiB  | 
@ -0,0 +1,117 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import org.json.JSONArray;
 | 
				
			||||
import org.json.JSONObject;
 | 
				
			||||
import org.json.JSONTokener;
 | 
				
			||||
 | 
				
			||||
/**
 | 
				
			||||
 * Json结果解析类
 | 
				
			||||
 */
 | 
				
			||||
public class JsonParser {
 | 
				
			||||
 | 
				
			||||
	public static String parseIatResult(String json) {
 | 
				
			||||
		StringBuffer ret = new StringBuffer();
 | 
				
			||||
		try {
 | 
				
			||||
			JSONTokener tokener = new JSONTokener(json);
 | 
				
			||||
			JSONObject joResult = new JSONObject(tokener);
 | 
				
			||||
 | 
				
			||||
			JSONArray words = joResult.getJSONArray("ws");
 | 
				
			||||
			for (int i = 0; i < words.length(); i++) {
 | 
				
			||||
				// 转写结果词,默认使用第一个结果
 | 
				
			||||
				JSONArray items = words.getJSONObject(i).getJSONArray("cw");
 | 
				
			||||
				JSONObject obj = items.getJSONObject(0);
 | 
				
			||||
				ret.append(obj.getString("w"));
 | 
				
			||||
//				如果需要多候选结果,解析数组其他字段
 | 
				
			||||
//				for(int j = 0; j < items.length(); j++)
 | 
				
			||||
//				{
 | 
				
			||||
//					JSONObject obj = items.getJSONObject(j);
 | 
				
			||||
//					ret.append(obj.getString("w"));
 | 
				
			||||
//				}
 | 
				
			||||
			}
 | 
				
			||||
		} catch (Exception e) {
 | 
				
			||||
			e.printStackTrace();
 | 
				
			||||
		} 
 | 
				
			||||
		return ret.toString();
 | 
				
			||||
	}
 | 
				
			||||
	
 | 
				
			||||
	public static String parseGrammarResult(String json) {
 | 
				
			||||
		StringBuffer ret = new StringBuffer();
 | 
				
			||||
		try {
 | 
				
			||||
			JSONTokener tokener = new JSONTokener(json);
 | 
				
			||||
			JSONObject joResult = new JSONObject(tokener);
 | 
				
			||||
 | 
				
			||||
			JSONArray words = joResult.getJSONArray("ws");
 | 
				
			||||
			for (int i = 0; i < words.length(); i++) {
 | 
				
			||||
				JSONArray items = words.getJSONObject(i).getJSONArray("cw");
 | 
				
			||||
				for(int j = 0; j < items.length(); j++)
 | 
				
			||||
				{
 | 
				
			||||
					JSONObject obj = items.getJSONObject(j);
 | 
				
			||||
					if(obj.getString("w").contains("nomatch"))
 | 
				
			||||
					{
 | 
				
			||||
						ret.append("没有匹配结果.");
 | 
				
			||||
						return ret.toString();
 | 
				
			||||
					}
 | 
				
			||||
					ret.append("【结果】" + obj.getString("w"));
 | 
				
			||||
					ret.append("【置信度】" + obj.getInt("sc"));
 | 
				
			||||
					ret.append("\n");
 | 
				
			||||
				}
 | 
				
			||||
			}
 | 
				
			||||
		} catch (Exception e) {
 | 
				
			||||
			e.printStackTrace();
 | 
				
			||||
			ret.append("没有匹配结果.");
 | 
				
			||||
		} 
 | 
				
			||||
		return ret.toString();
 | 
				
			||||
	}
 | 
				
			||||
	
 | 
				
			||||
	public static String parseLocalGrammarResult(String json) {
 | 
				
			||||
		StringBuffer ret = new StringBuffer();
 | 
				
			||||
		try {
 | 
				
			||||
			JSONTokener tokener = new JSONTokener(json);
 | 
				
			||||
			JSONObject joResult = new JSONObject(tokener);
 | 
				
			||||
 | 
				
			||||
			JSONArray words = joResult.getJSONArray("ws");
 | 
				
			||||
			for (int i = 0; i < words.length(); i++) {
 | 
				
			||||
				JSONArray items = words.getJSONObject(i).getJSONArray("cw");
 | 
				
			||||
				for(int j = 0; j < items.length(); j++)
 | 
				
			||||
				{
 | 
				
			||||
					JSONObject obj = items.getJSONObject(j);
 | 
				
			||||
					if(obj.getString("w").contains("nomatch"))
 | 
				
			||||
					{
 | 
				
			||||
						ret.append("没有匹配结果.");
 | 
				
			||||
						return ret.toString();
 | 
				
			||||
					}
 | 
				
			||||
					ret.append("【结果】" + obj.getString("w"));
 | 
				
			||||
					ret.append("\n");
 | 
				
			||||
				}
 | 
				
			||||
			}
 | 
				
			||||
			ret.append("【置信度】" + joResult.optInt("sc"));
 | 
				
			||||
 | 
				
			||||
		} catch (Exception e) {
 | 
				
			||||
			e.printStackTrace();
 | 
				
			||||
			ret.append("没有匹配结果.");
 | 
				
			||||
		} 
 | 
				
			||||
		return ret.toString();
 | 
				
			||||
	}
 | 
				
			||||
 | 
				
			||||
	public static String parseTransResult(String json,String key) {
 | 
				
			||||
		StringBuffer ret = new StringBuffer();
 | 
				
			||||
		try {
 | 
				
			||||
			JSONTokener tokener = new JSONTokener(json);
 | 
				
			||||
			JSONObject joResult = new JSONObject(tokener);
 | 
				
			||||
			String errorCode = joResult.optString("ret");
 | 
				
			||||
			if(!errorCode.equals("0")) {
 | 
				
			||||
				return joResult.optString("errmsg");
 | 
				
			||||
			}
 | 
				
			||||
			JSONObject transResult = joResult.optJSONObject("trans_result");
 | 
				
			||||
			ret.append(transResult.optString(key));
 | 
				
			||||
			/*JSONArray words = joResult.getJSONArray("results");
 | 
				
			||||
			for (int i = 0; i < words.length(); i++) {
 | 
				
			||||
				JSONObject obj = words.getJSONObject(i);
 | 
				
			||||
				ret.append(obj.getString(key));
 | 
				
			||||
			}*/
 | 
				
			||||
		} catch (Exception e) {
 | 
				
			||||
			e.printStackTrace();
 | 
				
			||||
		}
 | 
				
			||||
		return ret.toString();
 | 
				
			||||
	}
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,69 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.widget.Button;
 | 
				
			||||
import android.widget.TextView;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.weather.MainActivity1;
 | 
				
			||||
import com.example.myapplication.weather.SettingActivity;
 | 
				
			||||
import com.example.myapplication.weather.WeatherItem;
 | 
				
			||||
 | 
				
			||||
public class MainActivity extends AppCompatActivity {
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_main);
 | 
				
			||||
        Button button_main_1=findViewById(R.id.button_main_1);
 | 
				
			||||
        //点击
 | 
				
			||||
        button_main_1.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Intent intent1=new Intent(MainActivity.this,yijiantong.class);
 | 
				
			||||
                startActivity(intent1);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        //点击
 | 
				
			||||
        Button button_main_2=findViewById(R.id.button_main_2);
 | 
				
			||||
        button_main_2.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Intent intent2=new Intent(MainActivity.this, MainActivity1.class);
 | 
				
			||||
                startActivity(intent2);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button_main_3=findViewById(R.id.button_main_3);
 | 
				
			||||
        //点击
 | 
				
			||||
        button_main_3.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Object packageContext;
 | 
				
			||||
                Intent intent3=new Intent(MainActivity.this,zhaoxun.class);
 | 
				
			||||
                startActivity(intent3);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button_main_4=findViewById(R.id.button_main_4);
 | 
				
			||||
        //点击
 | 
				
			||||
        button_main_4.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Object packageContext;
 | 
				
			||||
                Intent intent1=new Intent(MainActivity.this,yuyin.class);
 | 
				
			||||
                startActivity(intent1);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,18 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import android.app.Application;
 | 
				
			||||
 | 
				
			||||
import com.iflytek.cloud.SpeechUtility;
 | 
				
			||||
 | 
				
			||||
public class SpeechApplication extends Application {
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public void onCreate() {
 | 
				
			||||
 | 
				
			||||
        //   5ef048e1  为在开放平台注册的APPID  注意没有空格,直接替换即可
 | 
				
			||||
        SpeechUtility.createUtility(SpeechApplication.this, "appid=6d0c39e4");
 | 
				
			||||
 | 
				
			||||
        super.onCreate();
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,224 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.widget.Button;
 | 
				
			||||
 | 
				
			||||
import com.baidu.mapapi.bikenavi.BikeNavigateHelper;
 | 
				
			||||
import com.baidu.mapapi.walknavi.adapter.IWRoutePlanListener;
 | 
				
			||||
import com.baidu.mapapi.walknavi.model.WalkRoutePlanError;
 | 
				
			||||
import com.baidu.mapapi.walknavi.params.*;
 | 
				
			||||
import com.baidu.mapapi.CoordType;
 | 
				
			||||
import com.baidu.mapapi.SDKInitializer;
 | 
				
			||||
import com.baidu.mapapi.model.LatLng;
 | 
				
			||||
import java.util.ArrayList;
 | 
				
			||||
import java.util.List;
 | 
				
			||||
 | 
				
			||||
import android.widget.ImageButton;
 | 
				
			||||
import android.widget.TextView;
 | 
				
			||||
import android.annotation.SuppressLint;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import com.baidu.baidunavis.BaiduNaviParams;
 | 
				
			||||
import com.baidu.mapapi.SDKInitializer;
 | 
				
			||||
import com.baidu.mapapi.map.MapView;
 | 
				
			||||
import com.baidu.mapapi.model.LatLng;
 | 
				
			||||
import com.baidu.mapapi.walknavi.WalkNavigateHelper;
 | 
				
			||||
import com.baidu.mapapi.walknavi.adapter.IWEngineInitListener;
 | 
				
			||||
import com.baidu.mapapi.walknavi.params.WalkNaviLaunchParam;
 | 
				
			||||
 | 
				
			||||
public class itemfound extends AppCompatActivity {
 | 
				
			||||
    private WalkNavigateHelper helper = null;
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
 | 
				
			||||
        //initPermissions();  // 初始化权限
 | 
				
			||||
        setContentView(R.layout.activity_itemfound); // 填充视图
 | 
				
			||||
 | 
				
			||||
        // 点击按钮开始导航
 | 
				
			||||
        Button imageButton = findViewById(R.id.button_item_keys);
 | 
				
			||||
        imageButton.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                // 初始化步行导航
 | 
				
			||||
                startBikeNavi();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button imageButtonwallet = findViewById(R.id.button_item_wallet);
 | 
				
			||||
        imageButtonwallet.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                // 初始化步行导航
 | 
				
			||||
                startBikeNavi();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
    }
 | 
				
			||||
    // 初始化权限
 | 
				
			||||
    /*
 | 
				
			||||
    private void initPermissions() {
 | 
				
			||||
        if (Build.VERSION.SDK_INT >= 23) {
 | 
				
			||||
            ArrayList<String> permissionsList = new ArrayList<>();
 | 
				
			||||
            String[] permissions = {
 | 
				
			||||
                    Manifest.permission.ACCESS_NETWORK_STATE,
 | 
				
			||||
                    Manifest.permission.INTERNET,
 | 
				
			||||
                    Manifest.permission.ACCESS_COARSE_LOCATION,
 | 
				
			||||
                    Manifest.permission.ACCESS_FINE_LOCATION,
 | 
				
			||||
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
 | 
				
			||||
            };
 | 
				
			||||
 | 
				
			||||
            for (String perm : permissions) {
 | 
				
			||||
                if (PackageManager.PERMISSION_GRANTED != checkSelfPermission(perm)) {
 | 
				
			||||
                    permissionsList.add(perm);
 | 
				
			||||
                    // 进入到这里代表没有权限.
 | 
				
			||||
                }
 | 
				
			||||
                if (!permissionsList.isEmpty()) {
 | 
				
			||||
                    String[] strings = new String[permissionsList.size()];
 | 
				
			||||
                    requestPermissions(permissionsList.toArray(strings), 0);
 | 
				
			||||
                }
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
        }
 | 
				
			||||
    }*/
 | 
				
			||||
    private void startBikeNavi() {
 | 
				
			||||
        //Log.d("=========", "startBikeNavi");
 | 
				
			||||
        try {
 | 
				
			||||
            helper = WalkNavigateHelper.getInstance();
 | 
				
			||||
            helper.initNaviEngine(this, new IWEngineInitListener() {
 | 
				
			||||
                @Override
 | 
				
			||||
                public void engineInitSuccess() {
 | 
				
			||||
             //       Log.d("=========", "BikeNavi engineInitSuccess引擎初始化成功");
 | 
				
			||||
                    startWebNavi();
 | 
				
			||||
                }
 | 
				
			||||
 | 
				
			||||
                @Override
 | 
				
			||||
                public void engineInitFail() {
 | 
				
			||||
               //     Log.d("=========", "BikeNavi engineInitFail");
 | 
				
			||||
                    BikeNavigateHelper.getInstance().unInitNaviEngine();
 | 
				
			||||
                }
 | 
				
			||||
            });
 | 
				
			||||
        } catch (Exception e) {
 | 
				
			||||
          //  Log.d("=========", "startBikeNavi Exception");
 | 
				
			||||
            e.printStackTrace();
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
    private void startWebNavi() {
 | 
				
			||||
        //起终点位置
 | 
				
			||||
        LatLng walkStartNode = new LatLng(39.110132, 117.358512);
 | 
				
			||||
        LatLng walkEndNode = new LatLng(39.111348, 117.358940);
 | 
				
			||||
 | 
				
			||||
        WalkRouteNodeInfo startNode = new WalkRouteNodeInfo();
 | 
				
			||||
        startNode.setLocation(walkStartNode);
 | 
				
			||||
        WalkRouteNodeInfo endNode = new WalkRouteNodeInfo();
 | 
				
			||||
        endNode.setLocation(walkEndNode);
 | 
				
			||||
        // 官网
 | 
				
			||||
        //构造WalkNaviLaunchParam
 | 
				
			||||
        WalkNaviLaunchParam walkParam = new 	WalkNaviLaunchParam().startNodeInfo(startNode).endNodeInfo(endNode);
 | 
				
			||||
        //获取WalkNavigateHelper实例 //发起算路
 | 
				
			||||
        helper.routePlanWithRouteNode(walkParam, new IWRoutePlanListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanStart() {
 | 
				
			||||
              //  Log.d("=======", "WalkNavi onRoutePlanStart开始步行导航");
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanSuccess() {
 | 
				
			||||
               // Log.d("========", "onRoutePlanSuccess算路成功");
 | 
				
			||||
                Intent intent = new Intent(itemfound.this,WNaviGuideActivity.class);
 | 
				
			||||
               // intent.setClass(getContext(), WNaviGuideActivity.class);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanFail(WalkRoutePlanError error) {
 | 
				
			||||
//                Log.d("Walk", "WalkNavi onRoutePlanFail");
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
        });
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
/*
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_itemfound);
 | 
				
			||||
        Button find_wallet=findViewById(R.id.button_item_wallet);
 | 
				
			||||
        Button find_keys=findViewById(R.id.button_item_keys);
 | 
				
			||||
        find_wallet.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {//Intent
 | 
				
			||||
                double locationX;
 | 
				
			||||
                double locationy;
 | 
				
			||||
                //BaiduMapNavigation
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        find_keys.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {//Intent
 | 
				
			||||
            //NaviParaOption para=new Navi();
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
    }*/    private void startBikeNavi1() {
 | 
				
			||||
    //Log.d("=========", "startBikeNavi");
 | 
				
			||||
    try {
 | 
				
			||||
        helper = WalkNavigateHelper.getInstance();
 | 
				
			||||
        helper.initNaviEngine(this, new IWEngineInitListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void engineInitSuccess() {
 | 
				
			||||
                //       Log.d("=========", "BikeNavi engineInitSuccess引擎初始化成功");
 | 
				
			||||
                startWebNavi1();
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void engineInitFail() {
 | 
				
			||||
                //     Log.d("=========", "BikeNavi engineInitFail");
 | 
				
			||||
                BikeNavigateHelper.getInstance().unInitNaviEngine();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
    } catch (Exception e) {
 | 
				
			||||
        //  Log.d("=========", "startBikeNavi Exception");
 | 
				
			||||
        e.printStackTrace();
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
    private void startWebNavi1() {
 | 
				
			||||
        //起终点位置
 | 
				
			||||
        LatLng walkStartNode = new LatLng(39.110132, 117.358512);
 | 
				
			||||
        LatLng walkEndNode = new LatLng(39.112286, 117.359619);
 | 
				
			||||
 | 
				
			||||
        WalkRouteNodeInfo startNode = new WalkRouteNodeInfo();
 | 
				
			||||
        startNode.setLocation(walkStartNode);
 | 
				
			||||
        WalkRouteNodeInfo endNode = new WalkRouteNodeInfo();
 | 
				
			||||
        endNode.setLocation(walkEndNode);
 | 
				
			||||
        // 官网
 | 
				
			||||
        //构造WalkNaviLaunchParam
 | 
				
			||||
        WalkNaviLaunchParam walkParam = new 	WalkNaviLaunchParam().startNodeInfo(startNode).endNodeInfo(endNode);
 | 
				
			||||
        //获取WalkNavigateHelper实例 //发起算路
 | 
				
			||||
        helper.routePlanWithRouteNode(walkParam, new IWRoutePlanListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanStart() {
 | 
				
			||||
                //  Log.d("=======", "WalkNavi onRoutePlanStart开始步行导航");
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanSuccess() {
 | 
				
			||||
                // Log.d("========", "onRoutePlanSuccess算路成功");
 | 
				
			||||
                Intent intent = new Intent(itemfound.this,WNaviGuideActivity.class);
 | 
				
			||||
                // intent.setClass(getContext(), WNaviGuideActivity.class);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onRoutePlanFail(WalkRoutePlanError error) {
 | 
				
			||||
//                Log.d("Walk", "WalkNavi onRoutePlanFail");
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
        });
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,14 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
 | 
				
			||||
public class jiankang extends AppCompatActivity {
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_jiankang);
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,24 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.content.Context;
 | 
				
			||||
import android.database.sqlite.SQLiteDatabase;
 | 
				
			||||
import android.database.sqlite.SQLiteOpenHelper;
 | 
				
			||||
 | 
				
			||||
public class DatabaseHelper extends SQLiteOpenHelper {
 | 
				
			||||
    private static final int VERSION = 1;
 | 
				
			||||
    private static final String NAME = "weather";
 | 
				
			||||
 | 
				
			||||
    public DatabaseHelper(Context context){
 | 
				
			||||
        super(context,NAME,null,VERSION);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public void onCreate(SQLiteDatabase db) {
 | 
				
			||||
        db.execSQL("create table weather (_id INTEGER PRIMARY KEY AUTOINCREMENT,date text,max_temp text,min_temp text,text text,humidity text,pressure text,wind text,icon text)");
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 | 
				
			||||
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,38 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import androidx.fragment.app.Fragment;
 | 
				
			||||
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.R;
 | 
				
			||||
import com.example.myapplication.weather.SingleFragmentActivity;
 | 
				
			||||
import com.example.myapplication.weather.WeatherFragment;
 | 
				
			||||
 | 
				
			||||
public class MainActivity1 extends SingleFragmentActivity implements WeatherFragment.Callbacks{
 | 
				
			||||
    @Override
 | 
				
			||||
    protected Fragment createFragment() {
 | 
				
			||||
        return WeatherFragment.newInstance();
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected int getLayoutId() {
 | 
				
			||||
        return R.layout.activity_masterdetail;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected int getFragmentId() {
 | 
				
			||||
        return R.id.fragment_container;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void onWeatherSelected(WeatherItem weatherItem){   //平板中选中天气
 | 
				
			||||
        if(findViewById(R.id.detail_container)==null){
 | 
				
			||||
            Intent intent = WeatherDetailActivity.newIntent(this,weatherItem);
 | 
				
			||||
            startActivity(intent);
 | 
				
			||||
        }else{
 | 
				
			||||
            Fragment newDetail = WeatherDetailFragment.newInstance(weatherItem);
 | 
				
			||||
            getSupportFragmentManager().beginTransaction()
 | 
				
			||||
                    .replace(R.id.detail_container,newDetail)
 | 
				
			||||
                    .commit();
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,95 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.app.AlarmManager;
 | 
				
			||||
import android.app.IntentService;
 | 
				
			||||
import android.app.Notification;
 | 
				
			||||
import android.app.NotificationChannel;
 | 
				
			||||
import android.app.NotificationManager;
 | 
				
			||||
import android.app.PendingIntent;
 | 
				
			||||
import android.content.Context;
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.content.SharedPreferences;
 | 
				
			||||
import android.os.Build;
 | 
				
			||||
import android.os.SystemClock;
 | 
				
			||||
import android.util.Log;
 | 
				
			||||
 | 
				
			||||
import androidx.annotation.Nullable;
 | 
				
			||||
import androidx.core.app.NotificationCompat;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.R;
 | 
				
			||||
import com.example.myapplication.weather.WeatherFragment;
 | 
				
			||||
 | 
				
			||||
public class NotificationService extends IntentService {
 | 
				
			||||
    private static final String TAG = "NotificationService";
 | 
				
			||||
 | 
				
			||||
    private static final int NOTIFICATION_INTERVAL = 1000*60;
 | 
				
			||||
 | 
				
			||||
    public static Intent newIntent(Context context){
 | 
				
			||||
        return new Intent(context,NotificationService.class);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public NotificationService(){
 | 
				
			||||
        super(TAG);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onHandleIntent(@Nullable Intent intent) {
 | 
				
			||||
        Log.i(TAG,"Intent there");
 | 
				
			||||
 | 
				
			||||
        Intent i = WeatherFragment.newIntent(this);
 | 
				
			||||
        PendingIntent pi = PendingIntent.getService(this,0,i,0);
 | 
				
			||||
 | 
				
			||||
        Notification notification = null;
 | 
				
			||||
        SharedPreferences pref = this.getSharedPreferences("setting",Context.MODE_PRIVATE);
 | 
				
			||||
        String unit = pref.getString("unit","摄氏度");
 | 
				
			||||
        String unit_text = "°";
 | 
				
			||||
        if (unit == "华氏度"){
 | 
				
			||||
            unit_text = "℉";
 | 
				
			||||
        }
 | 
				
			||||
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
 | 
				
			||||
                                        .setTicker("ticker")
 | 
				
			||||
                                        .setSmallIcon(R.drawable.a100)
 | 
				
			||||
                                        .setContentTitle("今日天气")
 | 
				
			||||
                                        .setContentText(pref.getString("city","北京")+
 | 
				
			||||
                                                "  天气:"+pref.getString("text","")+
 | 
				
			||||
                                                ", 最高温度:"+pref.getString("max_temp","")+unit_text+
 | 
				
			||||
                                                ", 最低温度:"+pref.getString("min_temp","")+unit_text)
 | 
				
			||||
                                        .setContentIntent(pi)
 | 
				
			||||
                                        .setAutoCancel(true);
 | 
				
			||||
 | 
				
			||||
        NotificationManager notificationManager =(NotificationManager)
 | 
				
			||||
                getSystemService(NOTIFICATION_SERVICE);
 | 
				
			||||
 | 
				
			||||
        //一定要设置channel
 | 
				
			||||
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
 | 
				
			||||
            NotificationChannel channel = new NotificationChannel("to-do"
 | 
				
			||||
                    , "待办消息",
 | 
				
			||||
                    NotificationManager.IMPORTANCE_HIGH);
 | 
				
			||||
            channel.enableVibration(true);
 | 
				
			||||
            channel.setVibrationPattern(new long[]{500});
 | 
				
			||||
            notificationManager.createNotificationChannel(channel);
 | 
				
			||||
            builder.setChannelId("to-do");
 | 
				
			||||
            notification = builder.build();
 | 
				
			||||
        } else {
 | 
				
			||||
            notification = builder.build();
 | 
				
			||||
        }
 | 
				
			||||
 | 
				
			||||
        notificationManager.notify(0,notification);
 | 
				
			||||
        System.out.println(notification);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public static void setServiceAlarm(Context context,boolean isOn){
 | 
				
			||||
        Intent i = NotificationService.newIntent(context);
 | 
				
			||||
        PendingIntent pi = PendingIntent.getService(context,0,i,0);
 | 
				
			||||
 | 
				
			||||
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
 | 
				
			||||
 | 
				
			||||
        if(isOn){
 | 
				
			||||
            alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
 | 
				
			||||
                    NOTIFICATION_INTERVAL,pi);
 | 
				
			||||
        }else{
 | 
				
			||||
            alarmManager.cancel(pi);
 | 
				
			||||
            pi.cancel();
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,132 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.content.DialogInterface;
 | 
				
			||||
import android.content.SharedPreferences;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.text.Editable;
 | 
				
			||||
import android.text.TextWatcher;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.widget.EditText;
 | 
				
			||||
import android.widget.LinearLayout;
 | 
				
			||||
import android.widget.TextView;
 | 
				
			||||
import android.widget.Toast;
 | 
				
			||||
 | 
				
			||||
import androidx.annotation.Nullable;
 | 
				
			||||
import androidx.appcompat.app.AlertDialog;
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.R;
 | 
				
			||||
 | 
				
			||||
public class SettingActivity extends AppCompatActivity {
 | 
				
			||||
    private EditText location;
 | 
				
			||||
    private TextView unit_text;
 | 
				
			||||
    private TextView send_text;
 | 
				
			||||
    private LinearLayout page;
 | 
				
			||||
    private LinearLayout unit;
 | 
				
			||||
    private LinearLayout send;
 | 
				
			||||
    private String city;
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(@Nullable Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_setting);
 | 
				
			||||
 | 
				
			||||
        location = (EditText) findViewById(R.id.location);
 | 
				
			||||
        unit = (LinearLayout)findViewById(R.id.unit);
 | 
				
			||||
        page = (LinearLayout)findViewById(R.id.page);
 | 
				
			||||
        unit_text = (TextView)findViewById(R.id.unit_text);
 | 
				
			||||
        send = (LinearLayout)findViewById(R.id.send);
 | 
				
			||||
        send_text = (TextView)findViewById(R.id.send_text);
 | 
				
			||||
 | 
				
			||||
        SharedPreferences pref = getSharedPreferences("setting",MODE_PRIVATE);
 | 
				
			||||
        location.setText(pref.getString("city","北京"));
 | 
				
			||||
        unit_text.setText(pref.getString("unit","摄氏度"));
 | 
				
			||||
        send_text.setText(pref.getString("send","是"));
 | 
				
			||||
 | 
				
			||||
        page.setOnClickListener(new View.OnClickListener(){
 | 
				
			||||
            public void onClick(View v){
 | 
				
			||||
                location.clearFocus();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
        location.addTextChangedListener(new TextWatcher() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onTextChanged(CharSequence s, int start, int before, int count) {
 | 
				
			||||
                city = s.toString();
 | 
				
			||||
                SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
 | 
				
			||||
                editor.putString("city",city);
 | 
				
			||||
                editor.commit();
 | 
				
			||||
            }
 | 
				
			||||
 | 
				
			||||
            @Override
 | 
				
			||||
            public void afterTextChanged(Editable s) {
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
        unit.setOnClickListener(new View.OnClickListener(){
 | 
				
			||||
            public void onClick(View v){
 | 
				
			||||
                click();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
        send.setOnClickListener(new View.OnClickListener(){
 | 
				
			||||
            public void onClick(View v){
 | 
				
			||||
                click2();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    //点击按钮弹出一个单选对话框
 | 
				
			||||
    public void click() {
 | 
				
			||||
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
 | 
				
			||||
        builder.setTitle("请选择温度单位");
 | 
				
			||||
        final String items[] = {"摄氏度","华氏度"};
 | 
				
			||||
 | 
				
			||||
//-1代表没有条目被选中
 | 
				
			||||
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(DialogInterface dialog, int which) {
 | 
				
			||||
                //1.把选中的条目取出来
 | 
				
			||||
                String item = items[which];
 | 
				
			||||
                Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show();
 | 
				
			||||
                unit_text.setText(item.toString());
 | 
				
			||||
                SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
 | 
				
			||||
                editor.putString("unit",item.toString());
 | 
				
			||||
                editor.commit();
 | 
				
			||||
                //2.然后把对话框关闭
 | 
				
			||||
                dialog.dismiss();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
//一样要show
 | 
				
			||||
        builder.show();
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void click2() {
 | 
				
			||||
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
 | 
				
			||||
        builder.setTitle("请选择是否开启通知");
 | 
				
			||||
        final String items[] = {"是","否"};
 | 
				
			||||
 | 
				
			||||
//-1代表没有条目被选中
 | 
				
			||||
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(DialogInterface dialog, int which) {
 | 
				
			||||
                //1.把选中的条目取出来
 | 
				
			||||
                String item = items[which];
 | 
				
			||||
                Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show();
 | 
				
			||||
                send_text.setText(item.toString());
 | 
				
			||||
                SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
 | 
				
			||||
                editor.putString("send",item.toString());
 | 
				
			||||
                editor.commit();
 | 
				
			||||
                //2.然后把对话框关闭
 | 
				
			||||
                dialog.dismiss();
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
//一样要show
 | 
				
			||||
        builder.show();
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,30 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
 | 
				
			||||
import androidx.annotation.Nullable;
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
import androidx.fragment.app.Fragment;
 | 
				
			||||
import androidx.fragment.app.FragmentManager;
 | 
				
			||||
 | 
				
			||||
public abstract class SingleFragmentActivity extends AppCompatActivity {
 | 
				
			||||
    protected abstract Fragment createFragment();
 | 
				
			||||
    protected abstract int getLayoutId();
 | 
				
			||||
    protected abstract int getFragmentId();
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(@Nullable Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(getLayoutId());
 | 
				
			||||
 | 
				
			||||
        FragmentManager fm = getSupportFragmentManager();
 | 
				
			||||
        Fragment fragment = fm.findFragmentById(getFragmentId());
 | 
				
			||||
 | 
				
			||||
        if(fragment == null){
 | 
				
			||||
            fragment = createFragment();
 | 
				
			||||
            fm.beginTransaction().
 | 
				
			||||
                    add(getFragmentId(),fragment)
 | 
				
			||||
                    .commit();
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,34 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.content.Context;
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
 | 
				
			||||
import androidx.fragment.app.Fragment;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.R;
 | 
				
			||||
 | 
				
			||||
public class WeatherDetailActivity extends SingleFragmentActivity{
 | 
				
			||||
    public static final String EXTRA_WEATHER_ITEM = "com.example.weather.weatherItem";
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected Fragment createFragment() {
 | 
				
			||||
        WeatherItem weatherItem = (WeatherItem)getIntent().getSerializableExtra(EXTRA_WEATHER_ITEM);
 | 
				
			||||
        return WeatherDetailFragment.newInstance(weatherItem);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected int getLayoutId() {
 | 
				
			||||
        return R.layout.activity_detail;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected int getFragmentId() {
 | 
				
			||||
        return R.id.detail_container;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public static Intent newIntent(Context packageContext, WeatherItem weatherItem){
 | 
				
			||||
        Intent intent = new Intent(packageContext,WeatherDetailActivity.class);
 | 
				
			||||
        intent.putExtra(EXTRA_WEATHER_ITEM,weatherItem);
 | 
				
			||||
        return intent;
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,133 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import android.content.Context;
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.graphics.drawable.Drawable;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.util.Log;
 | 
				
			||||
import android.view.LayoutInflater;
 | 
				
			||||
import android.view.Menu;
 | 
				
			||||
import android.view.MenuInflater;
 | 
				
			||||
import android.view.MenuItem;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.view.ViewGroup;
 | 
				
			||||
import android.widget.ImageView;
 | 
				
			||||
import android.widget.TextView;
 | 
				
			||||
 | 
				
			||||
import androidx.annotation.NonNull;
 | 
				
			||||
import androidx.annotation.Nullable;
 | 
				
			||||
import androidx.fragment.app.Fragment;
 | 
				
			||||
 | 
				
			||||
import com.example.myapplication.R;
 | 
				
			||||
 | 
				
			||||
public class WeatherDetailFragment extends Fragment {
 | 
				
			||||
    private WeatherItem mWeatherItem;  //用来设置UI
 | 
				
			||||
 | 
				
			||||
    private TextView mDeatilDate;
 | 
				
			||||
    private TextView mDetailMaxTemp;
 | 
				
			||||
    private TextView mDetailMinTemp;
 | 
				
			||||
    private ImageView mDetialIcon;
 | 
				
			||||
    private TextView mDetailDesc;
 | 
				
			||||
    private TextView mDetailHumidity;
 | 
				
			||||
    private TextView mDetailPressure;
 | 
				
			||||
    private TextView mDetailWind;
 | 
				
			||||
 | 
				
			||||
    private static final String TAG = "WeatherDetailFragment";
 | 
				
			||||
    private static final String ARG_ITEM = "args_item";
 | 
				
			||||
    private String unit_text = "°";
 | 
				
			||||
 | 
				
			||||
    public static WeatherDetailFragment newInstance(WeatherItem weatherItem) {
 | 
				
			||||
        Bundle args = new Bundle();
 | 
				
			||||
        args.putSerializable(ARG_ITEM,weatherItem);
 | 
				
			||||
        WeatherDetailFragment fragment =  new WeatherDetailFragment();
 | 
				
			||||
        fragment.setArguments(args);
 | 
				
			||||
        return fragment;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    //获取drawable图标资源的id
 | 
				
			||||
    public int getIconId(Context mContext, String icon){
 | 
				
			||||
        int i=  getResources().getIdentifier(icon, "drawable", mContext.getPackageName()) ;
 | 
				
			||||
        if(i>0){
 | 
				
			||||
            Log.i(TAG,"Success to get drawable resoure");
 | 
				
			||||
        }else{
 | 
				
			||||
            Log.i(TAG,"Fail to get drawable resoure");
 | 
				
			||||
        }
 | 
				
			||||
        return i;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public void onCreate(@Nullable Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setHasOptionsMenu(true);
 | 
				
			||||
        mWeatherItem = (WeatherItem) getArguments().getSerializable(ARG_ITEM);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Nullable
 | 
				
			||||
    @Override
 | 
				
			||||
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 | 
				
			||||
        View v = inflater.inflate(R.layout.fragment_weather_detail,container,false);
 | 
				
			||||
        if(getActivity().getSharedPreferences("setting",Context.MODE_PRIVATE).getString("unit","摄氏度")=="华氏度"){
 | 
				
			||||
            unit_text = "℉";
 | 
				
			||||
        }
 | 
				
			||||
 | 
				
			||||
        mDeatilDate = (TextView) v.findViewById(R.id.detail_date);
 | 
				
			||||
        mDetailMaxTemp = (TextView) v.findViewById(R.id.detail_max_temp);
 | 
				
			||||
        mDetailMinTemp = (TextView) v.findViewById(R.id.detail_min_temp);
 | 
				
			||||
        mDetialIcon = (ImageView) v.findViewById(R.id.detail_icon);
 | 
				
			||||
        mDetailHumidity = (TextView) v.findViewById(R.id.detail_humidity);
 | 
				
			||||
        mDetailPressure = (TextView) v.findViewById(R.id.detail_pressure);
 | 
				
			||||
        mDetailWind = (TextView) v.findViewById(R.id.detail_wind);
 | 
				
			||||
        mDetailDesc = (TextView) v.findViewById(R.id.detail_desc);
 | 
				
			||||
 | 
				
			||||
        mDeatilDate.setText(mWeatherItem.getData());
 | 
				
			||||
        mDetailMaxTemp.setText(mWeatherItem.getMax_temp()+unit_text);
 | 
				
			||||
        mDetailMinTemp.setText(mWeatherItem.getMin_temp()+unit_text);
 | 
				
			||||
        String icon = "a"+mWeatherItem.getIcon();
 | 
				
			||||
        int id = getIconId(getContext(),icon);
 | 
				
			||||
        Drawable drawable = getResources().getDrawable(id);
 | 
				
			||||
        mDetialIcon.setImageDrawable(drawable);
 | 
				
			||||
        mDetailHumidity.setText("Humidity: "+mWeatherItem.getHumidity()+" %");
 | 
				
			||||
        mDetailPressure.setText("Pressure: "+mWeatherItem.getPressure()+" hPa");
 | 
				
			||||
        mDetailWind.setText("Wind: "+mWeatherItem.getWind()+" km/h SE");
 | 
				
			||||
        mDetailDesc.setText(mWeatherItem.getText());
 | 
				
			||||
 | 
				
			||||
        return v;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String createMessage(){
 | 
				
			||||
        String message = "";
 | 
				
			||||
        message += "今天的天气状况为:"+mWeatherItem.getText();
 | 
				
			||||
        message += "    今天的最高温度是: "+mWeatherItem.getMax_temp();
 | 
				
			||||
        message += "    今天的最低温度是: "+mWeatherItem.getMin_temp();
 | 
				
			||||
        message += "    今天的湿度为: "+mWeatherItem.getHumidity();
 | 
				
			||||
        message += "    今天的风速为:"+mWeatherItem.getWind();
 | 
				
			||||
        message += "    今天的气压为:"+mWeatherItem.getPressure();
 | 
				
			||||
        message += "    希望您拥有美好的一天!";
 | 
				
			||||
        return message;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
 | 
				
			||||
        super.onCreateOptionsMenu(menu, inflater);
 | 
				
			||||
        if(getActivity().findViewById(R.id.fragment_container)==null){    //是手机模式
 | 
				
			||||
            inflater.inflate(R.menu.fragment_detail,menu);
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
 | 
				
			||||
        switch (item.getItemId()){
 | 
				
			||||
            case R.id.menu_setting:
 | 
				
			||||
                Intent intent = new Intent(getActivity(),SettingActivity.class);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
                return true;
 | 
				
			||||
            case R.id.menu_share:
 | 
				
			||||
                Intent i = new Intent(Intent.ACTION_SEND);
 | 
				
			||||
                i.setType("text/plain");
 | 
				
			||||
                i.putExtra(Intent.EXTRA_TEXT,createMessage());
 | 
				
			||||
                startActivity(i);
 | 
				
			||||
                return true;
 | 
				
			||||
        }
 | 
				
			||||
        return super.onOptionsItemSelected(item);
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,78 @@
 | 
				
			||||
package com.example.myapplication.weather;
 | 
				
			||||
 | 
				
			||||
import java.io.Serializable;
 | 
				
			||||
 | 
				
			||||
public class WeatherItem implements Serializable {
 | 
				
			||||
    private String data;   //天气日期
 | 
				
			||||
    private String max_temp;   //最高温度
 | 
				
			||||
    private String min_temp;   //最低温度
 | 
				
			||||
    private String text;   //天气描述
 | 
				
			||||
    private String humidity;   //适度
 | 
				
			||||
    private String pressure;   //气压
 | 
				
			||||
    private String wind;       //风力
 | 
				
			||||
    private String icon;     //图标
 | 
				
			||||
 | 
				
			||||
    public String getIcon() {
 | 
				
			||||
        return icon;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setIcon(String icon) {
 | 
				
			||||
        this.icon = icon;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getData() {
 | 
				
			||||
        return data;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setData(String data) {
 | 
				
			||||
        this.data = data;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getMax_temp() {
 | 
				
			||||
        return max_temp;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setMax_temp(String max_temp) {
 | 
				
			||||
        this.max_temp = max_temp;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getMin_temp() {
 | 
				
			||||
        return min_temp;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setMin_temp(String min_temp) {
 | 
				
			||||
        this.min_temp = min_temp;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getText() {
 | 
				
			||||
        return text;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setText(String text) {
 | 
				
			||||
        this.text = text;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getHumidity() {
 | 
				
			||||
        return humidity;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setHumidity(String humidity) {
 | 
				
			||||
        this.humidity = humidity;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getPressure() {
 | 
				
			||||
        return pressure;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setPressure(String pressure) {
 | 
				
			||||
        this.pressure = pressure;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public String getWind() {
 | 
				
			||||
        return wind;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setWind(String wind) {
 | 
				
			||||
        this.wind = wind;
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,142 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.net.Uri;
 | 
				
			||||
import android.os.Build;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.provider.ContactsContract;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.widget.Button;
 | 
				
			||||
 | 
				
			||||
public class yijiantong extends AppCompatActivity {
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_yijiantong);
 | 
				
			||||
        if (shouldAskPermissions()) {
 | 
				
			||||
            askPermissions();
 | 
				
			||||
        }
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
        Button button1 = findViewById(R.id.button1);
 | 
				
			||||
        //点击
 | 
				
			||||
        button1.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri10 = Uri.parse("alipayqr://platformapi/startapp?saId=20000067&chInfo=ch_desktop&url=https%3A%2F%2F68687564.h5app.alipay.com%2Fwww%2Findex.html");
 | 
				
			||||
                Intent intent10 = new Intent(Intent.ACTION_VIEW, uri10);
 | 
				
			||||
                startActivity(intent10);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
        Button button2 = findViewById(R.id.button2);
 | 
				
			||||
        //点击
 | 
				
			||||
        button2.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=2021002170600786");
 | 
				
			||||
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button3 = findViewById(R.id.button3);
 | 
				
			||||
        //点击
 | 
				
			||||
        button3.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=2021001123608001");
 | 
				
			||||
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button4 = findViewById(R.id.button4);
 | 
				
			||||
        //点击
 | 
				
			||||
        button4.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007");
 | 
				
			||||
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
        Button button5 = findViewById(R.id.button5);
 | 
				
			||||
        //点击
 | 
				
			||||
        button5.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri1 = Uri.parse("alipayqr://platformapi/startapp?saId=20000056");
 | 
				
			||||
                Intent intent1 = new Intent(Intent.ACTION_VIEW, uri1);
 | 
				
			||||
                startActivity(intent1);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button6 = findViewById(R.id.button6);
 | 
				
			||||
        //点击
 | 
				
			||||
        button6.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Uri uri2 = Uri.parse("alipayqr://platformapi/startapp?saId=20000123");
 | 
				
			||||
                Intent intent2 = new Intent(Intent.ACTION_VIEW, uri2);
 | 
				
			||||
                startActivity(intent2);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button7 = findViewById(R.id.button8);
 | 
				
			||||
        //点击
 | 
				
			||||
        button7.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                Intent addIntent = new Intent(Intent.ACTION_INSERT, Uri.withAppendedPath(Uri.parse("content://com.android.contacts"), "contacts"));
 | 
				
			||||
                addIntent.setType("vnd.android.cursor.dir/person");
 | 
				
			||||
                addIntent.setType("vnd.android.cursor.dir/contact");
 | 
				
			||||
                addIntent.setType("vnd.android.cursor.dir/raw_contact");
 | 
				
			||||
                boolean number = false;
 | 
				
			||||
                addIntent.putExtra(ContactsContract.Intents.Insert.NAME, number);
 | 
				
			||||
 | 
				
			||||
                boolean numberForNewConstant = false;
 | 
				
			||||
                addIntent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, numberForNewConstant);
 | 
				
			||||
                startActivity(addIntent);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        Button button8 = findViewById(R.id.button7);
 | 
				
			||||
        //点击
 | 
				
			||||
        button8.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {
 | 
				
			||||
                //调用系统方法拨打电话
 | 
				
			||||
                Intent intent = new Intent();
 | 
				
			||||
                intent.setAction(Intent.ACTION_CALL);
 | 
				
			||||
                intent.setData(Uri.parse("tel:" + "15607989193"));
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    private boolean askPermissions() {
 | 
				
			||||
        return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    private boolean shouldAskPermissions() {
 | 
				
			||||
        String[] permissions = {
 | 
				
			||||
                "android.permission.CALL_PHONE"
 | 
				
			||||
        };
 | 
				
			||||
        int requestCode = 200;
 | 
				
			||||
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
 | 
				
			||||
            requestPermissions(permissions, requestCode);
 | 
				
			||||
        }
 | 
				
			||||
        return true;
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,42 @@
 | 
				
			||||
package com.example.myapplication;
 | 
				
			||||
 | 
				
			||||
import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||
 | 
				
			||||
import android.annotation.SuppressLint;
 | 
				
			||||
import android.content.Intent;
 | 
				
			||||
import android.net.Uri;
 | 
				
			||||
import android.os.Bundle;
 | 
				
			||||
import android.view.View;
 | 
				
			||||
import android.widget.Button;
 | 
				
			||||
import android.widget.Toast;
 | 
				
			||||
 | 
				
			||||
public class zhaoxun extends AppCompatActivity {
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    protected void onCreate(Bundle savedInstanceState) {
 | 
				
			||||
        super.onCreate(savedInstanceState);
 | 
				
			||||
        setContentView(R.layout.activity_zhaoxun);
 | 
				
			||||
         Button buttonitem=findViewById(R.id.myitem);
 | 
				
			||||
        Button buttonmap=findViewById(R.id.map);
 | 
				
			||||
        buttonitem.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {//Intent
 | 
				
			||||
              /*  Toast.makeText(zhaoxun.this,"正在打开地图",Toast.LENGTH_SHORT).show();
 | 
				
			||||
                Intent intent=new Intent(zhaoxun.this,MapActivity1.class);
 | 
				
			||||
                startActivity(intent);*/
 | 
				
			||||
                Intent intent=new Intent(zhaoxun.this,itemfound.class);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
        buttonmap.setOnClickListener(new View.OnClickListener() {
 | 
				
			||||
            @Override
 | 
				
			||||
            public void onClick(View view) {//Intent
 | 
				
			||||
                Toast.makeText(zhaoxun.this,"正在打开地图",Toast.LENGTH_SHORT).show();
 | 
				
			||||
                Intent intent=new Intent(zhaoxun.this,MapActivity1.class);
 | 
				
			||||
                startActivity(intent);
 | 
				
			||||
 | 
				
			||||
            }
 | 
				
			||||
        });
 | 
				
			||||
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,30 @@
 | 
				
			||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||
    xmlns:aapt="http://schemas.android.com/aapt"
 | 
				
			||||
    android:width="108dp"
 | 
				
			||||
    android:height="108dp"
 | 
				
			||||
    android:viewportWidth="108"
 | 
				
			||||
    android:viewportHeight="108">
 | 
				
			||||
    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
 | 
				
			||||
        <aapt:attr name="android:fillColor">
 | 
				
			||||
            <gradient
 | 
				
			||||
                android:endX="85.84757"
 | 
				
			||||
                android:endY="92.4963"
 | 
				
			||||
                android:startX="42.9492"
 | 
				
			||||
                android:startY="49.59793"
 | 
				
			||||
                android:type="linear">
 | 
				
			||||
                <item
 | 
				
			||||
                    android:color="#44000000"
 | 
				
			||||
                    android:offset="0.0" />
 | 
				
			||||
                <item
 | 
				
			||||
                    android:color="#00000000"
 | 
				
			||||
                    android:offset="1.0" />
 | 
				
			||||
            </gradient>
 | 
				
			||||
        </aapt:attr>
 | 
				
			||||
    </path>
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#FFFFFF"
 | 
				
			||||
        android:fillType="nonZero"
 | 
				
			||||
        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
 | 
				
			||||
        android:strokeWidth="1"
 | 
				
			||||
        android:strokeColor="#00000000" />
 | 
				
			||||
</vector>
 | 
				
			||||
| 
		 After Width: | Height: | Size: 2.7 KiB  | 
| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 6.0 KiB  | 
| 
		 After Width: | Height: | Size: 5.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 After Width: | Height: | Size: 5.8 KiB  | 
| 
		 After Width: | Height: | Size: 4.9 KiB  | 
| 
		 After Width: | Height: | Size: 5.6 KiB  | 
| 
		 After Width: | Height: | Size: 7.2 KiB  | 
| 
		 After Width: | Height: | Size: 4.8 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 4.8 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 4.6 KiB  | 
| 
		 After Width: | Height: | Size: 5.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 4.1 KiB  | 
| 
		 After Width: | Height: | Size: 6.0 KiB  | 
| 
		 After Width: | Height: | Size: 5.4 KiB  | 
| 
		 After Width: | Height: | Size: 4.7 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 4.5 KiB  | 
| 
		 After Width: | Height: | Size: 5.1 KiB  | 
| 
		 After Width: | Height: | Size: 5.1 KiB  | 
| 
		 After Width: | Height: | Size: 5.2 KiB  | 
| 
		 After Width: | Height: | Size: 3.2 KiB  | 
| 
		 After Width: | Height: | Size: 4.7 KiB  | 
| 
		 After Width: | Height: | Size: 6.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 2.5 KiB  | 
| 
		 After Width: | Height: | Size: 5.2 KiB  | 
| 
		 After Width: | Height: | Size: 5.9 KiB  | 
| 
		 After Width: | Height: | Size: 6.8 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 1.8 KiB  | 
| 
		 After Width: | Height: | Size: 6.5 KiB  | 
| 
		 After Width: | Height: | Size: 6.0 KiB  | 
| 
		 After Width: | Height: | Size: 4.9 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 5.8 KiB  | 
| 
		 After Width: | Height: | Size: 5.6 KiB  | 
| 
		 After Width: | Height: | Size: 5.1 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 588 B  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 2.9 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 3.9 KiB  | 
| 
		 After Width: | Height: | Size: 725 B  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.5 KiB  | 
| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 After Width: | Height: | Size: 835 B  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 After Width: | Height: | Size: 2.0 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
@ -0,0 +1,170 @@
 | 
				
			||||
<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||
    android:width="108dp"
 | 
				
			||||
    android:height="108dp"
 | 
				
			||||
    android:viewportWidth="108"
 | 
				
			||||
    android:viewportHeight="108">
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#008577"
 | 
				
			||||
        android:pathData="M0,0h108v108h-108z" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M9,0L9,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,0L19,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M29,0L29,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M39,0L39,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M49,0L49,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M59,0L59,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M69,0L69,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M79,0L79,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M89,0L89,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M99,0L99,108"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,9L108,9"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,19L108,19"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,29L108,29"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,39L108,39"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,49L108,49"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,59L108,59"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,69L108,69"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,79L108,79"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,89L108,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M0,99L108,99"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,29L89,29"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,39L89,39"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,49L89,49"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,59L89,59"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,69L89,69"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M19,79L89,79"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M29,19L29,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M39,19L39,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M49,19L49,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M59,19L59,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M69,19L69,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
    <path
 | 
				
			||||
        android:fillColor="#00000000"
 | 
				
			||||
        android:pathData="M79,19L79,89"
 | 
				
			||||
        android:strokeWidth="0.8"
 | 
				
			||||
        android:strokeColor="#33FFFFFF" />
 | 
				
			||||
</vector>
 | 
				
			||||