diff --git a/app/src/main/assets/Home.html b/app/src/main/assets/Home.html index bda116ef72..b1c0fb5c62 100644 --- a/app/src/main/assets/Home.html +++ b/app/src/main/assets/Home.html @@ -57,10 +57,11 @@ article {

光环助手

-
乐于分享的人是最帅的^_^
仅限安卓系统

+
乐于分享的人是最帅的^_^

- 零流量下载 + 免流量下载
+

仅限安卓系统

diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index ebf29fd01b..dc626a8c8e 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -73,7 +73,8 @@ public class ShareUtils { private Context context; - public static ShareUtils getInstance(Context context) { + + public static ShareUtils getInstance(Activity context) { if (instance == null) { instance = new ShareUtils(); mTencent = Tencent.createInstance("1104659243", context); //初始化QQ分享 diff --git a/app/src/main/java/com/gh/gamecenter/AboutActivity.java b/app/src/main/java/com/gh/gamecenter/AboutActivity.java index aaf8e55885..7efcecc7a3 100644 --- a/app/src/main/java/com/gh/gamecenter/AboutActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AboutActivity.java @@ -1,5 +1,6 @@ package com.gh.gamecenter; +import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -53,8 +54,10 @@ public class AboutActivity extends BaseActivity { UpdateManager.getInstance(this).checkUpdate(false, handler); // 自动检出更新 } } else if (view.getId() == R.id.about_shengming) { - // TODO 跳转免责声明 - + Intent intent = new Intent(AboutActivity.this, WebActivity.class); + intent.putExtra("gameName", "使用条款与免责声明"); + intent.putExtra("url","http://api.ghzhushou.com/disclaimer"); + startActivity(intent); } } } diff --git a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java index e97c65ba8d..79bf7dcb91 100644 --- a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java @@ -107,6 +107,8 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick updateWifiScanResult(); handler.sendEmptyMessageDelayed(0, 2000); } else if (msg.what == 2) { + isStopScan = false; + handler.sendEmptyMessage(0); connFailedAnimView(); } } @@ -525,6 +527,7 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick startActivity(intent); closeSocket(); Intent resultIntent= new Intent(); + resultIntent.putExtra("isFinish", true); setResult(0x123, resultIntent); finish(); } diff --git a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java index 20ac48d9a5..31a1df449f 100644 --- a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java @@ -55,7 +55,7 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On mNodataSkipLl.setVisibility(View.GONE); - mAdapter = new CleanApkAdapter(this, mApkDeleteBtn); + mAdapter = new CleanApkAdapter(this, mApkDeleteBtn, mApkSelectAll); mApkRv.setLayoutManager(new LinearLayoutManager(this)); mApkRv.setAdapter(mAdapter); @@ -63,12 +63,24 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { ArrayMap selectPosition = new ArrayMap<>(); + ArrayMap selectPosition1 = mAdapter.getSelectPosition(); int itemCount = mAdapter.getItemCount(); if (isChecked) { for (int i = 0; i < itemCount; i++) { selectPosition.put(i, true); } } else { + int selectCount = 0; + for (Integer integer : selectPosition1.keySet()) { + if (selectPosition1.get(integer)) { + selectCount ++; + } + } + + if (selectCount != itemCount) { + return; + } + for (int i = 0; i < itemCount; i++) { selectPosition.put(i, false); } @@ -82,6 +94,7 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On mNodataSkipBtn.setText("去首页看看"); mNodataSkipTv.setText("安装包已清理干净\n快去发现更多好玩的游戏吧!"); + mNodataSkipTv.setLineSpacing(0, 1.5f); } @@ -159,9 +172,11 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On DecimalFormat df = new DecimalFormat("#.00"); String sizeName = df.format(allSize) + "MB"; Utils.toast(CleanApkActivity.this, "删除成功,已为您节省" + sizeName + "空间"); - + mApkDeleteBtn.setText("一键删除"); mAdapter.notifyDataSetChanged(); // 刷新Adapter position + updateScanData(); + if (apkList.size() == 0) { // 全部删除 mNodataSkipLl.setVisibility(View.VISIBLE); mInstallAllData.setVisibility(View.GONE); @@ -169,24 +184,28 @@ public class CleanApkActivity extends BaseActivity implements CleanApkAdapter.On } } - @Override - public void onScanOver() { - mApkDeleteBtn.setText("立即删除"); - mApkDeleteBtn.setBackgroundResource(R.drawable.game_item_btn_red_style); - + private void updateScanData(){ long allSize = 0; - List apkList = mAdapter.getApkList(); for (InstallGameEntity installGameEntity : apkList) { allSize = allSize + installGameEntity.getGameSize(); } double size = (((float)allSize/1024)/1024); - DecimalFormat df = new DecimalFormat("#.00"); + DecimalFormat df = new DecimalFormat("0.00"); String sizeName = df.format(size) + "MB"; mApkCount.setText(Html.fromHtml("找到" + apkList.size() + "个安装包,占用" + "" + sizeName + ""+ "空间")); + } + + @Override + public void onScanOver() { + mApkDeleteBtn.setText("立即删除"); + mApkDeleteBtn.setBackgroundResource(R.drawable.game_item_btn_red_style); + + updateScanData(); + mScanPb.setVisibility(View.GONE); mApkSelectAll.setVisibility(View.VISIBLE); mApkSelectAll.setChecked(true); diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index c605d0f028..61732e54c4 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -117,8 +117,8 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { concernInfo.setConcern(true); concernInfo.setIcon(gameEntity.getIcon()); concernInfo.setId(gameEntity.getId()); - concernAdapter.getConcernList().add(concernInfo); - concernAdapter.getConcernGameList().add(gameEntity); + concernAdapter.getConcernList().add(0, concernInfo); + concernAdapter.getConcernGameList().add(0, gameEntity); if (reuse_none_data.getVisibility() == View.VISIBLE) { reuse_none_data.setVisibility(View.GONE); concern_rv_show.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index cb78451a0b..e1c6cb1c6d 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -1,11 +1,14 @@ package com.gh.gamecenter; import android.app.Dialog; +import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.text.TextUtils; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup.LayoutParams; @@ -28,6 +31,8 @@ import org.json.JSONObject; import java.io.File; import java.lang.ref.SoftReference; import java.net.HttpURLConnection; +import java.text.SimpleDateFormat; +import java.util.Date; import butterknife.BindView; import rx.Observable; @@ -42,6 +47,8 @@ public class CropImageActivity extends BaseActivity { private SoftReference reference; + private SharedPreferences sp; + private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { @@ -63,6 +70,8 @@ public class CropImageActivity extends BaseActivity { init(contentView, "图片裁剪"); + sp = getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); + RelativeLayout reuse_actionbar = (RelativeLayout) findViewById(R.id.reuse_actionbar); TextView confirm = new TextView(this); @@ -135,11 +144,36 @@ public class CropImageActivity extends BaseActivity { try { int statusCode = result.getInt("statusCode"); if (statusCode == HttpURLConnection.HTTP_OK) { + handler.sendEmptyMessage(0); + + String iconCount = sp.getString("updateIconCount", null); + + long l = System.currentTimeMillis(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); + String time = format.format(new Date(l)); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("time", time); + + if (TextUtils.isEmpty(iconCount)) { + jsonObject.put("count", 1); + } else { + JSONObject json = new JSONObject(iconCount); + String lastTime = json.getString("time"); + if (lastTime.equals(time)) { + jsonObject.put("count", json.getInt("count") + 1); + } else { + jsonObject.put("count", 1); + } + } + + sp.edit().putString("updateIconCount", jsonObject.toString()).apply(); + Intent data = new Intent(); data.putExtra("url", result.getString("icon")); setResult(RESULT_OK, data); finish(); - handler.sendEmptyMessage(0); + } else if (statusCode == HttpURLConnection.HTTP_FORBIDDEN && "too frequent".equals(result.getString("detail"))) { handler.sendEmptyMessage(2); diff --git a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java index 47612bf20d..2826fdf8a1 100644 --- a/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileReceiverActivity.java @@ -9,6 +9,7 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; +import android.os.Parcelable; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; @@ -32,6 +33,8 @@ import com.gh.download.DownloadDao; import com.gh.download.DownloadEntity; import com.gh.download.DownloadStatus; import com.gh.gamecenter.adapter.FileReceiverAdapter; +import com.gh.gamecenter.eventbus.EBDownloadChanged; +import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.kuaichuan.BaseTransfer; import com.gh.gamecenter.kuaichuan.Constant; @@ -58,6 +61,7 @@ import java.util.Map; import butterknife.BindView; import butterknife.OnClick; +import de.greenrobot.event.EventBus; /** * Created by khy on 2017/1/20. @@ -115,7 +119,7 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd } if (index == -1) { - Utils.toast(FileReceiverActivity.this, " 获取刷新位置异常"); +// Utils.toast(FileReceiverActivity.this, " 获取刷新位置异常"); return; } FileInfo fileInfo = mFileInfos.get(index); @@ -156,7 +160,9 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd } } Utils.log("FileReceiverActivity:: 获取刷新位置异常" + mFileInfos.size()); - return -1; + mFileInfos.add(mCurFileInfo); + + return mFileInfos.size() - 1; } @Override @@ -167,16 +173,19 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd isDestroy = false; - mFileReceiverAdapter = new FileReceiverAdapter(this); - mReceiverRv.setLayoutManager(new LinearLayoutManager(this)); - mReceiverRv.setAdapter(mFileReceiverAdapter); - - mFileInfos = (List) AppController.get("FileInfo", false); +// mFileInfos = (List) AppController.get("FileInfo", false); sendData = new ArrayList<>(); mIpPortInfo = (IpPortInfo) getIntent().getSerializableExtra(Constant.KEY_IP_PORT_INFO); isOpenWifi = getIntent().getBooleanExtra("isOpenWifi", false); + ArrayList list = getIntent().getParcelableArrayListExtra(Constant.KEY_IP_FILE_INFO); + mFileInfos = (List) list.get(0); + + mFileReceiverAdapter = new FileReceiverAdapter(this, mFileInfos); + mReceiverRv.setLayoutManager(new LinearLayoutManager(this)); + mReceiverRv.setAdapter(mFileReceiverAdapter); + mKeepReceiverTv.setText("继续接收"); @@ -190,6 +199,13 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd } else { initServer(); //启动接收服务 } + + findViewById(R.id.actionbar_rl_back).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + backHint(); + } + }); } private void initUserData() { @@ -273,11 +289,12 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd * @param msg */ private void parseFileInfo(String msg) { - mFileInfos = (List) AppController.get("FileInfo", false); // mFileInfos 数据异常 需要重新获取 +// mFileInfos = (List) AppController.get("FileInfo", false); // mFileInfos 数据异常 需要重新获取 FileInfo fileInfo = FileInfo.toObject(msg); if(fileInfo != null && fileInfo.getFilePath() != null){ mFileInfos.add(fileInfo); - AppController.put("FileInfo", mFileInfos); + Utils.log("FileReceiverActivity 添加一条数据::" + msg); +// AppController.put("FileInfo", mFileInfos); } } @@ -540,7 +557,9 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd break; case R.id.sender_keep_send: if ("继续接收".equals(mKeepReceiverTv.getText())) { - mReceiverControl.setVisibility(View.GONE); +// mReceiverControl.setVisibility(View.GONE); + mKeepReceiverTv.setBackgroundResource(R.drawable.game_item_btn_pause_style); + Utils.toast(FileReceiverActivity.this, "无需操作,请让对方继续发送即可"); } else { // 跳转安装包清理 Intent intent = new Intent(this, CleanApkActivity.class); startActivity(intent); @@ -585,9 +604,12 @@ public class FileReceiverActivity extends BaseActivity implements FileReceiverAd DownloadDao.getInstance(this).newOrUpdate(entry); } } + List all = DownloadDao.getInstance(this).getAll(); + EventBus.getDefault().post(new EBDownloadChanged("download", View.VISIBLE, all.size())); + EventBus.getDefault().post(new EBDownloadStatus("download")); mReceiverServer.close(); - AppController.remove("FileInfo"); +// AppController.remove("FileInfo"); mFileInfos.clear(); AppController.put("sendData", sendData); diff --git a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java index f336527d80..a15b216a53 100644 --- a/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java +++ b/app/src/main/java/com/gh/gamecenter/FileSenderActivity.java @@ -113,6 +113,13 @@ public class FileSenderActivity extends BaseActivity implements FileSenderAdapte mSenderRv.setAdapter(mSenderAdapter); init(); + + findViewById(R.id.actionbar_rl_back).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + backHint(); + } + }); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java index 724d9bdaa3..b8bc117bd9 100644 --- a/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KcSelectGameActivity.java @@ -47,7 +47,9 @@ public class KcSelectGameActivity extends BaseActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0x123) { - finish(); + if (data != null && data.getExtras()!= null && data.getExtras().getBoolean("isFinish")) { + finish(); + } } } @@ -78,7 +80,7 @@ public class KcSelectGameActivity extends BaseActivity { public void onClick(View v) { List selectData = mAdapter.getSelectData(); if (selectData.size() == 0) { - Utils.toast(KcSelectGameActivity.this, "请选择游戏"); + Utils.toast(KcSelectGameActivity.this, "请选择要发送的游戏"); return; } @@ -128,9 +130,9 @@ public class KcSelectGameActivity extends BaseActivity { if (gameSize == 0) { // 游戏列表为空 if (position == gameSize) { int buttom = layoutManager.findViewByPosition(position).getBottom(); - int i = installRl.getHeight() + DisplayUtils.dip2px(KcSelectGameActivity.this, 40); + int i = installRl.getHeight() + DisplayUtils.dip2px(KcSelectGameActivity.this, 43); if (buttom <= i && i/2 < buttom) { - rparams.topMargin = buttom - installRl.getHeight() - DisplayUtils.dip2px(KcSelectGameActivity.this, 40); + rparams.topMargin = buttom - installRl.getHeight() - DisplayUtils.dip2px(KcSelectGameActivity.this, 43); installRl.setLayoutParams(rparams); installCount.setText("已安装的游戏(" + gameSize +")"); } else { diff --git a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java index d7f1de0d2b..ac8cfc20e6 100644 --- a/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ReceiverWaitingActivity.java @@ -37,6 +37,7 @@ import com.gh.gamecenter.receiver.WifiAPBroadcastReceiver; import org.json.JSONObject; +import java.io.Serializable; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; @@ -83,9 +84,17 @@ public class ReceiverWaitingActivity extends BaseActivity { @Override public void handleMessage(Message msg) { if(msg.what == 0){ + if (mFileInfos.size() == 0) { + Utils.toast(ReceiverWaitingActivity.this, "接收异常::ReceiverWaitingActivity"); + return; + } + ArrayList list = new ArrayList(); + list.add(mFileInfos); IpPortInfo ipPortInfo = (IpPortInfo) msg.obj; Bundle bundle = new Bundle(); bundle.putSerializable(Constant.KEY_IP_PORT_INFO, ipPortInfo); + bundle.putSerializable(Constant.KEY_IP_FILE_INFO, (Serializable) mFileInfos); + bundle.putParcelableArrayList(Constant.KEY_IP_FILE_INFO, list); bundle.putBoolean("isOpenWifi", isOpenWifi); Intent intent = new Intent(ReceiverWaitingActivity.this, FileReceiverActivity.class); @@ -291,7 +300,7 @@ public class ReceiverWaitingActivity extends BaseActivity { if(msg != null && msg.contains(Constant.MSG_FILE_RECEIVER_INIT)) { Utils.log("接收方初始化完毕准备进去传输页面 并回馈消息给发送者" + inetAddress); - AppController.put("FileInfo", mFileInfos); //保存数据列表 +// AppController.put("FileInfo", mFileInfos); //保存数据列表 启用改为Intent传输 // 反馈 文件发送方的消息 // sendData = Constant.MSG_FILE_RECEIVER_INIT_SUCCESS.getBytes(BaseTransfer.UTF_8); diff --git a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java index 1d20798c4f..ff05c2ee3f 100644 --- a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java @@ -7,6 +7,7 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; +import android.text.TextUtils; import android.view.View; import android.widget.TextView; import android.widget.Toast; @@ -19,8 +20,11 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; +import org.json.JSONException; import org.json.JSONObject; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -118,6 +122,25 @@ public class SelectUserIconActivity extends BaseActivity { postUserIocn(8); break; case R.id.skip_media_store: + + String iconCount = sp.getString("updateIconCount", null); + if (!TextUtils.isEmpty(iconCount)) { + long l = System.currentTimeMillis(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); + String time = format.format(new Date(l)); + + JSONObject json = null; + try { + json = new JSONObject(iconCount); + String lastTime = json.getString("time"); + if (lastTime.equals(time) && json.getInt("count") == 2) { + Utils.toast(SelectUserIconActivity.this, "每天最多只能上传2次头像"); + return; + } + } catch (JSONException e) { + e.printStackTrace(); + } + } Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 0x123); break; @@ -191,6 +214,8 @@ public class SelectUserIconActivity extends BaseActivity { ex.printStackTrace(); Toast.makeText(SelectUserIconActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); } + } else { + Toast.makeText(SelectUserIconActivity.this, "网络异常,修改头像失败", Toast.LENGTH_SHORT).show(); } } } diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index 4e33b21ac2..3def2c1e12 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -105,7 +105,7 @@ public class WebActivity extends BaseActivity { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); - if (TextUtils.isEmpty(newsId)) { + if (TextUtils.isEmpty(newsId) && TextUtils.isEmpty(newsTitle.getText().toString())) { newsTitle.setEllipsize(TextUtils.TruncateAt.END); newsTitle.setPadding(DisplayUtils.dip2px(getApplication(), 30), 0,DisplayUtils.dip2px(getApplication(), 30), 0); newsTitle.setSingleLine(); diff --git a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java index 8bf4d65649..8dc3a64799 100644 --- a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java @@ -96,7 +96,7 @@ public class WeiBoShareActivity extends Activity implements IWeiboHandler.Respon protected void onNewResultImpl(Bitmap bitmap) { Utils.log("分享获取bitmap成功,准备分享"); - Bitmap bgBitmap = ShareUtils.getInstance(getApplication()).addBackGround(bitmap); + Bitmap bgBitmap = ShareUtils.getInstance(WeiBoShareActivity.this).addBackGround(bitmap); TextObject textObject = new TextObject(); if (ispopupWindow) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java index 4528352703..d992e83925 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java @@ -4,17 +4,16 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.database.Cursor; import android.graphics.Color; import android.graphics.drawable.Drawable; -import android.net.Uri; +import android.os.Environment; import android.os.Handler; -import android.provider.MediaStore; import android.support.v4.util.ArrayMap; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.CheckBox; import android.widget.TextView; import com.gh.common.util.BitmapUtils; @@ -39,12 +38,18 @@ public class CleanApkAdapter extends RecyclerView.Adapter mApkList; private OnScanListener scanListener; private ArrayMap mSelectPosition; + private List mApkPath; + private static int INSTALLED = 0; // 表示已经安装 private static int UNINSTALLED = 1; // 表示未安装 @@ -52,20 +57,21 @@ public class CleanApkAdapter extends RecyclerView.Adapter(); mSelectPosition = new ArrayMap<>(); + mApkPath = new ArrayList<>(); isStopScan = false; isScanOver = false; @@ -77,7 +83,10 @@ public class CleanApkAdapter extends RecyclerView.Adapter 0) { + for (File file_str : files) { + FindAllAPKPath(file_str); + } } } - cursor.close(); } private int doType(PackageManager pm, String packageName) { @@ -288,11 +314,17 @@ public class CleanApkAdapter extends RecyclerView.Adapter { } private void initConcernGame() { + + // 按时间排序 + Collections.sort(concernList, new Comparator() { + @Override + public int compare(ConcernInfo lhs, ConcernInfo rhs) { + return String.valueOf(rhs.getTime()).compareTo(String.valueOf(lhs.getTime())); + } + }); final List result = new ArrayList<>(); List> sequences = new ArrayList<>(); for (ConcernInfo concernInfo : concernList) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java index ca21a08109..bcc6e93a32 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java @@ -9,7 +9,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.base.AppController; import com.gh.common.util.DisplayUtils; import com.gh.common.util.PackageUtils; import com.gh.common.util.SpeedUtils; @@ -34,18 +33,18 @@ public class FileReceiverAdapter extends RecyclerView.Adapter infos) { this.mContext = activity; this.cancelListener = activity; - mFileInfos = (List) AppController.get("FileInfo", false); + mFileInfos = infos; } /** * 更新数据 */ public void update(){ - mFileInfos = (List) AppController.get("FileInfo", false); +// mFileInfos = (List) AppController.get("FileInfo", false); notifyItemRangeChanged(0, getItemCount()); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java index ffc2a57575..44413b93d4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/KcSelectGameAdapter.java @@ -185,7 +185,7 @@ public class KcSelectGameAdapter extends RecyclerView.Adapter> mapList = (List>) AppController.get("sendData", true); if (mapList == null || mapList.size() == 0) return; WifiMgr.getInstance(getContext()).disconnectCurrentNetwork(); // 断开当前WiFi +// int heightPixels = getContext().getResources().getDisplayMetrics().heightPixels; +// int widthPixels = getContext().getResources().getDisplayMetrics().widthPixels; + int filesCount = mapList.size(); int filesSize = 0; int sendTime = 0; @@ -122,6 +129,7 @@ public class FileSendFragment extends Fragment { , R.layout.dialog_kuaichuan, null); final LinearLayout mShareLl = (LinearLayout) view.findViewById(R.id.kuaichuan_dialog_ll); final LinearLayout mShareBottomLl = (LinearLayout) view.findViewById(R.id.kuaichuan_dialog_share_rl); + RelativeLayout content = (RelativeLayout) view.findViewById(R.id.kuaichuan_dialog); LinearLayout shareIconLl = (LinearLayout) view.findViewById(R.id.kuaichuan_icon_ll); ImageView qrCode = (ImageView) view.findViewById(R.id.kuaichuan_qrcode); TextView dateTv = (TextView) view.findViewById(R.id.kuaichuan_dialog_date); @@ -132,18 +140,34 @@ public class FileSendFragment extends Fragment { TextView timeTv = (TextView) view.findViewById(R.id.kuaichuan_time_tv); TextView sendCountTv = (TextView) view.findViewById(R.id.dialog_send_tv); ImageView closeIv = (ImageView) view.findViewById(R.id.kuaichuan_dialog_colse); +// content.setLayoutParams(new LinearLayout.LayoutParams((int)(((float)heightPixels)*0.85), (int)((float)widthPixels*0.81))); + final Dialog dialog = new Dialog(getContext()); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCanceledOnTouchOutside(false); - dialog.show(); dialog.setContentView(view); + dialog.show(); + + Window dialogWindow = dialog.getWindow(); + WindowManager m = getActivity().getWindowManager(); + Display d = m.getDefaultDisplay(); + WindowManager.LayoutParams p = dialogWindow.getAttributes(); + p.height = (int) (d.getHeight() * 0.82); + p.width = (int) (d.getWidth() * 0.80); + dialogWindow.setAttributes(p); SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日", Locale.getDefault()); dateTv.setText(format.format(new Date().getTime())); for (Map map : mapList) { int size = Integer.parseInt(map.get("apkSize")); - int time = Integer.parseInt(map.get("sendTime")); + int time = 10; + try { + time = Integer.parseInt(map.get("sendTime")); + } catch (Exception e) { + e.printStackTrace(); + } + String apkPath = map.get("apkPath"); filesSize = filesSize + size; sendTime = sendTime + time; @@ -187,11 +211,22 @@ public class FileSendFragment extends Fragment { int i = (filesSize / 1024) / (sendTime / 1000); - String speed = SpeedUtils.getSpeed(i); + String speed ; + if (i >= 1000) { + float mSpeed = i / 1024f; + DecimalFormat df = new DecimalFormat("#.0"); + String str = df.format(mSpeed); + if (str.length() > 4) { + str = str.substring(0, 4); + } + speed = str + "MB/s"; + } else { + speed = i + "KB/s"; + } if (sendTime > 60000) { timeCount.setText(String.valueOf(sendTime/1000/60)); - timeTv.setText("分传送完成"); + timeTv.setText("分钟传送完成"); } else { timeCount.setText(String.valueOf(sendTime/1000)); timeTv.setText("秒传送完成"); @@ -210,6 +245,7 @@ public class FileSendFragment extends Fragment { Bitmap drawingCache = mShareLl.getDrawingCache(); saveBitmap(drawingCache); MessageShareUtils.getInstance(getContext()).showShareWindows(mShareBottomLl, drawingCache, picName, 2); + mShareBottomLl.setVisibility(View.VISIBLE); } }, 200); diff --git a/app/src/main/java/com/gh/gamecenter/kuaichuan/Constant.java b/app/src/main/java/com/gh/gamecenter/kuaichuan/Constant.java index 7a8611de77..4b1fcccdd8 100644 --- a/app/src/main/java/com/gh/gamecenter/kuaichuan/Constant.java +++ b/app/src/main/java/com/gh/gamecenter/kuaichuan/Constant.java @@ -53,8 +53,16 @@ public class Constant { public static final int DEFAULT_MICRO_SERVER_PORT = 3100; + /** + * 数据传输端口标识 + */ public static final String KEY_IP_PORT_INFO = "KEY_IP_PORT_INFO"; + /** + * 数据传输apk文件数据标识 + */ + public static final String KEY_IP_FILE_INFO = "KEY_IP_FILE_INFO"; + /** * 文件发送方 与 文件接收方 通信信息 diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index e000f59d70..ce7bcde81c 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -45,6 +45,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O private boolean mIsSearch; // 记录页面状态 搜索页面/普通页面 private boolean isDone; + private boolean historyIsEmpty; private String mSearckKey; // 记录搜索关键字 Runnable runnable = new Runnable() { @@ -62,6 +63,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O mIsSearch = false; isDone = false; + historyIsEmpty = false; mSearckKey = null; mRefreshLayout.setColorSchemeResources(R.color.theme); @@ -86,6 +88,9 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE && mLayoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { + if (historyIsEmpty && mFooterHint != null) { + mFooterHint.setText("加载完毕"); + } if (!adapter.isOver() && !adapter.isLoading() && !adapter.isNetworkError()) { isDone = false; adapter.addLibaoList(mIsSearch, adapter.getLibaoListSize()); @@ -104,7 +109,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O if ( mLayoutManager.findLastCompletelyVisibleItemPosition() + 1 != adapter.getItemCount()) { swipeLayout.setSwipeEnabled(false); } else { - if (isDone) { + if (isDone && !historyIsEmpty) { swipeLayout.setSwipeEnabled(true); } } @@ -225,6 +230,11 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O @Override public void loadDone(Object obj) { super.loadDone(obj); + if (obj.toString().equals("NULL")) { + historyIsEmpty = true; + return; + } + isDone = true; if (!mIsSearch) { diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index 792b509fb1..11ae132a1e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -82,9 +82,7 @@ public class LibaoHistoryAdapter extends RecyclerView.Adapter() { + @Override + public int compare(ConcernInfo lhs, ConcernInfo rhs) { + return String.valueOf(rhs.getTime()).compareTo(String.valueOf(lhs.getTime())); + } + }); final List result = new ArrayList<>(); List> sequences = new ArrayList<>(); diff --git a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java index b550a8526b..af2449494e 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/personal/InstallFragmentAdapter.java @@ -365,12 +365,11 @@ class InstallFragmentAdapter extends RecyclerView.Adapter - + android:layout_height="match_parent" + android:orientation="vertical"> @@ -28,8 +29,8 @@ android:textSize="23sp" android:textColor="@color/title" android:textStyle="bold" - android:layout_marginTop="18sp" - android:layout_marginBottom="10dp" + android:layout_marginTop="13sp" + android:layout_marginBottom="2dp" android:text="光环助手"/> + android:text="V2.40"/> + android:background="#ededed" + android:layout_marginRight="20dp" + android:layout_marginLeft="20dp"/> + android:src="@drawable/about_more_iocn"/> @@ -123,8 +125,9 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choosereceiver.xml b/app/src/main/res/layout/activity_choosereceiver.xml index 14715ec64e..c0789bf41e 100644 --- a/app/src/main/res/layout/activity_choosereceiver.xml +++ b/app/src/main/res/layout/activity_choosereceiver.xml @@ -158,7 +158,7 @@ android:gravity="center" android:layout_alignParentBottom="true" android:textColor="@android:color/white" - android:layout_marginBottom="20dp"/> + android:layout_marginBottom="25dp"/> diff --git a/app/src/main/res/layout/activity_receiver_waiting.xml b/app/src/main/res/layout/activity_receiver_waiting.xml index 5e3df1399e..26286c4cff 100644 --- a/app/src/main/res/layout/activity_receiver_waiting.xml +++ b/app/src/main/res/layout/activity_receiver_waiting.xml @@ -38,6 +38,7 @@ android:textColor="@android:color/white" android:layout_below="@+id/waiting_user_icon" android:gravity="center" + android:visibility="gone" android:layout_marginTop="10dp" /> @@ -89,7 +90,7 @@ android:textColor="@android:color/white" android:visibility="gone" android:layout_alignParentBottom="true" - android:layout_marginBottom="15dp" + android:layout_marginBottom="25dp" android:text="为了避免消耗流量,请关闭你手机的移动网络"/> diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index ca46946238..29db5045d0 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -314,11 +314,11 @@ android:text="关于"/> + android:src="@drawable/about_more_iocn"/> diff --git a/app/src/main/res/layout/activity_share_gh.xml b/app/src/main/res/layout/activity_share_gh.xml index a2f7475924..d186eeb5f7 100644 --- a/app/src/main/res/layout/activity_share_gh.xml +++ b/app/src/main/res/layout/activity_share_gh.xml @@ -51,6 +51,7 @@ android:textColor="@android:color/white" android:background="@drawable/game_item_btn_download_style" android:layout_marginTop="20dp" + android:textSize="16sp" android:layout_above="@+id/file_receiver_btn"/> @@ -75,6 +76,7 @@ android:layout_width="23dp" android:layout_height="17dp" android:layout_marginRight="5dp" + android:layout_marginLeft="-3dp" android:visibility="gone" android:src="@drawable/kc_checkbox_select"/> diff --git a/app/src/main/res/layout/concern_item.xml b/app/src/main/res/layout/concern_item.xml index 976354fce0..b80888af56 100644 --- a/app/src/main/res/layout/concern_item.xml +++ b/app/src/main/res/layout/concern_item.xml @@ -11,7 +11,7 @@ + android:layout_height="70dp"> + android:layout_alignParentBottom="true" + android:paddingLeft="40dp" + android:paddingBottom="20dp"> - - + + @@ -259,18 +271,6 @@ android:layout_marginTop="10dp" android:layout_marginRight="10dp" android:src="@drawable/kuaichuan_dialog_close_icon"/> - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/kc_game_select_item.xml b/app/src/main/res/layout/kc_game_select_item.xml index 7e97aa76d0..ff2bb374bd 100644 --- a/app/src/main/res/layout/kc_game_select_item.xml +++ b/app/src/main/res/layout/kc_game_select_item.xml @@ -148,7 +148,6 @@ android:id="@+id/select_game_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="14sp" style="@style/KcCheckboxStyle"/>