diff --git a/app/src/main/java/com/gh/common/util/BitmapUtils.java b/app/src/main/java/com/gh/common/util/BitmapUtils.java index e44035d8b8..16fad3821f 100644 --- a/app/src/main/java/com/gh/common/util/BitmapUtils.java +++ b/app/src/main/java/com/gh/common/util/BitmapUtils.java @@ -8,6 +8,8 @@ import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android.media.ExifInterface; +import com.lightgame.utils.Utils; + import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -64,7 +66,6 @@ public class BitmapUtils { BitmapFactory.Options options = new BitmapFactory.Options(); Bitmap bitmap = BitmapFactory.decodeFile(filePath, options); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 85, bos); float zoom = (float) Math.sqrt(compressSize / (float) bos.toByteArray().length); @@ -83,8 +84,11 @@ public class BitmapUtils { result = Bitmap.createBitmap(result, 0, 0, result.getWidth(), result.getHeight(), matrix, true); bos.reset(); result.compress(Bitmap.CompressFormat.JPEG, 85, bos); + Utils.log("========11::" + bos.toByteArray().length ); } + Utils.log("========22::" + bos.toByteArray().length ); + File file = new File(newPath); try { BufferedOutputStream fbos = new BufferedOutputStream(new FileOutputStream(file)); @@ -94,6 +98,8 @@ public class BitmapUtils { return false; } + File file1 = new File(newPath); + Utils.log("========zzz::" + file1.length() ); return true; } 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 d5b6478d49..6277297f87 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -283,7 +283,7 @@ public class ShareUtils { Bitmap compressBp = compressBitmap(bitmap); if (mShareType == ShareType.askNormal || mShareType == ShareType.askInvite) { msg.thumbData = Util.bmpToByteArray(compressBp, true); - } else { + } else { Bitmap resultBp = addBackGround(compressBp); msg.thumbData = Util.bmpToByteArray(resultBp, true); } @@ -300,8 +300,8 @@ public class ShareUtils { //压缩图片 public static Bitmap compressBitmap(Bitmap bitmap) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 85, bos); - float zoom = (float) Math.sqrt(8 * 1024 / (float) bos.toByteArray().length); + bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos); + float zoom = (float) Math.sqrt(9 * 1024 / (float) bos.toByteArray().length); Matrix matrix = new Matrix(); matrix.setScale(zoom, zoom); @@ -309,14 +309,14 @@ public class ShareUtils { Bitmap result = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); bos.reset(); - result.compress(Bitmap.CompressFormat.JPEG, 85, bos); + result.compress(Bitmap.CompressFormat.JPEG, 100, bos); - while (bos.toByteArray().length > 8 * 1024) { + while (bos.toByteArray().length > 9 * 1024) { System.out.println(bos.toByteArray().length); matrix.setScale(0.9f, 0.9f); result = Bitmap.createBitmap(result, 0, 0, result.getWidth(), result.getHeight(), matrix, true); bos.reset(); - result.compress(Bitmap.CompressFormat.JPEG, 85, bos); + result.compress(Bitmap.CompressFormat.JPEG, 100, bos); } return result; diff --git a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.java b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.java index c806194197..5a57910c94 100644 --- a/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.java +++ b/app/src/main/java/com/gh/gamecenter/discover/DiscoverFragment.java @@ -1,9 +1,8 @@ package com.gh.gamecenter.discover; import android.content.Intent; -import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.PreferenceManager; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import android.widget.ImageView; @@ -11,33 +10,33 @@ import android.widget.RelativeLayout; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.fragment.BaseFragment; +import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.ImageUtils; import com.gh.gamecenter.CleanApkActivity; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.LibaoActivity; import com.gh.gamecenter.NormalActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ConcernEntity; -import com.gh.gamecenter.eventbus.EBConcernChanged; +import com.gh.gamecenter.db.GameTrendsDao; +import com.gh.gamecenter.db.info.GameTrendsInfo; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.info.ConcernFragment; import com.gh.gamecenter.info.InfoWrapperFragment; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; +import com.halo.assistant.HaloApp; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import java.util.List; import butterknife.BindView; import butterknife.OnClick; +import rx.Observable; +import rx.Observer; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; import static com.gh.gamecenter.personal.PersonalFragment.LOGOUT_TAG; /** @@ -73,14 +72,10 @@ public class DiscoverFragment extends BaseFragment { @BindView(R.id.discover_game_unread_icon) SimpleDraweeView mDiscoverGameUnreadIcon; - public final static String DISCOVER_UNREAD_TAG = "DISCOVER_UNREAD_TAG"; - public final static String DISCOVER_READ_OVER = "DISCOVER_READ_OVER"; + private GameTrendsDao mGameTrendsDao; - private ConcernEntity mConcernEntity; - -// private GameTrendsDao mGameTrendsDao; - - private SharedPreferences mSP; + public static final String SHOW_DISCOVERY_DOT = "show_discovery_dot"; + public static final String HIDE_DISCOVERY_DOT = "hide_discovery_dot"; @Override protected int getLayoutId() { @@ -90,19 +85,26 @@ public class DiscoverFragment extends BaseFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); -// mGameTrendsDao = new GameTrendsDao(getContext()); - mSP = PreferenceManager.getDefaultSharedPreferences(getContext()); + mGameTrendsDao = new GameTrendsDao(getContext()); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + if (!CheckLoginUtils.isLogin()) { + mDiscoverGameUnread.setVisibility(View.GONE); + } } @OnClick({R.id.discover_game_trends, R.id.discover_info, R.id.discover_libao, R.id.discover_kuaichuan, R.id.discover_apk_cleaner}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.discover_game_trends: + // TODO 其实把 removeDot 操作放到里面请求到数据以后会更合理准确 if (mDiscoverGameUnread.getVisibility() == View.VISIBLE) { mDiscoverGameUnread.setVisibility(View.GONE); - EventBus.getDefault().post(new EBReuse(DISCOVER_READ_OVER)); - mSP.edit().putString(UserManager.getInstance().getUserId(), mConcernEntity.getId()).apply(); -// mGameTrendsDao.add(new GameTrendsInfo(UserManager.getInstance().getUserId(), mConcernEntity.getId())); + EventBus.getDefault().post(new EBReuse(HIDE_DISCOVERY_DOT)); + removeDot(); } NormalActivity.startFragment(getContext(), ConcernFragment.class); break; @@ -122,44 +124,49 @@ public class DiscoverFragment extends BaseFragment { } } - private void getConcernData() { - RetrofitManager.getInstance(getContext()).getApi() - .getZiXunConcern(0) + private void showDot() { + Observable.create((Observable.OnSubscribe) + subscriber -> subscriber.onNext(mGameTrendsDao.findGameTrendsInfo(UserManager.getInstance().getUserId()))) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { + .subscribe(new Observer() { @Override - public void onResponse(List response) { - super.onResponse(response); - if (response.size() > 0) { - mConcernEntity = response.get(0); - String unreadId = mSP.getString(UserManager.getInstance().getUserId(), null); - if (unreadId == null || !unreadId.equals(mConcernEntity.getId())) { - ImageUtils.Companion.display(mDiscoverGameUnreadIcon, mConcernEntity.getGameIcon()); - mDiscoverGameUnread.setVisibility(View.VISIBLE); - EventBus.getDefault().post(new EBReuse(DISCOVER_UNREAD_TAG)); - } - } + public void onCompleted() { + } + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(GameTrendsInfo gameTrendsInfo) { + ImageUtils.Companion.display(mDiscoverGameUnreadIcon, gameTrendsInfo.getIconUrl()); + mDiscoverGameUnread.setVisibility(View.VISIBLE); + } }); } + private void removeDot() { + HaloApp.getInstance().getMainExecutor().execute(new Runnable() { + @Override + public void run() { + GameTrendsInfo gameTrendsInfo = mGameTrendsDao.findGameTrendsInfo(UserManager.getInstance().getUserId()); + gameTrendsInfo.setReadPostTime(gameTrendsInfo.getInternetPostTime()); + mGameTrendsDao.add(gameTrendsInfo); + } + }); + } + // 登录事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBReuse reuse) { - if (reuse.getType().equals(LOGIN_TAG)) { // 登入 - getConcernData(); + if (CheckLoginUtils.isLogin() && reuse.getType().equals(SHOW_DISCOVERY_DOT)) { // 登入 + showDot(); } else if (reuse.getType().equals(LOGOUT_TAG)) { mDiscoverGameUnread.setVisibility(View.GONE); - EventBus.getDefault().post(new EBReuse(DISCOVER_READ_OVER)); } } - // 关注事件 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBConcernChanged changed) { - getConcernData(); - } - } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index b7a9ed8aa6..a2a32d30ed 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -14,6 +14,7 @@ import com.gh.gamecenter.db.GameTrendsDao; import com.gh.gamecenter.db.info.GameTrendsInfo; import com.gh.gamecenter.discover.DiscoverFragment; import com.gh.gamecenter.entity.ConcernEntity; +import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -48,8 +49,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { @BindView(R.id.main_iv_message_hint) View mMessageHintIv; - @BindView(R.id.main_iv_discover_hint) - View mDiscoverHint; @BindView(R.id.iv_discovery_hint_dot) protected View mDiscoveryHintIv; @@ -157,7 +156,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { }); } - // TODO 当用户关注新游戏的时候应该即刻调用 getDiscoveryData(true) 来更新数据库的 private void getDiscoveryData(boolean immediately) { if (CheckLoginUtils.isLogin()) { long currentTimeMills = System.currentTimeMillis(); @@ -197,11 +195,11 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { if (mMessageHintIv != null) { mMessageHintIv.setVisibility(View.VISIBLE); } - } else if(DiscoverFragment.SHOW_DISCOVERY_DOT.equals(reuse.getType())) { + } else if (DiscoverFragment.SHOW_DISCOVERY_DOT.equals(reuse.getType())) { if (mDiscoveryHintIv != null) { mDiscoveryHintIv.setVisibility(View.VISIBLE); } - } else if(DiscoverFragment.HIDE_DISCOVERY_DOT.equals(reuse.getType())) { + } else if (DiscoverFragment.HIDE_DISCOVERY_DOT.equals(reuse.getType())) { if (mDiscoveryHintIv != null) { mDiscoveryHintIv.setVisibility(View.GONE); } @@ -215,4 +213,12 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { } } } + + // 关注事件 + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBConcernChanged changed) { + if (mDiscoveryHintIv != null) { + getDiscoveryData(true); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java index 15238076ef..4279eadcc2 100644 --- a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java @@ -1,5 +1,6 @@ package com.gh.gamecenter.info; +import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; @@ -41,6 +42,7 @@ import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.UserDataEntity; import com.gh.gamecenter.entity.UserDataLibaoEntity; +import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.manager.InstallManager; import com.gh.gamecenter.normal.NormalFragment; @@ -426,6 +428,7 @@ public class ConcernFragment extends NormalFragment implements SwipeRefreshLayou mAdapter.setSkipPosition(-1); break; case NEWS_MESSAGE_LIBAO_REQUEST: + if (resultCode != Activity.RESULT_OK) break; UserDataLibaoEntity resultUserLibaoData = data.getParcelableExtra(UserDataLibaoEntity.TAG); ConcernEntity skipEntity = mAdapter.getSkipEntity(); if (skipEntity != null) { // 插入礼包详情返回的礼包数据 @@ -510,18 +513,18 @@ public class ConcernFragment extends NormalFragment implements SwipeRefreshLayou // } // } -// // 关注事件 -// @Subscribe(threadMode = ThreadMode.MAIN) -// public void onEventMainThread(EBConcernChanged changed) { -// emptyLayout.setVisibility(View.GONE); -// refreshLayout.setEnabled(true); -// refreshLayout.setRefreshing(true); -// recyclerView.setVisibility(View.VISIBLE); -// loadingLayout.setVisibility(View.VISIBLE); -// mAdapter = new ConcernAdapter(getContext(), this, this); -// recyclerView.setAdapter(mAdapter); -// mAdapter.addList(0); -// } + // 关注事件 + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBConcernChanged changed) { + emptyLayout.setVisibility(View.GONE); + refreshLayout.setEnabled(true); + refreshLayout.setRefreshing(true); + recyclerView.setVisibility(View.VISIBLE); + loadingLayout.setVisibility(View.VISIBLE); + mAdapter = new ConcernAdapter(getContext(), this, this); + recyclerView.setAdapter(mAdapter); + mAdapter.addList(0); + } @Override public void onRefresh() {