|
package com.electric.chargingpile.activity;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.blankj.utilcode.util.EmptyUtils;
import com.blankj.utilcode.util.LogUtils;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.BaseRecyclerAdapter;
import com.electric.chargingpile.adapter.FindAdapter;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.data.Adin;
import com.electric.chargingpile.data.ChargingShareBean;
import com.electric.chargingpile.data.FindData;
import com.electric.chargingpile.manager.ProfileManager;
import com.electric.chargingpile.util.BarColorUtil;
import com.electric.chargingpile.util.DES3;
import com.electric.chargingpile.util.ImageTools;
import com.electric.chargingpile.util.JsonUtils;
import com.electric.chargingpile.util.OkHttpUtil;
import com.electric.chargingpile.util.ToastUtil;
import com.electric.chargingpile.view.GridDividerItemDecoration;
import com.electric.chargingpile.view.SlideFindView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.umeng.analytics.MobclickAgent;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import org.json.JSONArray;
import org.zackratos.ultimatebar.UltimateBar;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.tencent.qq.QQ;
import cn.sharesdk.wechat.friends.Wechat;
import cn.sharesdk.wechat.moments.WechatMoments;
import okhttp3.Call;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.AppSettingsDialog;
import pub.devrel.easypermissions.EasyPermissions;
import top.zibin.luban.Luban;
import top.zibin.luban.OnCompressListener;
public class FindActivity extends AppCompatActivity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
private static final String TAG = "FindActivity";
private FindAdapter findAdapter;
private RecyclerView rvFind;
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
private RelativeLayout ll_center, ll_claim, ll_build, ll_add,
ll_edaijia, ll_weizhang, ll_yuyue, ll_shop, ll_toutiao, rl_jisuan, ll_planroute, rl_help;
private LinearLayout ll_tab_our, ll_tab_index, ll_tab_screening, tab_qa;
private long exitTime = 0;
private ImageView iv_our, iv_find, iv_main, iv_screening;
private SlideFindView sfv;
private Context context;
public static String current_url = "";
public static boolean haveFindMessage = false;
private TextView tv_find, tv_msg_num;
private UltimateBar ultimateBar;
private ImageView mIvMarkerBg, ivPoint;
private TextView mTvMarkerViewNum;
private View mMarkerView;
private ProgressDialog loadingDialog;
private boolean isRefresh = false;
private static final int RC_CAMERA_PERM = 123;
private List<FindData> list = new ArrayList<>();
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 2:
try {
JSONArray jsonArray = new JSONArray(msg.obj.toString());
String data = jsonArray.toString();
ArrayList<Adin> list = new ArrayList<Adin>();
if (!data.equals("")) {
Gson g = new Gson();
List<Adin> l = g.fromJson(data, new TypeToken<List<Adin>>() {
}.getType());
if (l != null && l.size() > 0) {
list.addAll(l);
}
sfv.initData(list);
}
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find);
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver, intentFilter);
BarColorUtil.initStatusBarColor(FindActivity.this);
initViews();
initDatas();
}
private void initViews() {
loadingDialog = new ProgressDialog(this);
loadingDialog.setMessage("图片解析中...");
loadingDialog.setCanceledOnTouchOutside(false);
ll_tab_index = (LinearLayout) findViewById(R.id.ll_tab_index);
ll_tab_index.setOnClickListener(this);
ll_tab_our = (LinearLayout) findViewById(R.id.ll_tab_our);
ll_tab_our.setOnClickListener(this);
ll_tab_screening = (LinearLayout) findViewById(R.id.tab_screening);
ll_tab_screening.setOnClickListener(this);
rl_jisuan = (RelativeLayout) findViewById(R.id.rl_jisuan);
rl_jisuan.setOnClickListener(this);
tv_msg_num = (TextView) findViewById(R.id.tv_msg_num);
ll_build = (RelativeLayout) findViewById(R.id.ll_build);
ll_build.setOnClickListener(this);
ll_add = (RelativeLayout) findViewById(R.id.ll_add);
ll_add.setOnClickListener(this);
ll_claim = (RelativeLayout) findViewById(R.id.ll_claim);
ll_claim.setOnClickListener(this);
ll_edaijia = (RelativeLayout) findViewById(R.id.ll_edaijia);
ll_edaijia.setOnClickListener(this);
ll_weizhang = (RelativeLayout) findViewById(R.id.ll_weizhang);
ll_weizhang.setOnClickListener(this);
ll_yuyue = (RelativeLayout) findViewById(R.id.ll_yuyue);
ll_yuyue.setOnClickListener(this);
ll_shop = (RelativeLayout) findViewById(R.id.ll_shop);
ll_shop.setOnClickListener(this);
ll_planroute = (RelativeLayout) findViewById(R.id.ll_planroute);
ll_planroute.setOnClickListener(this);
ll_center = (RelativeLayout) findViewById(R.id.ll_center);
ll_center.setOnClickListener(this);
tab_qa = (LinearLayout) findViewById(R.id.tab_qa);
tab_qa.setOnClickListener(this);
ivPoint = (ImageView) findViewById(R.id.iv_point);
rl_help = (RelativeLayout) findViewById(R.id.rl_help);
rl_help.setOnClickListener(this);
sfv = (SlideFindView) findViewById(R.id.ll_ad);
iv_our = (ImageView) findViewById(R.id.iv_our);
iv_find = (ImageView) findViewById(R.id.iv_find);
iv_main = (ImageView) findViewById(R.id.iv_main);
iv_screening = (ImageView) findViewById(R.id.iv_screening);
tv_find = (TextView) findViewById(R.id.tv_find);
mMarkerView = LayoutInflater.from(this).inflate(R.layout.view_tab_count, null);
mMarkerView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
mTvMarkerViewNum = (TextView) mMarkerView.findViewById(R.id.tv_num);
mIvMarkerBg = (ImageView) mMarkerView.findViewById(R.id.iv_icon);
rvFind = (RecyclerView) findViewById(R.id.rv_find);
}
private void initDatas() {
getFindNews();
}
private void initRecyclerView(final List<FindData> rvList) {
findAdapter = new FindAdapter(FindActivity.this, rvList);
rvFind.setLayoutManager(new GridLayoutManager(FindActivity.this, 3));
rvFind.setHasFixedSize(false);
rvFind.setNestedScrollingEnabled(false);
rvFind.addItemDecoration(new GridDividerItemDecoration(FindActivity.this, 3));
rvFind.setAdapter(findAdapter);
findAdapter.setOnItemClickListener(new BaseRecyclerAdapter.OnItemClickListener() {
@Override
public void onItemClick(View itemView, int pos) {
FindData findData = rvList.get(pos);
dealSkipData(findData);
}
});
list.clear();
list.addAll(rvList);
LogUtils.e("初始化或刷新了rv");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.rl_help:
MobclickAgent.onEvent(getApplicationContext(), "0604");
Intent intent_help = new Intent(getApplication(), MyWebViewActivity.class);
intent_help.putExtra("url", "http://evcharge.cc/cdz/newcharge-help.html");
startActivity(intent_help);
break;
case R.id.ll_center:
Intent intent9 = new Intent(getApplication(), MyWebViewActivity.class);
intent9.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/zhanhuodong/activitycenter");
startActivity(intent9);
MobclickAgent.onEvent(getApplicationContext(), "0708");
break;
case R.id.ll_tab_index:
Intent ii = new Intent(getApplication(), MainMapActivity.class);
ii.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(ii);
MobclickAgent.onEvent(getApplicationContext(), "0118");
overridePendingTransition(0, 0);
break;
case R.id.tab_qa:
MobclickAgent.onEvent(getApplicationContext(), "0999");
Intent i = new Intent(getApplication(), ChatActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);
overridePendingTransition(0, 0);
break;
case R.id.ll_tab_our:
MobclickAgent.onEvent(getApplicationContext(), "0106");
Intent intent1 = new Intent(getApplication(), UserCenterActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent1);
overridePendingTransition(0, 0);
break;
case R.id.tab_screening:
if (!MainApplication.isLogin()) {
startActivity(new Intent(getApplication(), LoginActivity.class));
} else if (!cameraTask()) {
EasyPermissions.requestPermissions(
this,
"该功能需要开启摄像头权限,是否前往开启?",
RC_CAMERA_PERM,
Manifest.permission.CAMERA);
} else {
Intent iintent = new Intent(getApplicationContext(), com.google.zxing.client.android.CaptureActivity.class);
iintent.putExtra("url", MainApplication.url);
iintent.putExtra("user_id", MainApplication.userId);
iintent.putExtra("user_password", MainApplication.userPassword);
iintent.putExtra("user_phone", MainApplication.userPhone);
iintent.putExtra("cha", MainMapActivity.cha);
iintent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(iintent);
overridePendingTransition(0, 0);
MobclickAgent.onEvent(getApplicationContext(), "0104");
}
break;
case R.id.ll_planroute:
startActivity(new Intent(getApplication(), RoutePlanShowAddressActivity.class));
MobclickAgent.onEvent(getApplicationContext(), "0705");
break;
case R.id.ll_add:
if (!MainApplication.isLogin()) {
Toast.makeText(getApplication(), "请先登录", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplication(), LoginActivity.class));
} else {
startActivity(new Intent(getApplication(), ShareTwoActivity.class));
MobclickAgent.onEvent(getApplicationContext(), "0709");
}
break;
case R.id.ll_build:
if (!MainApplication.isLogin()) {
Toast.makeText(getApplication(), "请先登录", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplication(), LoginActivity.class));
} else {
startActivity(new Intent(getApplication(), BuildTypeActivity.class));
MobclickAgent.onEvent(getApplicationContext(), "0008");
}
break;
case R.id.ll_claim:
Intent intent145 = new Intent(getApplication(), MyWebViewActivity.class);
String web23 = null;
try {
web23 = "http://cdz.evcharge.cc/zhannew/basic/web/index.php/group/index";
} catch (Exception e) {
e.printStackTrace();
}
intent145.putExtra("url", web23);
startActivity(intent145);
break;
case R.id.rl_jisuan:
if (!MainApplication.isLogin()) {
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
} else {
Intent intentt = new Intent(getApplication(), MyWebViewActivity.class);
String s = null;
try {
s = "https://evcharge.cc/node/pcalc/pre-pcalc?tel=" + MainApplication.userPhone + "&user_id=" + MainApplication.userId;
} catch (Exception e) {
e.printStackTrace();
}
intentt.putExtra("url", s);
startActivity(intentt);
MobclickAgent.onEvent(getApplicationContext(), "0040");
}
break;
case R.id.ll_edaijia:
Intent intent2 = new Intent(getApplication(), MyWebViewActivity.class);
String web = "";
if (!MainApplication.isLogin()) {
web = "http://evcharge.cc/cdz/e-driver.html";
} else {
web = "http://evcharge.cc/cdz/e-driver.html#%7Bphone%3A" + MainApplication.userPhone + "%7D";
}
intent2.putExtra("url", web);
startActivity(intent2);
MobclickAgent.onEvent(getApplicationContext(), "0013");
break;
case R.id.ll_shop:
long appTime11 = System.currentTimeMillis() / 1000;
Log.i("appTime(long)---", appTime11 + "");
long updatetime1 = appTime11 - MainMapActivity.cha - 5;
Log.i("updatetime(long)---", updatetime1 + "");
Log.i("cha---", MainMapActivity.cha + "");
String token1 = String.valueOf(updatetime1);
String encode_token = null;
try {
encode_token = DES3.encode(token1);
} catch (Exception e) {
e.printStackTrace();
}
String replace = URLEncoder.encode(encode_token);
Intent intent11 = new Intent();
intent11.setClass(FindActivity.this, CreditActivity.class);
intent11.putExtra("navColor", "#fcfcfc"); //配置导航条的背景颜色,请用#ffffff长格式。
intent11.putExtra("titleColor", "#222222"); //配置导航条标题的颜色,请用#ffffff长格式。
MainApplication.goods_type = "shop";
if (!MainApplication.isLogin()) {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
} else {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?user_id=" + MainApplication.userId + "&token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
}
startActivity(intent11);
CreditActivity.creditsListener = new CreditActivity.CreditsListener() {
/**
* 当点击分享按钮被点击
* @param shareUrl 分享的地址
* @param shareThumbnail 分享的缩略图
* @param shareTitle 分享的标题
* @param shareSubtitle 分享的副标题
*/
public void onShareClick(WebView webView, String shareUrl, String shareThumbnail, String shareTitle, String shareSubtitle) {
ChargingShareBean chargingShareBean = new ChargingShareBean();
chargingShareBean.setIcon(shareThumbnail);
chargingShareBean.setTitle(shareTitle);
chargingShareBean.setUrl(shareUrl);
chargingShareBean.setText("");
showSimpleBottomSheetGrid(chargingShareBean);
}
/**
* 当点击“请先登录”按钮唤起登录时,会调用此处代码。
* 用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
* @param webView 用于登录成功后返回到当前的webview刷新登录状态。
* @param currentUrl 当前页面的url
*/
public void onLoginClick(WebView webView, final String currentUrl) {
//当未登录的用户点击去登录时,会调用此处代码。
//用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
//为了用户登录后能回到未登录前的页面(currentUrl)。
//当用户登录成功后,需要重新请求一次服务端,带上currentUrl。
//用该方法中的webview变量加载请求链接。
//服务端收到请求后在生成免登录url时,将currentUrl放入redirect参数,通知客户端302跳转到新生成的免登录URL。
new AlertDialog.Builder(webView.getContext())
.setTitle("跳转登录")
.setMessage("跳转到登录页面?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainApplication.current_url = currentUrl;
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
})
.setNegativeButton("否", null)
.show();
}
/**
* 当点击“复制”按钮时,触发该方法,回调获取到券码code
* @param webView webview对象。
* @param code 复制的券码
*/
public void onCopyCode(WebView webView, String code) {
//当未登录的用户点击去登录时,会调用此处代码。
new AlertDialog.Builder(webView.getContext())
.setTitle("复制券码")
.setMessage("已复制,券码为:" + code)
.setPositiveButton("是", null)
.setNegativeButton("否", null)
.show();
}
/**
* 积分商城返回首页刷新积分时,触发该方法。
*/
public void onLocalRefresh(WebView mWebView, String credits) {
//String credits为积分商城返回的最新积分,不保证准确。
//触发更新本地积分,这里建议用ajax向自己服务器请求积分值,比较准确。
// Toast.makeText(getApplicationContext(), "触发本地刷新积分:"+credits,Toast.LENGTH_SHORT).show();
}
};
MobclickAgent.onEvent(getApplicationContext(), "0706");
// }
break;
case R.id.ll_weizhang:
if (!MainApplication.isLogin()) {
Toast.makeText(getApplication(), "请先登录", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplication(), LoginActivity.class));
} else {
long appTime1 = System.currentTimeMillis() / 1000;
long updatetime = appTime1 - MainMapActivity.cha - 1;
String token = null;
try {
token = URLEncoder.encode(DES3.encode(String.valueOf(updatetime)));
} catch (Exception e) {
e.printStackTrace();
}
Intent intent3 = new Intent(getApplication(), MyWebViewActivity.class);
intent3.putExtra("url", MainApplication.url + "/zhannew/basic/web/index.php/zhancar/car?user_id=" + MainApplication.userId + "&tel=" + MainApplication.userPhone + "&token=" + token);
startActivity(intent3);
MobclickAgent.onEvent(getApplicationContext(), "0710");
}
break;
case R.id.ll_yuyue:
Intent intent4 = new Intent(getApplication(), MyWebViewActivity.class);
String web1 = null;
try {
web1 = "https://m.d1ev.com/?from=cdz";
} catch (Exception e) {
e.printStackTrace();
}
intent4.putExtra("url", web1);
startActivity(intent4);
MobclickAgent.onEvent(getApplicationContext(), "0711");
break;
}
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
@Override
protected void onResume() {
super.onResume();
getRecyclerViewData();
if (MainMapActivity.total_unread > 0) {
tv_msg_num.setVisibility(View.VISIBLE);
tv_msg_num.setText(MainMapActivity.total_unread + "");
} else {
tv_msg_num.setVisibility(View.GONE);
}
isRefresh = false;
MobclickAgent.onResume(this);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
if (MainMapActivity.mainMapActivity != null) {
MainMapActivity.mainMapActivity.finish();
}
SharedPreferences mySharedPreferences = getSharedPreferences("showdialog",
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor1 = mySharedPreferences.edit();
editor1.clear();
ProfileManager.getInstance().setSearchAddress(this, "");
android.os.Process.killProcess(android.os.Process.myPid());
}
return true;
}
return super.onKeyDown(keyCode, event);
}
private void getFindNews() {
new Thread(new Runnable() {
@Override
public void run() {
Request request = new Request.Builder().url(MainApplication.url + "/zhannew/basic/web/index.php/adin/getfx").build();
Response response = null;
try {
response = OkHttpUtil.execute(request);
if (response.code() == 200) {
String json = "";
try {
json = response.body().string();
Message msg = new Message();
msg.obj = json;
msg.what = 2;
handler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
}
}
}).start();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
private boolean hasCameraPermission() {
return EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA);
}
@AfterPermissionGranted(RC_CAMERA_PERM)
public boolean cameraTask() {
if (hasCameraPermission()) {
return true;
} else {
return false;
}
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
LogUtils.e("wwwwwww");
Intent iintent = new Intent(getApplicationContext(), com.google.zxing.client.android.CaptureActivity.class);
iintent.putExtra("url", MainApplication.url);
iintent.putExtra("user_id", MainApplication.userId);
iintent.putExtra("user_password", MainApplication.userPassword);
iintent.putExtra("user_phone", ProfileManager.getInstance().getUsername(getApplicationContext()));
iintent.putExtra("cha", MainMapActivity.cha);
iintent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(iintent);
overridePendingTransition(0, 0);
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
new AppSettingsDialog.Builder(FindActivity.this).build().show();
}
}
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (null != networkInfo && networkInfo.isAvailable()) {
} else {
Toast.makeText(context, "当前网络不可用", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
public static void showInstalledAppDetails(Context context, String packageName) {
Intent intent = new Intent();
final int apiLevel = Build.VERSION.SDK_INT;
if (apiLevel >= 9) {
// 2.3(ApiLevel 9)以上,使用SDK提供的接口
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", packageName, null);
intent.setData(uri);
} else {
// 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)
// 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不同。
final String appPkgName = (apiLevel == 8 ? "pkg"
: "com.android.settings.ApplicationPkgName");
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName("com.android.settings",
"com.android.settings.InstalledAppDetails");
intent.putExtra(appPkgName, packageName);
}
context.startActivity(intent);
}
private Bitmap getMarkerBmp(int num) {
mIvMarkerBg.setImageResource(R.drawable.tab_our_selected_h1);
if (num > 10) {
mTvMarkerViewNum.setText(Integer.toString(num));
} else {
mTvMarkerViewNum.setText(Integer.toString(num));
}
Bitmap bmp = getBitmapFromView(mMarkerView);
return bmp;
}
public static Bitmap getBitmapFromView(View view) {
view.destroyDrawingCache();
view.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.setDrawingCacheEnabled(true);
Bitmap tmp = view.getDrawingCache();
Bitmap bitmap = tmp.copy(Bitmap.Config.ARGB_8888, false);
tmp.recycle();
return bitmap;
}
private void showSimpleBottomSheetGrid(final ChargingShareBean chargingShareBean) {
final int TAG_SHARE_WECHAT_FRIEND = 0;
final int TAG_SHARE_WECHAT_MOMENT = 1;
final int TAG_SHARE_QQ = 2;
QMUIBottomSheet.BottomGridSheetBuilder builder = new QMUIBottomSheet.BottomGridSheetBuilder(FindActivity.this);
QMUIBottomSheet build = builder.addItem(R.drawable.icon_share_wechat, "微信", TAG_SHARE_WECHAT_FRIEND, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE)
.addItem(R.drawable.icon_share_wechatquan, "朋友圈", TAG_SHARE_WECHAT_MOMENT, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE)
.addItem(R.drawable.icon_share_qq, "QQ", TAG_SHARE_QQ, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE)
.setOnSheetItemClickListener(new QMUIBottomSheet.BottomGridSheetBuilder.OnSheetItemClickListener() {
@Override
public void onClick(QMUIBottomSheet dialog, View itemView) {
dialog.dismiss();
int tag = (int) itemView.getTag();
switch (tag) {
case TAG_SHARE_WECHAT_FRIEND:
share(Wechat.NAME, chargingShareBean);
break;
case TAG_SHARE_WECHAT_MOMENT:
share(WechatMoments.NAME, chargingShareBean);
break;
case TAG_SHARE_QQ:
share(QQ.NAME, chargingShareBean);
break;
}
}
}).build();
// build.
build.show();
}
private void share(final String name, ChargingShareBean chargingShareBean) {
Platform.ShareParams paramsToShare = new Platform.ShareParams();
paramsToShare.setText(chargingShareBean.getText());
paramsToShare.setTitle(chargingShareBean.getTitle());
paramsToShare.setTitleUrl(chargingShareBean.getUrl());
paramsToShare.setUrl(chargingShareBean.getUrl());
paramsToShare.setImageUrl(chargingShareBean.getIcon());
paramsToShare.setShareType(Platform.SHARE_WEBPAGE);
Platform platform = ShareSDK.getPlatform(name);
platform.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
if (MainApplication.isLogin()) {
getShareIntegral();
}
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
LogUtils.e(throwable.getMessage());
}
@Override
public void onCancel(Platform platform, int i) {
}
});
platform.share(paramsToShare);
}
private void getShareIntegral() {
String url = MainApplication.url + "/zhannew/basic/web/index.php/member/insert-task?userid=" + MainApplication.userId;
OkHttpUtils.get().url(url).build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
}
@Override
public void onResponse(String response) {
Log.e(TAG, "onResponse: getShareIntegral=" + response);
String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
if (rtnCode.equals("01")) {
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (data != null) {
if (requestCode == 1) {
//处理调用系统图库
}
}
}
}
public static String getJson(Context mContext, String fileName) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
AssetManager am = mContext.getAssets();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
am.open(fileName)));
String next = "";
while (null != (next = br.readLine())) {
sb.append(next);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
sb.delete(0, sb.length());
}
return sb.toString().trim();
}
private void getRecyclerViewData() {
String findDate = ProfileManager.getInstance().getFindDate(FindActivity.this);
if (EmptyUtils.isEmpty(findDate)) {
findDate = String.valueOf(System.currentTimeMillis() / 1000);
ProfileManager.getInstance().setFindDate(FindActivity.this, findDate);
}
String url = MainApplication.url + "/zhannew/basic/web/index.php/discovery/menu-list";
OkHttpUtils.get().url(url).addParams("timer", findDate).build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
}
@Override
public void onResponse(String response) {
LogUtils.e(response);
if (EmptyUtils.isNotEmpty(response)) {
String rtnCode = JsonUtils.getKeyResult(response, "rtnCode");
if ("01".equals(rtnCode)) {
String data = JsonUtils.getKeyResult(response, "data");
List<FindData> nowList = JsonUtils.parseToObjectList(data, FindData.class);
if (nowList.size() > 0) {
LogUtils.e(isSameList(nowList));
if (isSameList(nowList) == false || isRefresh) {
initRecyclerView(nowList);
}
}
for (FindData findData : list) {
if (findData.getUnread().equals("0")) {
ivPoint.setVisibility(View.VISIBLE);
haveFindMessage = true;
return;
}
}
ivPoint.setVisibility(View.GONE);
haveFindMessage = false;
LogUtils.e("123456");
}
}
}
});
}
private void dealSkipData(FindData findData) {
if ("1".equals(findData.getIsLogin())) {
if (MainApplication.isLogin()) {
if ("1".equals(findData.getIsProto())) {
skipNativeActivity(findData.getUrl());
} else {
if (findData.getUnread().equals("0")) {
String findDate = String.valueOf(System.currentTimeMillis() / 1000);
ProfileManager.getInstance().setFindDate(FindActivity.this, findDate);
}
isRefresh = true;
skipWebView(findData);
}
} else {
ToastUtil.showToast(getApplicationContext(), "请先登录", Toast.LENGTH_SHORT);
startActivity(new Intent(FindActivity.this, LoginActivity.class));
}
} else {
if ("1".equals(findData.getIsProto())) {
skipNativeActivity(findData.getUrl());
} else {
if (findData.getUnread().equals("0")) {
String findDate = String.valueOf(System.currentTimeMillis() / 1000);
ProfileManager.getInstance().setFindDate(FindActivity.this, findDate);
}
isRefresh = true;
skipWebView(findData);
}
}
}
private void skipNativeActivity(String url) {
switch (url) {
case "find_routePlanning":
startActivity(new Intent(getApplication(), RoutePlanShowAddressActivity.class));
MobclickAgent.onEvent(getApplicationContext(), "0705");
break;
case "find_addChargestation":
startActivity(new Intent(getApplication(), ShareTwoActivity.class));
MobclickAgent.onEvent(getApplicationContext(), "0709");
break;
case "find_carowerStore":
skipShop();
MobclickAgent.onEvent(getApplicationContext(), "0706");
break;
default:
break;
}
}
private void skipWebView(FindData findData) {
if (findData!=null && "获得红包".equals(findData.getName())){
MobclickAgent.onEvent(getApplicationContext(), "1125");
}
Uri.Builder builder = Uri.parse(findData.getUrl()).buildUpon();
builder.appendQueryParameter("user_id", MainApplication.userId);
builder.appendQueryParameter("tel", MainApplication.userPhone);
builder.appendQueryParameter("token", MainApplication.userId);
LogUtils.e(builder.toString());
Intent intent = new Intent(getApplicationContext(), MyWebViewActivity.class);
intent.putExtra("url", findData.getUrl());
startActivity(intent);
Map<String, String> map = new HashMap<>();
map.put("type", findData.getName());
MobclickAgent.onEvent(getApplicationContext(), "0713", map);
}
private void skipShop() {
long appTime11 = System.currentTimeMillis() / 1000;
long updatetime1 = appTime11 - MainMapActivity.cha - 5;
String token1 = String.valueOf(updatetime1);
String encode_token = null;
try {
encode_token = DES3.encode(token1);
} catch (Exception e) {
e.printStackTrace();
}
String replace = URLEncoder.encode(encode_token);
Intent intent11 = new Intent();
intent11.setClass(FindActivity.this, CreditActivity.class);
intent11.putExtra("navColor", "#fcfcfc"); //配置导航条的背景颜色,请用#ffffff长格式。
intent11.putExtra("titleColor", "#222222"); //配置导航条标题的颜色,请用#ffffff长格式。
MainApplication.goods_type = "shop";
if (!MainApplication.isLogin()) {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
} else {
intent11.putExtra("url", "http://cdz.evcharge.cc/zhannew/basic/web/index.php/duiba/active?user_id=" + MainApplication.userId + "&token=" + replace); //配置自动登陆地址,每次需服务端动态生成。
}
startActivity(intent11);
CreditActivity.creditsListener = new CreditActivity.CreditsListener() {
/**
* 当点击分享按钮被点击
* @param shareUrl 分享的地址
* @param shareThumbnail 分享的缩略图
* @param shareTitle 分享的标题
* @param shareSubtitle 分享的副标题
*/
public void onShareClick(WebView webView, String shareUrl, String shareThumbnail, String shareTitle, String shareSubtitle) {
//当分享按钮被点击时,会调用此处代码。在这里处理分享的业务逻辑。
ChargingShareBean chargingShareBean = new ChargingShareBean();
chargingShareBean.setIcon(shareThumbnail);
chargingShareBean.setTitle(shareTitle);
chargingShareBean.setUrl(shareUrl);
chargingShareBean.setText("");
showSimpleBottomSheetGrid(chargingShareBean);
}
/**
* 当点击“请先登录”按钮唤起登录时,会调用此处代码。
* 用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
* @param webView 用于登录成功后返回到当前的webview刷新登录状态。
* @param currentUrl 当前页面的url
*/
public void onLoginClick(WebView webView, final String currentUrl) {
//当未登录的用户点击去登录时,会调用此处代码。
//用户登录后,需要将CreditsActivity.IS_WAKEUP_LOGIN变量设置为true。
//为了用户登录后能回到未登录前的页面(currentUrl)。
//当用户登录成功后,需要重新请求一次服务端,带上currentUrl。
//用该方法中的webview变量加载请求链接。
//服务端收到请求后在生成免登录url时,将currentUrl放入redirect参数,通知客户端302跳转到新生成的免登录URL。
new AlertDialog.Builder(webView.getContext())
.setTitle("跳转登录")
.setMessage("跳转到登录页面?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainApplication.current_url = currentUrl;
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
})
.setNegativeButton("否", null)
.show();
}
/**
* 当点击“复制”按钮时,触发该方法,回调获取到券码code
* @param webView webview对象。
* @param code 复制的券码
*/
@Override
public void onCopyCode(WebView webView, String code) {
//当未登录的用户点击去登录时,会调用此处代码。
new AlertDialog.Builder(webView.getContext())
.setTitle("复制券码")
.setMessage("已复制,券码为:" + code)
.setPositiveButton("是", null)
.setNegativeButton("否", null)
.show();
}
/**
* 积分商城返回首页刷新积分时,触发该方法。
*/
public void onLocalRefresh(WebView mWebView, String credits) {
}
};
}
private boolean isSameList(List<FindData> findList) {
if (list.size() == 0) {
return false;
}
for (int i = 0; i < findList.size(); i++) {
if (!list.get(i).equals(findList.get(i))) {
return false;
}
}
return true;
}
}
|