Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c208e7f72d | |||
| 8722d0a65b | |||
| 54f044dfa0 | |||
| b854a6dfef | |||
| badb99da59 | |||
| 30d99dbe54 | |||
| c44c4e8b2d | |||
| 656b2f469b | |||
| 39e17842cc | |||
| 57f7c0bb31 | |||
| 76b03fa68b | |||
| c99d6fb16f | |||
| d29ccc0aca | |||
| bf51be498b | |||
| 6d941975e2 | |||
| 0e075d28a5 | |||
| 4b5e6b574f | |||
| fc79581f8c | |||
| 6176c47e2f | |||
| 9abe0eb158 | |||
| 4d7cedb8a6 | |||
| 2b02fe06ac | |||
| cd5f530fc6 | |||
| b9085c7091 | |||
| 679ee71f89 | |||
| 536f0e038a | |||
| b087e35b30 | |||
| db3df649ce | |||
| bb708277b1 | |||
| c3b694dc6c | |||
| b9ff0b1c88 | |||
| 0e791133dd | |||
| b4f760d69f | |||
| 9bba3c9560 | |||
| bcd61e87d3 | |||
| e8c0e523e6 | |||
| af9e9a87b4 | |||
| 2d1bb6435f | |||
| 5680b8508d | |||
| df0e9197dc | |||
| 79964160ff | |||
| 0d46554b66 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,4 +6,5 @@ local.properties
|
||||
.DS_Store
|
||||
captures/
|
||||
build/
|
||||
release-app/
|
||||
release-app/
|
||||
scripts/apk-channel/
|
||||
@ -62,4 +62,5 @@
|
||||
- 明确 MVVM 中 Repository 及其衍生类的具体实现方式
|
||||
- 将实现细节从 View(Fragment、Activity) 剥离并以 MVVM 结构改造
|
||||
- 将 ListViewModel 所对应的 ListRepository 合并到 ListViewModel 中
|
||||
- 依照光环助手界面功能以大模块 - 小模块的方式去修改包结构,包内文件建议以包名摘要作为前缀
|
||||
- 依照光环助手界面功能以大模块 - 小模块的方式去修改包结构,包内文件建议以包名摘要作为前缀
|
||||
- 使用 RxJava 的 Debounce 和 Map 操作优化搜索触发机制 参考资料:[1](https://proandroiddev.com/building-an-autocompleting-edittext-using-rxjava-f69c5c3f5a40),[2](https://medium.com/@kurtisnusbaum/rxandroid-basics-part-2-6e877af352)
|
||||
@ -34,8 +34,8 @@ public class DataUtils {
|
||||
*/
|
||||
public static void init(final Application context, String channel) {
|
||||
|
||||
// 神烦这些SDK上报,debug就不开了
|
||||
if (!DEBUG) return;
|
||||
// // 神烦这些SDK上报,debug就不开了
|
||||
// if (DEBUG) return;
|
||||
|
||||
//TalkingData
|
||||
try {
|
||||
|
||||
@ -32,7 +32,6 @@ import java.util.List;
|
||||
import butterknife.ButterKnife;
|
||||
import pub.devrel.easypermissions.EasyPermissions;
|
||||
|
||||
import static com.gh.common.util.EntranceUtils.KEY_DATA;
|
||||
import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE;
|
||||
|
||||
public abstract class BaseActivity extends BaseToolBarActivity implements EasyPermissions.PermissionCallbacks {
|
||||
@ -78,9 +77,6 @@ public abstract class BaseActivity extends BaseToolBarActivity implements EasyPe
|
||||
EventBus.getDefault().register(this);
|
||||
ButterKnife.bind(this);
|
||||
mEntrance = getIntent().getStringExtra(KEY_ENTRANCE);
|
||||
if (getIntent().getBundleExtra(KEY_DATA) != null) {
|
||||
mEntrance = getIntent().getBundleExtra(KEY_DATA).getString(KEY_ENTRANCE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -127,7 +123,7 @@ public abstract class BaseActivity extends BaseToolBarActivity implements EasyPe
|
||||
@Override
|
||||
public void onConfirm() {
|
||||
if (FileUtils.isEmptyFile(showDialog.getPath())) {
|
||||
toast(getString(R.string.install_failure_hint));
|
||||
toast(R.string.install_failure_hint);
|
||||
} else {
|
||||
startActivity(PackageUtils.getUninstallIntent(BaseActivity.this, showDialog.getPath()));
|
||||
}
|
||||
|
||||
@ -37,7 +37,11 @@ public abstract class BaseRecyclerViewHolder<T> extends RecyclerView.ViewHolder
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
mListClickListener.onListClick(view, getAdapterPosition(), mData);
|
||||
try {
|
||||
mListClickListener.onListClick(view, getAdapterPosition(), mData);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.gh.base.BaseToolBarActivity;
|
||||
import com.gh.base.OnListClickListener;
|
||||
import com.gh.base.OnRequestCallBackListener;
|
||||
import com.gh.gamecenter.eventbus.EBMiPush;
|
||||
@ -34,7 +33,6 @@ import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
import static com.gh.common.util.EntranceUtils.KEY_DATA;
|
||||
import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE;
|
||||
|
||||
/**
|
||||
@ -87,15 +85,6 @@ public abstract class BaseFragment<T> extends Fragment implements OnRequestCallB
|
||||
handleOnClick(v);
|
||||
}
|
||||
|
||||
protected void setNavigationTitle(@StringRes int res) {
|
||||
setNavigationTitle(getString(res));
|
||||
}
|
||||
|
||||
protected void setNavigationTitle(String title) {
|
||||
if (getActivity() instanceof BaseToolBarActivity) {
|
||||
((BaseToolBarActivity) getActivity()).setNavigationTitle(title);
|
||||
}
|
||||
}
|
||||
|
||||
protected void initView(View view) {
|
||||
}
|
||||
@ -114,9 +103,6 @@ public abstract class BaseFragment<T> extends Fragment implements OnRequestCallB
|
||||
super.onCreate(savedInstanceState);
|
||||
final Intent intent = getActivity().getIntent();
|
||||
mEntrance = intent.getStringExtra(KEY_ENTRANCE);
|
||||
if (intent.getBundleExtra(KEY_DATA) != null) {
|
||||
mEntrance = intent.getBundleExtra(KEY_DATA).getString(KEY_ENTRANCE);
|
||||
}
|
||||
|
||||
isEverPause = false;
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
@ -68,11 +68,6 @@ public abstract class BaseFragment_ViewPager extends NormalFragment implements D
|
||||
mViewPager = (ViewPager) view.findViewById(getViewPagerId());
|
||||
mViewPager.setOffscreenPageLimit(mFragmentsList.size());
|
||||
mViewPager.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
if (mCheckedIndex < mFragmentsList.size()) {
|
||||
mViewPager.setCurrentItem(mCheckedIndex, false);
|
||||
}
|
||||
@ -117,10 +112,15 @@ public abstract class BaseFragment_ViewPager extends NormalFragment implements D
|
||||
}
|
||||
List<Fragment> fragments = getChildFragmentManager().getFragments();
|
||||
if (fragments != null) {
|
||||
Fragment curFragment = fragments.get(mViewPager.getCurrentItem());
|
||||
curFragment.onActivityResult(requestCode, resultCode, data);
|
||||
for (Fragment fragment : fragments) {
|
||||
fragment.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getCurrentItem() {
|
||||
return mViewPager != null ? mViewPager.getCurrentItem() : 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package com.gh.common.util;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.gh.gamecenter.R;
|
||||
import com.lightgame.utils.Utils;
|
||||
|
||||
import org.json.JSONObject;
|
||||
@ -37,7 +36,7 @@ public class AskErrorResponseUtils {
|
||||
Utils.toast(context, "用户的评论被墙(黑名单)");
|
||||
break;
|
||||
default:
|
||||
Utils.toast(context, context.getString(R.string.request_failure_normal_hint));
|
||||
Utils.toast(context, "网络错误");
|
||||
break;
|
||||
}
|
||||
} else if (code == 403) {
|
||||
@ -88,7 +87,7 @@ public class AskErrorResponseUtils {
|
||||
Utils.toast(context, "已经关注过了");
|
||||
break;
|
||||
default:
|
||||
Utils.toast(context, context.getString(R.string.request_failure_normal_hint));
|
||||
Utils.toast(context, "网络错误");
|
||||
break;
|
||||
}
|
||||
} else if (code == 401 && errorCode == 404001) {
|
||||
|
||||
@ -61,9 +61,10 @@ public class DownloadItemUtils {
|
||||
gameEntity.setEntryMap(entryMap);
|
||||
}
|
||||
entryMap.put(platform, downloadEntity);
|
||||
if (!DownloadStatus.pause.equals(DownloadManager.getInstance(context).getStatus(downloadEntity.getUrl()))) {
|
||||
adapter.notifyItemChanged(index);
|
||||
}
|
||||
adapter.notifyItemChanged(index);
|
||||
// if (!DownloadStatus.pause.equals(DownloadManager.getInstance(context).getStatus(downloadEntity.getUrl()))) {
|
||||
// adapter.notifyItemChanged(index);
|
||||
// }
|
||||
} else {
|
||||
if (!queue.contains(platform)) {
|
||||
queue.offer(platform);
|
||||
@ -266,6 +267,7 @@ public class DownloadItemUtils {
|
||||
} else if (status.equals(DownloadStatus.pause)
|
||||
|| status.equals(DownloadStatus.timeout)
|
||||
|| status.equals(DownloadStatus.neterror)) {
|
||||
Utils.log("=============AAAA::" + status);
|
||||
holder.gameProgressbar.setProgress((int) (downloadEntity.getPercent() * 10));
|
||||
if (isShowPlatform && platform != null) {
|
||||
holder.gameDownloadSpeed.setText(String.format("%s - 暂停", platform));
|
||||
@ -439,7 +441,7 @@ public class DownloadItemUtils {
|
||||
if (downloadEntity != null) {
|
||||
final String path = downloadEntity.getPath();
|
||||
if (FileUtils.isEmptyFile(path)) {
|
||||
Utils.toast(context, context.getString(R.string.install_failure_hint));
|
||||
Utils.toast(context, R.string.install_failure_hint);
|
||||
DownloadManager.getInstance(context).cancel(downloadEntity.getUrl());
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
|
||||
@ -76,12 +76,12 @@ public class EntranceUtils {
|
||||
if (!TextUtils.isEmpty(to)) {
|
||||
Class<?> clazz = ClassUtils.forName(to);
|
||||
if (clazz != null) {
|
||||
if (NormalFragment.class.isAssignableFrom(clazz)) { // todo
|
||||
if (NormalFragment.class.isAssignableFrom(clazz)) { // 兼容NormalFragment
|
||||
NormalActivity.startFragment(context, (Class<? extends NormalFragment>) clazz, bundle);
|
||||
} else {
|
||||
Intent intent1 = new Intent(context, clazz);
|
||||
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent1.putExtra(KEY_DATA, bundle);
|
||||
intent1.putExtras(bundle);
|
||||
context.startActivity(intent1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -173,7 +173,9 @@ public class GetLoginDataUtils {
|
||||
}
|
||||
|
||||
public void WCLofinCallBack(JSONObject content) {
|
||||
mLoginListener.OnLoginData(content, LoginTag.wechat);
|
||||
if (mLoginListener != null) {
|
||||
mLoginListener.OnLoginData(content, LoginTag.wechat);
|
||||
}
|
||||
}
|
||||
|
||||
public void onWeiboCallback(int requestCode, int resultCode, Intent data) {
|
||||
|
||||
@ -7,6 +7,7 @@ import android.graphics.drawable.ColorDrawable
|
||||
import android.net.Uri
|
||||
import android.support.annotation.DrawableRes
|
||||
import android.support.v4.content.ContextCompat
|
||||
import android.text.TextUtils
|
||||
import com.facebook.common.executors.CallerThreadExecutor
|
||||
import com.facebook.drawee.backends.pipeline.Fresco
|
||||
import com.facebook.drawee.controller.BaseControllerListener
|
||||
@ -22,6 +23,7 @@ import com.gh.common.constant.Config
|
||||
import com.gh.gamecenter.R
|
||||
import com.gh.gamecenter.manager.UserManager
|
||||
import com.gh.gamecenter.retrofit.Response
|
||||
import com.lightgame.config.CommonDebug
|
||||
import com.lightgame.download.FileUtils
|
||||
import com.lightgame.utils.Utils
|
||||
import org.json.JSONObject
|
||||
@ -36,28 +38,29 @@ import java.net.HttpURLConnection
|
||||
class ImageUtils private constructor() {
|
||||
|
||||
// 自适应图片宽高
|
||||
fun display(simpleDraweeView: SimpleDraweeView, url: String?, width: Int) {
|
||||
fun display(simpleDraweeView: SimpleDraweeView?, url: String?, width: Int) {
|
||||
val listener = object : BaseControllerListener<ImageInfo>() {
|
||||
override fun onFinalImageSet(id: String?, imageInfo: ImageInfo?, animatable: Animatable?) {
|
||||
if (imageInfo == null) {
|
||||
return
|
||||
}
|
||||
val layoutParams = simpleDraweeView.layoutParams
|
||||
val layoutParams = simpleDraweeView?.layoutParams
|
||||
val scale = imageInfo.height.toFloat() / imageInfo.width.toFloat()
|
||||
layoutParams.height = (width * scale).toInt()
|
||||
simpleDraweeView.layoutParams = layoutParams
|
||||
layoutParams?.height = (width * scale).toInt()
|
||||
simpleDraweeView?.layoutParams = layoutParams
|
||||
}
|
||||
}
|
||||
simpleDraweeView.controller = Fresco.newDraweeControllerBuilder()
|
||||
simpleDraweeView?.controller = Fresco.newDraweeControllerBuilder()
|
||||
.setUri(url)
|
||||
.setControllerListener(listener)
|
||||
.build()
|
||||
}
|
||||
|
||||
// 设置缩放类型,设置按压状态下的叠加图
|
||||
fun display(resources: Resources, simpleDraweeView: SimpleDraweeView,
|
||||
scaleType: ScalingUtils.ScaleType, url: String?) {
|
||||
val context = simpleDraweeView.context
|
||||
fun display(resources: Resources?, simpleDraweeView: SimpleDraweeView?,
|
||||
scaleType: ScalingUtils.ScaleType?, url: String?) {
|
||||
if (simpleDraweeView == null) return
|
||||
val context = simpleDraweeView.context ?: return
|
||||
simpleDraweeView.hierarchy = GenericDraweeHierarchyBuilder(resources)
|
||||
.setFadeDuration(500)
|
||||
.setPressedStateOverlay(ColorDrawable(ContextCompat.getColor(context, R.color.pressed_bg)))
|
||||
@ -70,8 +73,9 @@ class ImageUtils private constructor() {
|
||||
}
|
||||
|
||||
// 设置占位符
|
||||
fun display(resources: Resources, simpleDraweeView: SimpleDraweeView, url: String?, placeholderImage: Int) {
|
||||
val context = simpleDraweeView.context
|
||||
fun display(resources: Resources?, simpleDraweeView: SimpleDraweeView?, url: String?, placeholderImage: Int) {
|
||||
if (simpleDraweeView == null) return
|
||||
val context = simpleDraweeView.context ?: return
|
||||
simpleDraweeView.hierarchy = GenericDraweeHierarchyBuilder(resources)
|
||||
.setFadeDuration(500)
|
||||
.setPressedStateOverlay(ColorDrawable(ContextCompat.getColor(context, R.color.pressed_bg)))
|
||||
@ -83,9 +87,9 @@ class ImageUtils private constructor() {
|
||||
}
|
||||
|
||||
// 图片下载监听和设置低高分辨率图片
|
||||
fun display(simpleDraweeView: SimpleDraweeView, url: String?, lowUrl: String?,
|
||||
fun display(simpleDraweeView: SimpleDraweeView?, url: String?, lowUrl: String?,
|
||||
listener: ControllerListener<in ImageInfo>) {
|
||||
simpleDraweeView.controller = Fresco.newDraweeControllerBuilder()
|
||||
simpleDraweeView?.controller = Fresco.newDraweeControllerBuilder()
|
||||
.setImageRequest(ImageRequest.fromUri(url))
|
||||
.setControllerListener(listener)
|
||||
.setLowResImageRequest(ImageRequest.fromUri(lowUrl)) // 低分辨率图片
|
||||
@ -93,7 +97,7 @@ class ImageUtils private constructor() {
|
||||
}
|
||||
|
||||
// 获取bitmap
|
||||
fun display(context: Context, url: String?, dataSubscriber: BaseBitmapDataSubscriber) {
|
||||
fun display(context: Context?, url: String?, dataSubscriber: BaseBitmapDataSubscriber) {
|
||||
val imageRequest = ImageRequestBuilder
|
||||
.newBuilderWithSource(Uri.parse(url))
|
||||
.setProgressiveRenderingEnabled(true)
|
||||
@ -169,7 +173,8 @@ class ImageUtils private constructor() {
|
||||
})
|
||||
}
|
||||
|
||||
fun postImage(context: Context, picturePath: String, listener: OnPostImageListener) {
|
||||
fun postImage(context: Context?, picturePath: String?, listener: OnPostImageListener) {
|
||||
if (context == null || TextUtils.isEmpty(picturePath)) return
|
||||
Observable.create(Observable.OnSubscribe<JSONObject> { subscriber ->
|
||||
val path = context.getCacheDir().path + File.separator + System.currentTimeMillis() + ".jpg"
|
||||
if (BitmapUtils.savePicture(path, picturePath, 200000)) {
|
||||
@ -181,6 +186,9 @@ class ImageUtils private constructor() {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : Response<JSONObject>() {
|
||||
override fun onResponse(response: JSONObject?) {
|
||||
if (CommonDebug.IS_DEBUG) {
|
||||
Utils.log("postImage:onResponse=>" + response.toString())
|
||||
}
|
||||
listener.postSuccess(response)
|
||||
}
|
||||
|
||||
@ -193,7 +201,6 @@ class ImageUtils private constructor() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
interface OnPostImageListener {
|
||||
fun postSuccess(response: JSONObject?)
|
||||
|
||||
|
||||
@ -271,6 +271,12 @@ public class LoginUtils {
|
||||
case 403001:
|
||||
Utils.toast(context, "设备异常,获取验证码失败,请更换登陆方式或明天再试");
|
||||
break;
|
||||
case 403202:
|
||||
Utils.toast(context, "403202");
|
||||
break;
|
||||
case 400213:
|
||||
Utils.toast(context, "昵称违规");
|
||||
break;
|
||||
default:
|
||||
Utils.toast(context, "未知错误");
|
||||
break;
|
||||
|
||||
@ -86,7 +86,7 @@ public class MessageShareUtils {
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_cancel_hint));
|
||||
Utils.toast(mContext, R.string.share_cancel_hint);
|
||||
}
|
||||
};
|
||||
// 适配快传成绩单分享
|
||||
|
||||
@ -44,7 +44,7 @@ public class PostCommentUtils {
|
||||
listener.postSuccess(response);
|
||||
}
|
||||
} else {
|
||||
Utils.toast(context, context.getString(R.string.post_failure_hint));
|
||||
Utils.toast(context, R.string.post_failure_hint);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -101,17 +101,17 @@ public class ShareUtils {
|
||||
public IUiListener QqShareListener = new IUiListener() {
|
||||
@Override
|
||||
public void onComplete(Object o) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_success_hint));
|
||||
Utils.toast(mContext, R.string.share_success_hint);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(UiError uiError) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_fail_hint));
|
||||
Utils.toast(mContext, R.string.share_fail_hint);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_cancel_hint));
|
||||
Utils.toast(mContext, R.string.share_cancel_hint);
|
||||
}
|
||||
};
|
||||
|
||||
@ -215,7 +215,7 @@ public class ShareUtils {
|
||||
|
||||
//QQ分享
|
||||
private void qqShare() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_skip));
|
||||
Utils.toast(mContext, R.string.share_skip);
|
||||
Bundle params = new Bundle();
|
||||
|
||||
switch (mShareType) {
|
||||
@ -243,7 +243,7 @@ public class ShareUtils {
|
||||
|
||||
//微信好友分享
|
||||
private void wechatShare() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_skip));
|
||||
Utils.toast(mContext, R.string.share_skip);
|
||||
WXWebpageObject webpage = new WXWebpageObject();
|
||||
WXMediaMessage msg = new WXMediaMessage(webpage);
|
||||
webpage.webpageUrl = shareUrl;
|
||||
@ -345,7 +345,7 @@ public class ShareUtils {
|
||||
|
||||
//QQ空间分享
|
||||
private void qZoneShare() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_skip));
|
||||
Utils.toast(mContext, R.string.share_skip);
|
||||
Bundle params = new Bundle();
|
||||
|
||||
switch (mShareType) {
|
||||
@ -377,7 +377,7 @@ public class ShareUtils {
|
||||
|
||||
//微信朋友圈分享
|
||||
private void wechatMomentsShare() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.share_skip));
|
||||
Utils.toast(mContext, R.string.share_skip);
|
||||
WXWebpageObject webpage = new WXWebpageObject();
|
||||
WXMediaMessage msg = new WXMediaMessage(webpage);
|
||||
|
||||
|
||||
@ -207,11 +207,7 @@ public class TabIndicatorView extends View implements TabLayout.OnTabSelectedLis
|
||||
+ " ViewPagerCount=>" + mViewPager.getAdapter().getCount());
|
||||
}
|
||||
if (tab.getPosition() != mViewPager.getCurrentItem())
|
||||
try {
|
||||
mViewPager.setCurrentItem(tab.getPosition());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
mViewPager.setCurrentItem(tab.getPosition());
|
||||
} else {
|
||||
generatePath(tab.getPosition(), 0);
|
||||
invalidate();
|
||||
|
||||
@ -128,12 +128,13 @@ public class DownloadManager implements DownloadStatusListener {
|
||||
String url = (String) msg.obj;
|
||||
switch (msg.what) {
|
||||
case DownloadConfig.CONTINUE_DOWNLOAD_TASK:
|
||||
if (System.currentTimeMillis() - lastTimeMap.get(url) >= 1000) {
|
||||
resume(url);
|
||||
if (lastTimeMap.get(url) != null && System.currentTimeMillis() - lastTimeMap.get(url) >= 1000) {
|
||||
DownloadEntity downloadEntity = getDownloadEntityByUrl(url);
|
||||
if (downloadEntity != null) add(downloadEntity);
|
||||
}
|
||||
break;
|
||||
case DownloadConfig.PAUSE_DOWNLOAD_TASK:
|
||||
if (System.currentTimeMillis() - lastTimeMap.get(url) >= 1000) {
|
||||
if (lastTimeMap.get(url) != null && System.currentTimeMillis() - lastTimeMap.get(url) >= 1000) {
|
||||
pause(url);
|
||||
}
|
||||
break;
|
||||
@ -412,32 +413,6 @@ public class DownloadManager implements DownloadStatusListener {
|
||||
mHandler.sendMessageDelayed(msg, delayMillis);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据url恢复下载 //TODO 这个可以删除的,全都在add判断,add的时候不需要关注任务真实状态
|
||||
*
|
||||
* @param url
|
||||
*/
|
||||
@Deprecated
|
||||
void resume(String url) {
|
||||
DownloadEntity entry = getDownloadEntityByUrl(url);
|
||||
|
||||
// 暂停任务后,把文件删除,然后点继续,文件不存在,需要重新加入下载队列进行下载
|
||||
if (checkDownloadEntryRecordValidate(url)) {
|
||||
Utils.toast(mContext, "文件不存在!已重新加入下载队列");
|
||||
add(entry);
|
||||
} else {
|
||||
if (entry != null) {
|
||||
if (isFileCompleted(url)) {
|
||||
entry.setStatus(DownloadStatus.done);
|
||||
DataChanger.INSTANCE.notifyDataChanged(entry);
|
||||
} else if (!isTaskDownloading(url)) {
|
||||
mContext.startService(getIntent(entry, DownloadStatus.resume));
|
||||
}
|
||||
}
|
||||
}
|
||||
Utils.log(DownloadManager.class.getSimpleName(), "resume");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据url取消下载,并删除已下载的文件
|
||||
*
|
||||
|
||||
@ -593,7 +593,7 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick
|
||||
// 连接失败-动画
|
||||
private void connFailedAnimView() {
|
||||
getSupportActionBar().show();
|
||||
Utils.toast(ChooseReceiverActivity.this, "连接失败");
|
||||
toast("连接失败");
|
||||
if (mScaleAnimation != null) {
|
||||
mScaleAnimation.cancel();
|
||||
}
|
||||
|
||||
@ -23,11 +23,6 @@ public class CommonActivity extends BaseToolBarActivity implements ToolbarContro
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNavigationTitle(CharSequence res) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setToolbarMenu(int res) {
|
||||
|
||||
|
||||
@ -21,6 +21,10 @@ public class DownloadManagerActivity extends NormalActivity {
|
||||
|
||||
public static final String TAG = "DownloadManagerActivity";
|
||||
|
||||
@Override
|
||||
protected Intent provideNormalIntent() {
|
||||
return getIntent(this, DownloadFragment.class);
|
||||
}
|
||||
|
||||
public static Intent getDownloadMangerIntent(Context context, String url, String entrance) {
|
||||
// Intent intent = new Intent(context, DownloadManagerActivity.class);
|
||||
|
||||
@ -471,6 +471,7 @@ public class FileSenderActivity extends BaseActivity implements FileSenderAdapte
|
||||
|
||||
@Override
|
||||
public void OnCancelPosition(int position) {
|
||||
if (position >= mFileSenderList.size()) return;
|
||||
FileSender fileSender = mFileSenderList.get(position);
|
||||
Utils.log("发送方准备取消发送" + position);
|
||||
if (fileSender != null && fileSender.isRunning()) {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.gh.gamecenter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.gh.common.util.EntranceUtils;
|
||||
@ -13,6 +14,12 @@ import com.gh.gamecenter.gamedetail.GameDetailFragment;
|
||||
*/
|
||||
public class GameDetailActivity extends NormalActivity {
|
||||
|
||||
|
||||
@Override
|
||||
protected Intent provideNormalIntent() {
|
||||
return getIntent(this, GameDetailFragment.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动游戏详情页面
|
||||
*/
|
||||
|
||||
@ -59,7 +59,6 @@ import com.gh.gamecenter.manager.GameManager;
|
||||
import com.gh.gamecenter.manager.InstallManager;
|
||||
import com.gh.gamecenter.manager.PackageManager;
|
||||
import com.gh.gamecenter.manager.UpdateManager;
|
||||
import com.gh.gamecenter.manager.UserManager;
|
||||
import com.gh.gamecenter.normal.NormalFragment;
|
||||
import com.gh.gamecenter.retrofit.ObservableUtil;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
@ -104,7 +103,6 @@ import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.functions.Action1;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
import static com.gh.common.util.EntranceUtils.KEY_DATA;
|
||||
import static com.gh.common.util.EntranceUtils.KEY_TO;
|
||||
import static com.gh.gamecenter.fragment.MainWrapperFragment.INDEX_PERSONAL;
|
||||
|
||||
@ -115,6 +113,9 @@ public class MainActivity extends BaseActivity {
|
||||
|
||||
public final static String EB_MAINACTIVITY_TAG = "MainActivity";
|
||||
public final static String EB_SKIP_GAMEFRAGMENT = "GameFragment";
|
||||
|
||||
private MainWrapperFragment mMainWrapperFragment;
|
||||
|
||||
private SharedPreferences sp;
|
||||
private InstallManager mInstallManager;
|
||||
|
||||
@ -127,7 +128,7 @@ public class MainActivity extends BaseActivity {
|
||||
public void run() {
|
||||
if (getIntent() != null && getIntent().getExtras() != null && !isSkipped) {
|
||||
isSkipped = true;
|
||||
Bundle bundle = getIntent().getBundleExtra(KEY_DATA);
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
if (bundle != null) {
|
||||
String to = bundle.getString(KEY_TO);
|
||||
if (!TextUtils.isEmpty(to)) {
|
||||
@ -147,7 +148,7 @@ public class MainActivity extends BaseActivity {
|
||||
NormalActivity.startFragment(MainActivity.this, (Class<? extends NormalFragment>) clazz, bundle);
|
||||
} else {
|
||||
Intent skipIntent = new Intent(MainActivity.this, clazz);
|
||||
skipIntent.putExtra(KEY_DATA, bundle);
|
||||
skipIntent.putExtras(bundle);
|
||||
startActivity(skipIntent);
|
||||
}
|
||||
}
|
||||
@ -357,6 +358,9 @@ public class MainActivity extends BaseActivity {
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putBoolean("isSkipped", isSkipped);
|
||||
if (mMainWrapperFragment != null) {
|
||||
outState.putInt(BaseFragment_ViewPager.ARGS_INDEX, mMainWrapperFragment.getCurrentItem());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -646,7 +650,14 @@ public class MainActivity extends BaseActivity {
|
||||
isSkipped = savedInstanceState.getBoolean("isSkipped");
|
||||
}
|
||||
|
||||
replaceFragment(new MainWrapperFragment());
|
||||
mMainWrapperFragment = new MainWrapperFragment();
|
||||
if (savedInstanceState != null) {
|
||||
mMainWrapperFragment.setArguments(savedInstanceState);
|
||||
} else if (getIntent() != null) {
|
||||
Bundle extras = getIntent().getExtras();
|
||||
mMainWrapperFragment.setArguments(extras);
|
||||
}
|
||||
replaceFragment(mMainWrapperFragment);
|
||||
|
||||
mInstallManager = new InstallManager(getApplicationContext());
|
||||
|
||||
@ -673,7 +684,7 @@ public class MainActivity extends BaseActivity {
|
||||
getSuggestionType();
|
||||
|
||||
final String message = Config.getExceptionMsg(this);
|
||||
if (!TextUtils.isEmpty(UserManager.getInstance().getToken()) && !TextUtils.isEmpty(message)) {
|
||||
if (!TextUtils.isEmpty(message)) {
|
||||
Config.setExceptionMsg(this, null);
|
||||
AppUncaughtHandler.reportException(this, new Throwable(message));
|
||||
DialogUtils.showWarningDialog(this, "发生闪退", "光环助手刚刚发生了闪退,马上反馈以帮助我们更好地修复问题?(只需简单描述你刚才的操作)"
|
||||
|
||||
@ -8,14 +8,13 @@ import com.gh.gamecenter.entity.CommentEntity;
|
||||
import com.gh.gamecenter.entity.ConcernEntity;
|
||||
import com.gh.gamecenter.message.MessageDetailFragment;
|
||||
import com.halo.assistant.HaloApp;
|
||||
import com.halo.assistant.ui.IntentFactory;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/11/8.
|
||||
* 消息详情界面(评论详情)
|
||||
*/
|
||||
@Deprecated
|
||||
public class MessageDetailActivity extends CommonActivity {
|
||||
public class MessageDetailActivity extends NormalActivity {
|
||||
|
||||
// 评论回复
|
||||
public static Intent getMessageDetailIntent(Context context, CommentEntity entity, String newsId) {
|
||||
@ -25,10 +24,7 @@ public class MessageDetailActivity extends CommonActivity {
|
||||
intent.putExtra("openSoftInput", true);
|
||||
intent.putExtra(CommentEntity.TAG, entity);
|
||||
|
||||
return new IntentFactory.Builder(context)
|
||||
.setArgs(intent.getExtras())
|
||||
.setActivity(MessageDetailActivity.class)
|
||||
.setFragment(MessageDetailFragment.class).build();
|
||||
return getIntent(context, MessageDetailFragment.class, intent.getExtras());
|
||||
}
|
||||
|
||||
public static Intent getIntentByEntity(Context context, ConcernEntity concernEntity, String entrance) {
|
||||
@ -37,10 +33,7 @@ public class MessageDetailActivity extends CommonActivity {
|
||||
HaloApp.put(ConcernEntity.TAG, concernEntity);
|
||||
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
|
||||
// return intent;
|
||||
return new IntentFactory.Builder(context)
|
||||
.setArgs(intent.getExtras())
|
||||
.setActivity(MessageDetailActivity.class)
|
||||
.setFragment(MessageDetailFragment.class).build();
|
||||
return getIntent(context, MessageDetailFragment.class, intent.getExtras());
|
||||
}
|
||||
|
||||
public static Intent getIntentById(Context context, String newsId, Integer commentNum, Boolean openSoftInput, String entrance) {
|
||||
@ -50,10 +43,7 @@ public class MessageDetailActivity extends CommonActivity {
|
||||
intent.putExtra("commentNum", commentNum);
|
||||
intent.putExtra("openSoftInput", openSoftInput);
|
||||
// return intent;
|
||||
return new IntentFactory.Builder(context)
|
||||
.setArgs(intent.getExtras())
|
||||
.setActivity(MessageDetailActivity.class)
|
||||
.setFragment(MessageDetailFragment.class).build();
|
||||
return getIntent(context, MessageDetailFragment.class, intent.getExtras());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -269,9 +269,7 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener,
|
||||
|
||||
newsId = getIntent().getStringExtra(EntranceUtils.KEY_NEWSID);
|
||||
mIsCollectionNews = getIntent().getBooleanExtra(KEY_COLLECTIONNEWS, false);
|
||||
if (getIntent().getBundleExtra(EntranceUtils.KEY_DATA) != null) {
|
||||
newsId = getIntent().getBundleExtra(EntranceUtils.KEY_DATA).getString(EntranceUtils.KEY_NEWSID);
|
||||
}
|
||||
|
||||
if (newsId == null) {
|
||||
mNewsEntity = getIntent().getParcelableExtra(NewsEntity.TAG);
|
||||
if (mNewsEntity != null) {
|
||||
@ -576,13 +574,13 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener,
|
||||
newsDetailEntity.getUserData().setArticleFavorite(false);
|
||||
mNewsCollection.setEnabled(true);
|
||||
mNewsCollection.setImageResource(R.drawable.menu_ic_collect_unselect);
|
||||
toast(getString(R.string.collection_cancel));
|
||||
toast(R.string.collection_cancel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
mNewsCollection.setEnabled(true);
|
||||
toast(getString(R.string.collection_cancel_failure));
|
||||
toast(R.string.collection_cancel_failure);
|
||||
}
|
||||
});
|
||||
|
||||
@ -602,13 +600,13 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener,
|
||||
userData.setArticleFavorite(true);
|
||||
mNewsCollection.setEnabled(true);
|
||||
mNewsCollection.setImageResource(R.drawable.menu_ic_collect_select);
|
||||
toast(getString(R.string.collection_success));
|
||||
toast(R.string.collection_success);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
mNewsCollection.setEnabled(true);
|
||||
toast(getString(R.string.collection_failure));
|
||||
toast(R.string.collection_failure);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import android.support.v7.widget.Toolbar;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
@ -36,6 +37,11 @@ public class NormalActivity extends BaseActivity implements ToolbarController, T
|
||||
public static final String NORMAL_FRAGMENT_NAME = "normalFragmentName";
|
||||
public static final String NORMAL_FRAGMENT_BUNDLE = "normalFragmentBundle";
|
||||
|
||||
// 针对部分跳转不符合NormalActivity规则的额外处理,主要绑定NormalFragment
|
||||
protected Intent provideNormalIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
protected static Intent getIntent(Context context, Class<? extends NormalFragment> t) {
|
||||
Intent intent = new Intent(context, NormalActivity.class);
|
||||
@ -91,7 +97,7 @@ public class NormalActivity extends BaseActivity implements ToolbarController, T
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (savedInstanceState == null && getIntent() != null) {
|
||||
if (getIntent() != null) {
|
||||
handleIntent(getIntent());
|
||||
}
|
||||
// setSupportActionBar(mNormalToolbar); // 替换actionBar后 toolBar无法控制
|
||||
@ -113,23 +119,34 @@ public class NormalActivity extends BaseActivity implements ToolbarController, T
|
||||
private void handleIntent(Intent intent) {
|
||||
String fraName = intent.getStringExtra(NORMAL_FRAGMENT_NAME);
|
||||
Bundle bundle = intent.getBundleExtra(NORMAL_FRAGMENT_BUNDLE);
|
||||
if (TextUtils.isEmpty(fraName)) return;
|
||||
if (TextUtils.isEmpty(fraName)) {
|
||||
if (provideNormalIntent() == null) {
|
||||
return;
|
||||
}
|
||||
fraName = provideNormalIntent().getStringExtra(NORMAL_FRAGMENT_NAME);
|
||||
if (bundle == null) bundle = getIntent().getExtras();
|
||||
if (TextUtils.isEmpty(fraName)) return;
|
||||
}
|
||||
mTargetFragment = Fragment.instantiate(this, fraName, bundle);
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.normal_content, mTargetFragment).commitNowAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNavigationTitle(@StringRes int res) {
|
||||
if (mNormalTitle == null) return;
|
||||
mNormalTitle.setText(res);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNavigationTitle(CharSequence res) {
|
||||
mNormalTitle.setText(res);
|
||||
public void setNavigationTitle(String res) {
|
||||
if (mNormalTitle == null) return;
|
||||
if (res != null)
|
||||
mNormalTitle.setText(res);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setToolbarMenu(@MenuRes int res) {
|
||||
if (mNormalToolbar == null) return;
|
||||
mNormalToolbar.inflateMenu(res);
|
||||
mNormalToolbar.setOnMenuItemClickListener(this);
|
||||
|
||||
@ -145,6 +162,7 @@ public class NormalActivity extends BaseActivity implements ToolbarController, T
|
||||
|
||||
@Override
|
||||
public MenuItem getMenuItem(int res) {
|
||||
if (mNormalToolbar == null) return null; //后续页面做好判断
|
||||
return mNormalToolbar.getMenu().findItem(res);
|
||||
}
|
||||
|
||||
@ -163,4 +181,11 @@ public class NormalActivity extends BaseActivity implements ToolbarController, T
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchTouchEvent(MotionEvent ev) {
|
||||
if (mTargetFragment instanceof NormalFragment) {
|
||||
((NormalFragment) mTargetFragment).onTouchEvent(ev);
|
||||
}
|
||||
return super.dispatchTouchEvent(ev);
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ public class QuestionsDetailActivity extends BaseActivity implements FragmentMan
|
||||
public static final String QUESTIONS_DETAIL_FOLD = "fold";
|
||||
public static final String QUESTIONS_DETAIL = "questions_detail";
|
||||
|
||||
private static final int QUESTIONS_DETAIL_ANSWER_REQUEST = 110;
|
||||
public static final int QUESTIONS_DETAIL_ANSWER_REQUEST = 110;
|
||||
|
||||
private View mShareIv;
|
||||
|
||||
@ -69,9 +69,6 @@ public class QuestionsDetailActivity extends BaseActivity implements FragmentMan
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mQuestionsId = getIntent().getStringExtra(EntranceUtils.KEY_QUESTIONS_ID);
|
||||
if (getIntent().getBundleExtra(EntranceUtils.KEY_DATA) != null) {
|
||||
mQuestionsId = getIntent().getBundleExtra(EntranceUtils.KEY_DATA).getString(EntranceUtils.KEY_QUESTIONS_ID);
|
||||
}
|
||||
getSupportFragmentManager().addOnBackStackChangedListener(this);
|
||||
show(QUESTIONS_DETAIL);
|
||||
|
||||
|
||||
@ -266,7 +266,7 @@ public class SearchActivity extends BaseActivity {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
transaction.commit();
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
||||
@ -64,10 +64,9 @@ public class SkipActivity extends BaseActivity {
|
||||
}
|
||||
Intent intent = new Intent();
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra(KEY_ENTRANCE, ENTRANCE_BROWSER);
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
|
||||
bundle.putString(KEY_ENTRANCE, ENTRANCE_BROWSER);
|
||||
if (host != null) {
|
||||
switch (host) {
|
||||
case HOST_ARTICLE:
|
||||
|
||||
@ -20,6 +20,7 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gh.base.BaseActivity;
|
||||
import com.gh.base.fragment.BaseFragment_ViewPager;
|
||||
import com.gh.common.util.DialogUtils;
|
||||
import com.gh.common.util.PackageUtils;
|
||||
import com.gh.common.util.PlatformUtils;
|
||||
@ -28,6 +29,7 @@ import com.gh.common.util.TimestampUtils;
|
||||
import com.gh.common.util.TokenUtils;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.eventbus.EBReuse;
|
||||
import com.gh.gamecenter.fragment.MainWrapperFragment;
|
||||
import com.gh.gamecenter.manager.FilterManager;
|
||||
import com.gh.gamecenter.retrofit.JSONObjectResponse;
|
||||
import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
@ -52,8 +54,6 @@ import pub.devrel.easypermissions.EasyPermissions;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
|
||||
import static com.gh.common.util.EntranceUtils.KEY_DATA;
|
||||
|
||||
/**
|
||||
* 引导页面
|
||||
*/
|
||||
@ -89,7 +89,7 @@ public class SplashScreenActivity extends BaseActivity {
|
||||
intent.setAction(Intent.ACTION_MAIN);
|
||||
intent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent.putExtra(KEY_DATA, bundle);
|
||||
intent.putExtras(bundle);
|
||||
return intent;
|
||||
}
|
||||
|
||||
@ -167,12 +167,12 @@ public class SplashScreenActivity extends BaseActivity {
|
||||
// 跳转到主界面
|
||||
private void launch() {
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
if (getIntent().getBundleExtra(KEY_DATA) != null) {
|
||||
bundle = getIntent().getBundleExtra(KEY_DATA);
|
||||
}
|
||||
|
||||
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
|
||||
intent.putExtra(KEY_DATA, bundle);
|
||||
if (isNewFirstLaunch) {
|
||||
if (bundle == null) bundle = new Bundle();
|
||||
intent.putExtra(BaseFragment_ViewPager.ARGS_INDEX, MainWrapperFragment.INDEX_ASK);
|
||||
}
|
||||
if (bundle != null) intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.gh.gamecenter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.gh.common.util.EntranceUtils;
|
||||
@ -13,6 +14,11 @@ import com.gh.gamecenter.subject.SubjectWrapperFragment;
|
||||
@Deprecated
|
||||
public class SubjectActivity extends NormalActivity {
|
||||
|
||||
@Override
|
||||
protected Intent provideNormalIntent() {
|
||||
return getIntent(this, SubjectWrapperFragment.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动专题页面
|
||||
*/
|
||||
|
||||
@ -171,7 +171,7 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt
|
||||
|
||||
File file = new File(picturePath);
|
||||
if (file.length() > 8 * 1024 * 1024) {
|
||||
toast(getString(R.string.suggestion_pic_hint));
|
||||
toast(R.string.suggestion_pic_hint);
|
||||
} else {
|
||||
String newPath = getCacheDir() + File.separator + System.currentTimeMillis() + ".jpg";
|
||||
Observable.create((Observable.OnSubscribe<Boolean>)
|
||||
@ -208,12 +208,6 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt
|
||||
String suggestContent = extras.getString(EntranceUtils.KEY_CONTENT);
|
||||
String suggestHintType = extras.getString(EntranceUtils.KEY_SUGGEST_HINT_TYPE);
|
||||
|
||||
Bundle data = getIntent().getBundleExtra(EntranceUtils.KEY_DATA);
|
||||
if (data != null) {
|
||||
suggestContent = data.getString(EntranceUtils.KEY_CONTENT);
|
||||
suggestHintType = data.getString(EntranceUtils.KEY_SUGGEST_HINT_TYPE);
|
||||
curType = data.getInt(EntranceUtils.KEY_SUGGESTTYPE);
|
||||
}
|
||||
|
||||
sp = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
@ -407,7 +401,7 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt
|
||||
String url = mSuggestNewsLinkEt.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(url) && !PatternUtils.isUrlAddress(url)) {
|
||||
Utils.toast(SuggestionActivity.this, getString(R.string.suggestion_url_error_hint));
|
||||
toast(R.string.suggestion_url_error_hint);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -137,12 +137,6 @@ public class ViewImageActivity extends Activity implements OnPageChangeListener
|
||||
urls = extras.getStringArrayList(KEY_URLS);
|
||||
int current = extras.getInt(KEY_CURRENT, 0);
|
||||
scaleType = extras.getString(KEY_SCALETYPE);
|
||||
Bundle data = getIntent().getBundleExtra(EntranceUtils.KEY_DATA);
|
||||
if (data != null) {
|
||||
urls = data.getStringArrayList(KEY_URLS);
|
||||
current = data.getInt(KEY_CURRENT, 0);
|
||||
scaleType = data.getString(KEY_SCALETYPE);
|
||||
}
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
current = savedInstanceState.getInt(EntranceUtils.KEY_CURRENTITEM, 0);
|
||||
|
||||
@ -17,6 +17,11 @@ import com.halo.assistant.fragment.WebFragment;
|
||||
@Deprecated
|
||||
public class WebActivity extends NormalActivity {
|
||||
|
||||
@Override
|
||||
protected Intent provideNormalIntent() {
|
||||
return getIntent(this, WebFragment.class);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static Intent getWebIntent(Context context) {
|
||||
Intent intent = new Intent(context, WebActivity.class);
|
||||
|
||||
@ -69,7 +69,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback {
|
||||
shareUrl = extras.getString(KET_SHAREURL);
|
||||
mShareType = extras.getString(KET_TYPE);
|
||||
|
||||
Utils.toast(this, getString(R.string.share_skip));
|
||||
Utils.toast(this, R.string.share_skip);
|
||||
|
||||
mWeiboShareAPI = new WbShareHandler(this);
|
||||
mWeiboShareAPI.registerApp();
|
||||
@ -139,19 +139,19 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback {
|
||||
|
||||
@Override
|
||||
public void onWbShareSuccess() {
|
||||
Utils.toast(this, getString(R.string.share_success_hint));
|
||||
Utils.toast(this, R.string.share_success_hint);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWbShareCancel() {
|
||||
Utils.toast(this, getString(R.string.share_cancel_hint));
|
||||
Utils.toast(this, R.string.share_cancel_hint);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWbShareFail() {
|
||||
Utils.toast(this, getString(R.string.share_fail_hint));
|
||||
Utils.toast(this, R.string.share_fail_hint);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,12 +27,10 @@ import java.util.List;
|
||||
* Created by khy on 6/12/17.
|
||||
*/
|
||||
|
||||
public class AskSelectGameAdapter extends ListAdapter {
|
||||
public class AskSelectGameAdapter extends ListAdapter<AskGameSelectEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AskGameSelectEntity> mEntityList;
|
||||
|
||||
private int mTitlePosition;
|
||||
|
||||
private String mCommunityId;
|
||||
@ -45,8 +43,15 @@ public class AskSelectGameAdapter extends ListAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AskGameSelectEntity>) listData;
|
||||
protected void provideListData(List<AskGameSelectEntity> listData) {
|
||||
mEntityList.addAll(listData);
|
||||
for (int i = 0; i < mEntityList.size(); i++) {
|
||||
AskGameSelectEntity entity = mEntityList.get(i);
|
||||
if (TextUtils.isEmpty(entity.getStatus())) {
|
||||
mEntityList.remove(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < mEntityList.size(); i++) {
|
||||
AskGameSelectEntity entity = mEntityList.get(i);
|
||||
if (i == 0) {
|
||||
|
||||
@ -89,7 +89,7 @@ public class CommentDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
mRecyclerView.setVisibility(View.GONE);
|
||||
Utils.toast(mContext, R.string.content_delete_toast);
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.comment_failure_hint));
|
||||
Utils.toast(mContext, R.string.comment_failure_hint);
|
||||
mIsNetworkError = true;
|
||||
mIsLoading = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
|
||||
@ -237,7 +237,7 @@ public class GameNewsAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
StringUtils.buildString(mEntrance, "+(游戏新闻列表[", mNewsType, "])"));
|
||||
mContext.startActivity(intent);
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.search_hint));
|
||||
Utils.toast(mContext, R.string.search_hint);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -413,7 +413,7 @@ public class PlatformAdapter extends BaseRecyclerAdapter<PlatformViewHolder> {
|
||||
|
||||
String path = downloadEntity.getPath();
|
||||
if (FileUtils.isEmptyFile(path)) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.install_failure_hint));
|
||||
Utils.toast(mContext, R.string.install_failure_hint);
|
||||
mEntryMap.remove(apkEntity.getUrl());
|
||||
DownloadManager.getInstance(mContext).cancel(apkEntity.getUrl());
|
||||
notifyItemChanged(position);
|
||||
@ -435,7 +435,7 @@ public class PlatformAdapter extends BaseRecyclerAdapter<PlatformViewHolder> {
|
||||
|
||||
String path = mEntryMap.get(apkEntity.getUrl()).getPath();
|
||||
if (FileUtils.isEmptyFile(path)) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.install_failure_hint));
|
||||
Utils.toast(mContext, R.string.install_failure_hint);
|
||||
mEntryMap.remove(apkEntity.getUrl());
|
||||
DownloadManager.getInstance(mContext).cancel(apkEntity.getUrl());
|
||||
adapter.notifyItemChanged(location);
|
||||
|
||||
@ -23,9 +23,7 @@ import com.gh.gamecenter.entity.ToolBoxEntity;
|
||||
import com.gh.gamecenter.manager.UserManager;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
import com.google.gson.Gson;
|
||||
import com.lightgame.adapter.BaseRecyclerAdapter;
|
||||
import com.lightgame.config.CommonDebug;
|
||||
import com.lightgame.utils.Util_System_Keyboard;
|
||||
import com.lightgame.utils.Utils;
|
||||
|
||||
@ -235,7 +233,7 @@ public class ToolBoxRvAdapter extends BaseRecyclerAdapter {
|
||||
public void onClick(View v) {
|
||||
|
||||
if (TextUtils.isEmpty(viewHolder.searchEt.getText().toString())) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.search_hint));
|
||||
Utils.toast(mContext, R.string.search_hint);
|
||||
return;
|
||||
}
|
||||
mSearchListener.search(true, viewHolder.searchEt.getText().toString());
|
||||
|
||||
@ -23,8 +23,8 @@ import com.gh.common.util.ImageUtils;
|
||||
import com.gh.common.util.NewsUtils;
|
||||
import com.gh.common.util.ShareUtils;
|
||||
import com.gh.common.view.RichEditor;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.NormalActivity;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ViewImageActivity;
|
||||
import com.gh.gamecenter.ask.entity.AnswerDetailEntity;
|
||||
@ -99,9 +99,12 @@ public class AnswerDetailFragment extends NormalFragment {
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == Activity.RESULT_OK && requestCode == ANSWER_PATCH_REQUEST) {
|
||||
mDetailEntity.setContent(data.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT));
|
||||
initView();
|
||||
if (resultCode == Activity.RESULT_OK && requestCode == ANSWER_PATCH_REQUEST && data != null && getActivity() != null) {
|
||||
if (mDetailEntity != null) {
|
||||
mDetailEntity.setContent(data.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT));
|
||||
initView();
|
||||
}
|
||||
getActivity().setResult(Activity.RESULT_OK, new Intent()); // 编辑答案问题详情页面已存在Id,只需要一个空Intent
|
||||
}
|
||||
}
|
||||
|
||||
@ -224,15 +227,17 @@ public class AnswerDetailFragment extends NormalFragment {
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.answer_detail_edit:
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_ID, mAnswerId);
|
||||
bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, mDetailEntity.getQuestion().getTitle());
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_CONTENT, mDetailEntity.getContent());
|
||||
NormalActivity.startFragmentForResult(getContext(), AnswerEditFragment.class, bundle, ANSWER_PATCH_REQUEST);
|
||||
if (mDetailEntity != null) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_ID, mAnswerId);
|
||||
bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, mDetailEntity.getQuestion().getTitle());
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_CONTENT, mDetailEntity.getContent());
|
||||
NormalActivity.startFragmentForResult(getContext(), AnswerEditFragment.class, bundle, ANSWER_PATCH_REQUEST);
|
||||
}
|
||||
break;
|
||||
case R.id.answer_detail_vote:
|
||||
CheckLoginUtils.checkLogin(getContext(), () -> {
|
||||
if (!mDetailEntity.getMe().isAnswerVoted()) {
|
||||
if (mDetailEntity != null && !mDetailEntity.getMe().isAnswerVoted()) {
|
||||
postVote();
|
||||
} else {
|
||||
toast(R.string.ask_vote_hint);
|
||||
@ -245,8 +250,10 @@ public class AnswerDetailFragment extends NormalFragment {
|
||||
initData();
|
||||
break;
|
||||
case R.id.answer_detail_title:
|
||||
Intent intent = QuestionsDetailActivity.getIntent(getContext(), mDetailEntity.getQuestion().getId(), mEntrance);
|
||||
startActivity(intent);
|
||||
if (mDetailEntity != null) {
|
||||
Intent intent = QuestionsDetailActivity.getIntent(getContext(), mDetailEntity.getQuestion().getId(), mEntrance);
|
||||
startActivity(intent);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.gh.gamecenter.ask;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -13,30 +12,19 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
||||
import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 2/12/17.
|
||||
*/
|
||||
|
||||
public class AskQuestionsHotAdapter extends ListAdapter {
|
||||
public class AskQuestionsHotAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
public AskQuestionsHotAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -12,32 +12,20 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
||||
import com.gh.gamecenter.ask.entity.Questions;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
|
||||
/**
|
||||
* Created by khy on 5/12/17.
|
||||
*/
|
||||
|
||||
public class AskQuestionsNewBodyAdapter extends ListAdapter {
|
||||
public class AskQuestionsNewBodyAdapter extends ListAdapter<Questions> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<Questions> mEntityList;
|
||||
|
||||
|
||||
public AskQuestionsNewBodyAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<Questions>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -3,6 +3,7 @@ package com.gh.gamecenter.ask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.View;
|
||||
|
||||
import com.gh.common.util.AskLogUtils;
|
||||
@ -48,8 +49,8 @@ public class AskQuestionsNewBodyFragment extends ListFragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
mType = getArguments().getString(AskQuestionsNewFragment.ASK_QUESTIONS_TYPE);
|
||||
mCommunityId = UserManager.getInstance().getCommunityId(getContext());
|
||||
mType = getArguments().getString(mCommunityId);
|
||||
super.onCreate(savedInstanceState);
|
||||
mOnLoggenInListener = () -> {
|
||||
NormalActivity.startFragment(getContext(), QuestionsEditFragment.class);
|
||||
@ -61,6 +62,7 @@ public class AskQuestionsNewBodyFragment extends ListFragment {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
if (!UserManager.getInstance().getCommunityId(getContext()).equals(mCommunityId)) {
|
||||
mCommunityId = UserManager.getInstance().getCommunityId(getContext());
|
||||
mType = getArguments().getString(mCommunityId);
|
||||
onRefresh();
|
||||
}
|
||||
}
|
||||
@ -102,6 +104,13 @@ public class AskQuestionsNewBodyFragment extends ListFragment {
|
||||
AskLogUtils.uploadQuestions(getContext(), tracers, questions);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static Fragment newInstance(String s) {
|
||||
AskQuestionsNewBodyFragment questionsBodyFragment = new AskQuestionsNewBodyFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(UserManager.getInstance().getCommunityId(questionsBodyFragment.getContext()), s);
|
||||
questionsBodyFragment.setArguments(args);
|
||||
return questionsBodyFragment;
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,13 +8,11 @@ import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.gh.base.adapter.FragmentAdapter;
|
||||
import com.gh.base.fragment.BaseFragment;
|
||||
import com.gh.common.util.ImageUtils;
|
||||
import com.gh.common.view.TabIndicatorView;
|
||||
@ -22,10 +20,9 @@ import com.gh.gamecenter.NormalActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.AskTagGroupsEntity;
|
||||
import com.gh.gamecenter.ask.viewmodel.AskQuestionsNewViewModel;
|
||||
import com.halo.assistant.HaloApp;
|
||||
import com.lightgame.view.NoScrollableViewPager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
@ -52,21 +49,18 @@ public class AskQuestionsNewFragment extends BaseFragment {
|
||||
@BindView(R.id.list_loading)
|
||||
View mLoading;
|
||||
|
||||
public static final String ASK_QUESTIONS_TYPE = "ask_questions_type";
|
||||
|
||||
private AskQuestionsNewViewModel mModel;
|
||||
|
||||
private List<AskTagGroupsEntity> mTagGroupsList;
|
||||
|
||||
private HashMap<String, Fragment> mCacheFragmentsMap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == COMMUNITIES_SELECT_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
mTagGroupsList.clear();
|
||||
mCacheFragmentsMap.clear();
|
||||
mAppBar.setVisibility(View.GONE);
|
||||
mNoConn.setVisibility(View.GONE);
|
||||
mViewpager.setVisibility(View.GONE);
|
||||
mLoading.setVisibility(View.VISIBLE);
|
||||
mModel.repty();
|
||||
}
|
||||
@ -76,24 +70,30 @@ public class AskQuestionsNewFragment extends BaseFragment {
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
final AskQuestionsNewViewModel.Factory factory = new AskQuestionsNewViewModel.Factory(getActivity().getApplication());
|
||||
final AskQuestionsNewViewModel.Factory factory = new AskQuestionsNewViewModel.Factory(HaloApp.getInstance().getApplication());
|
||||
mModel = ViewModelProviders.of(this, factory)
|
||||
.get(AskQuestionsNewViewModel.class);
|
||||
subscribeUi(mModel);
|
||||
|
||||
// 页面销毁时进行一次重试,防止更换社区时页面销毁导致onActivityResult无法接受到信息
|
||||
if (savedInstanceState != null) {
|
||||
mModel.repty();
|
||||
}
|
||||
}
|
||||
|
||||
private void subscribeUi(AskQuestionsNewViewModel viewModel) {
|
||||
viewModel.getTagGroupsObserable().observe(this, new Observer<List<AskTagGroupsEntity>>() {
|
||||
viewModel.getTagGroupsObservable().observe(this, new Observer<List<AskTagGroupsEntity>>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable List<AskTagGroupsEntity> tagGroups) {
|
||||
mTagGroupsList = tagGroups;
|
||||
if (tagGroups != null && tagGroups.size() > 0) {
|
||||
initFragments();
|
||||
initTab();
|
||||
mViewpager.setVisibility(View.VISIBLE);
|
||||
mAppBar.setVisibility(View.VISIBLE);
|
||||
mNoConn.setVisibility(View.GONE);
|
||||
mLoading.setVisibility(View.GONE);
|
||||
} else {
|
||||
mViewpager.setVisibility(View.GONE);
|
||||
mAppBar.setVisibility(View.GONE);
|
||||
mNoConn.setVisibility(View.VISIBLE);
|
||||
mLoading.setVisibility(View.GONE);
|
||||
@ -123,26 +123,8 @@ public class AskQuestionsNewFragment extends BaseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void initFragments() {
|
||||
if (mCacheFragmentsMap.size() != mTagGroupsList.size()) {
|
||||
mCacheFragmentsMap.clear();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
for (AskTagGroupsEntity tag : mTagGroupsList) {
|
||||
AskQuestionsNewBodyFragment questionsBodyFragment = new AskQuestionsNewBodyFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(ASK_QUESTIONS_TYPE, tag.getName());
|
||||
questionsBodyFragment.setArguments(args);
|
||||
|
||||
mCacheFragmentsMap.put(tag.getName(), questionsBodyFragment);
|
||||
}
|
||||
}
|
||||
|
||||
private void initTab() {
|
||||
|
||||
FragmentAdapter adapter = new FragmentAdapter(getChildFragmentManager(), getFragments());
|
||||
AskTagPagerFragmentAdapter adapter = new AskTagPagerFragmentAdapter(getChildFragmentManager(), mTagGroupsList);
|
||||
mViewpager.setAdapter(adapter);
|
||||
mTablayout.setupWithViewPager(mViewpager);
|
||||
mTabIndicatorView.setupWithTabLayout(mTablayout);
|
||||
@ -180,12 +162,4 @@ public class AskQuestionsNewFragment extends BaseFragment {
|
||||
tabType.setText(tagList.getName());
|
||||
return view;
|
||||
}
|
||||
|
||||
private List<Fragment> getFragments() {
|
||||
List<Fragment> fragments = new ArrayList<>();
|
||||
for (AskTagGroupsEntity tag : mTagGroupsList) {
|
||||
fragments.add(mCacheFragmentsMap.get(tag.getName()));
|
||||
}
|
||||
return fragments;
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,8 @@ import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gh.base.fragment.WaitingDialogFragment;
|
||||
import com.gh.common.util.DialogUtils;
|
||||
import com.gh.common.view.GridDivider;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.AskTagGroupsEntity;
|
||||
@ -46,9 +48,11 @@ public class AskTabOrderFragment extends NormalFragment {
|
||||
|
||||
private AskTabOrderAdapter mAdapter;
|
||||
|
||||
private WaitingDialogFragment mPostDialog;
|
||||
|
||||
private List<AskTagGroupsEntity> mTagList;
|
||||
|
||||
private boolean isReseting;
|
||||
private boolean isReset = true; // 重置/没有调整过排序
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@ -64,12 +68,11 @@ public class AskTabOrderFragment extends NormalFragment {
|
||||
mViewModel = ViewModelProviders.of(this, factory)
|
||||
.get(AskQuestionsNewViewModel.class);
|
||||
|
||||
mViewModel.getTagGroupsObserable().observe(this, new Observer<List<AskTagGroupsEntity>>() {
|
||||
mViewModel.getTagGroupsObservable().observe(this, new Observer<List<AskTagGroupsEntity>>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable List<AskTagGroupsEntity> askTagGroups) {
|
||||
if (askTagGroups != null) {
|
||||
if (mTagList == null || isReseting) {
|
||||
isReseting = false;
|
||||
if (mTagList == null || isReset) {
|
||||
mTagList = askTagGroups;
|
||||
initView();
|
||||
}
|
||||
@ -77,19 +80,30 @@ public class AskTabOrderFragment extends NormalFragment {
|
||||
mViewModel.cacheAndNotifyTagGroups(null);
|
||||
getActivity().finish();
|
||||
}
|
||||
|
||||
if (mPostDialog != null) {
|
||||
mPostDialog.dismissAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@OnClick(R.id.asktab_order_reset)
|
||||
public void onClick(View view) {
|
||||
isReseting = true;
|
||||
mViewModel.reset();
|
||||
DialogUtils.showAlertDialog(getContext(), "提示", "确定要恢复为默认排序吗?"
|
||||
, "确定", "取消 ", () -> {
|
||||
mPostDialog = WaitingDialogFragment.newInstance(getString(R.string.ask_tags_reseting));
|
||||
mPostDialog.show(getChildFragmentManager(), null);
|
||||
|
||||
isReset = true;
|
||||
mViewModel.reset();
|
||||
}, null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBackPressed() {
|
||||
mViewModel.update(mTagList);
|
||||
if (!isReset) mViewModel.update(mTagList);
|
||||
return super.onBackPressed();
|
||||
}
|
||||
|
||||
@ -100,7 +114,7 @@ public class AskTabOrderFragment extends NormalFragment {
|
||||
mAdapter = new AskTabOrderAdapter(getContext(), mTagList);
|
||||
mAsktabOrderRv.setAdapter(mAdapter);
|
||||
|
||||
mAsktabOrderRv.addItemDecoration(new GridDivider(getContext(), 1, 7, ContextCompat.getColor(getContext(), R.color.cutting_line)));
|
||||
mAsktabOrderRv.addItemDecoration(new GridDivider(getContext(), 1, 5, ContextCompat.getColor(getContext(), R.color.cutting_line)));
|
||||
mAsktabOrderRv.addOnItemTouchListener(new OnRvLongClickListener(mAsktabOrderRv) {
|
||||
@Override
|
||||
public void onItemLongClick(RecyclerView.ViewHolder vh) {
|
||||
@ -161,6 +175,7 @@ public class AskTabOrderFragment extends NormalFragment {
|
||||
}
|
||||
|
||||
mAdapter.notifyItemMoved(fromPosition, toPosition);
|
||||
isReset = false;
|
||||
mViewModel.cacheAndNotifyTagGroups(mTagList); // 刷新问答-问题页面
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package com.gh.gamecenter.ask;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentStatePagerAdapter;
|
||||
|
||||
import com.gh.gamecenter.ask.entity.AskTagGroupsEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 28/01/18.
|
||||
*/
|
||||
|
||||
public class AskTagPagerFragmentAdapter extends FragmentStatePagerAdapter {
|
||||
private List<AskTagGroupsEntity> mTagList;
|
||||
|
||||
public AskTagPagerFragmentAdapter(FragmentManager fm, List<AskTagGroupsEntity> tagList) {
|
||||
super(fm);
|
||||
mTagList = tagList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return AskQuestionsNewBodyFragment.newInstance(mTagList.get(position).getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTagList.size();
|
||||
}
|
||||
}
|
||||
@ -114,10 +114,10 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
|
||||
File file = new File(picturePath);
|
||||
if (file.length() > 8 * 1024 * 1024) {
|
||||
toast(getString(R.string.suggestion_pic_hint));
|
||||
toast(R.string.suggestion_pic_hint);
|
||||
} else {
|
||||
if (mAdapter.getFileList().size() >= 3) {
|
||||
toast(getString(R.string.questions_edit_maxpic_hint));
|
||||
toast(R.string.questions_edit_maxpic_hint);
|
||||
} else {
|
||||
postImg(picturePath);
|
||||
}
|
||||
@ -203,12 +203,13 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Utils.log("===postImg::" + response.toString());
|
||||
int statusCode = response.getInt("statusCode");
|
||||
if (statusCode == HttpURLConnection.HTTP_OK) {
|
||||
mAdapter.addFileList(response.getString("icon"));
|
||||
} else if (statusCode == 403) {
|
||||
toast("图片违规");
|
||||
} else {
|
||||
toast("图片上传失败,请检查网络");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -260,14 +261,13 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (title.length() < 30) {
|
||||
if (title.length() < 50) {
|
||||
String endString = title.substring(title.length() - 1, title.length());
|
||||
if (!"?".equals(endString) && !"?".equals(endString))
|
||||
title += "?";
|
||||
}
|
||||
|
||||
String content = mContent.getText().toString();
|
||||
String content = mContent.getText().toString().trim();
|
||||
QuestionsDetailEntity entity = new QuestionsDetailEntity();
|
||||
entity.setTitle(title);
|
||||
entity.setTags(mTagList);
|
||||
@ -403,7 +403,7 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
||||
String nickname = input.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(nickname)) {
|
||||
Utils.toast(getContext(), getString(R.string.vote_empty_hint));
|
||||
toast(R.string.vote_empty_hint);
|
||||
return true;
|
||||
}
|
||||
addTag(nickname, true);
|
||||
@ -430,7 +430,7 @@ public class QuestionsEditFragment extends NormalFragment {
|
||||
public void onClick(View v) {
|
||||
String nickname = input.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(nickname)) {
|
||||
Utils.toast(getContext(), getString(R.string.vote_empty_hint));
|
||||
toast(R.string.vote_empty_hint);
|
||||
return;
|
||||
}
|
||||
addTag(nickname, true);
|
||||
|
||||
@ -125,13 +125,15 @@ public class SelectGameFragment extends ListFragment {
|
||||
switch (view.getId()) {
|
||||
case R.id.ask_selectgame_item_constraintlayout:
|
||||
List<AskGameSelectEntity> list = (List<AskGameSelectEntity>) data;
|
||||
AskGameSelectEntity entity = list.get(position);
|
||||
if ("opened".equals(entity.getStatus())) {
|
||||
UserManager.getInstance().setCommunityId(getContext(), entity.getId(), entity.getName());
|
||||
mAdapter.resetCommunityId(entity.getId());
|
||||
if (getActivity() != null) {
|
||||
getActivity().setResult(Activity.RESULT_OK);
|
||||
getActivity().finish();
|
||||
if (position < list.size()) {
|
||||
AskGameSelectEntity entity = list.get(position);
|
||||
if ("opened".equals(entity.getStatus())) {
|
||||
UserManager.getInstance().setCommunityId(getContext(), entity.getId(), entity.getName());
|
||||
mAdapter.resetCommunityId(entity.getId());
|
||||
if (getActivity() != null) {
|
||||
getActivity().setResult(Activity.RESULT_OK);
|
||||
getActivity().finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -147,10 +149,13 @@ public class SelectGameFragment extends ListFragment {
|
||||
case R.id.ask_selectgame_item_votebtn:
|
||||
CheckLoginUtils.checkLogin(getContext(), () -> {
|
||||
List<AskGameSelectEntity> mEntityList = (List<AskGameSelectEntity>) data;
|
||||
AskGameSelectEntity askGameSelectEntity = mEntityList.get(position);
|
||||
MeEntity me = askGameSelectEntity.getMe();
|
||||
if (me == null || !me.isCommunityVoted())
|
||||
vote(askGameSelectEntity.getId());
|
||||
if (position < mEntityList.size()) {
|
||||
AskGameSelectEntity askGameSelectEntity = mEntityList.get(position);
|
||||
MeEntity me = askGameSelectEntity.getMe();
|
||||
if (me == null || !me.isCommunityVoted())
|
||||
vote(askGameSelectEntity.getId());
|
||||
}
|
||||
|
||||
});
|
||||
break;
|
||||
|
||||
|
||||
@ -13,30 +13,20 @@ import com.gh.gamecenter.ask.AskQuestionsNewViewHolder;
|
||||
import com.gh.gamecenter.ask.entity.Questions;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 20/12/17.
|
||||
*/
|
||||
|
||||
class ConcernQuestionsAdapter extends ListAdapter {
|
||||
class ConcernQuestionsAdapter extends ListAdapter<Questions> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<Questions> mEntityList;
|
||||
|
||||
|
||||
public ConcernQuestionsAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<Questions>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -13,29 +13,19 @@ import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 20/12/17.
|
||||
*/
|
||||
|
||||
class MyAnswerAdapter extends ListAdapter {
|
||||
class MyAnswerAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
MyAnswerAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -13,29 +13,19 @@ import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 20/12/17.
|
||||
*/
|
||||
|
||||
class MyDraftAdapter extends ListAdapter {
|
||||
class MyDraftAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
MyDraftAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
@ -76,12 +66,6 @@ class MyDraftAdapter extends ListAdapter {
|
||||
return mEntityList == null || mEntityList.isEmpty() ? 0 : mEntityList.size() + FOOTER_ITEM_COUNT;
|
||||
}
|
||||
|
||||
void answerContentChange(int position, String newContent) {
|
||||
AnswerEntity answerEntity = mEntityList.get(position);
|
||||
answerEntity.setBrief(newContent);
|
||||
notifyItemChanged(position);
|
||||
}
|
||||
|
||||
void removePosition(int draftPosition) {
|
||||
mEntityList.remove(draftPosition);
|
||||
notifyDataSetChanged();
|
||||
|
||||
@ -6,10 +6,9 @@ import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import com.gh.common.util.AskLogUtils;
|
||||
import com.gh.common.util.AskUtils;
|
||||
import com.gh.common.util.EntranceUtils;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.NormalActivity;
|
||||
import com.gh.gamecenter.QuestionsDetailActivity;
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.ask.entity.Questions;
|
||||
@ -54,7 +53,7 @@ public class MyDraftFragment extends ListFragment {
|
||||
mDraftPosition = -1;
|
||||
if (mAdapter.getItemCount() == 0) onLoadEmpty();
|
||||
} else if (resultCode == AnswerEditFragment.SAVE_DRAFTS && data != null) {
|
||||
mAdapter.answerContentChange(mDraftPosition, AskUtils.stripHtml(data.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT)));
|
||||
mListViewModel.load(LoadType.REFRESH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,30 +13,20 @@ import com.gh.gamecenter.ask.AskQuestionsNewViewHolder;
|
||||
import com.gh.gamecenter.ask.entity.Questions;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 20/12/17.
|
||||
*/
|
||||
|
||||
public class MyQuestionsAdapter extends ListAdapter {
|
||||
public class MyQuestionsAdapter extends ListAdapter<Questions> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<Questions> mEntityList;
|
||||
|
||||
|
||||
public MyQuestionsAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<Questions>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -190,7 +190,7 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
ImageUtils.Companion.postImage(getContext(), picturePath, new ImageUtils.OnPostImageListener() {
|
||||
@Override
|
||||
public void postSuccess(JSONObject response) {
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
if (response == null) {
|
||||
toast("图片上传失败,请检查网络");
|
||||
return;
|
||||
@ -202,6 +202,8 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
mEditContent.insertImage(FILE_HOST + picturePath);
|
||||
} else if (statusCode == 403) {
|
||||
toast("图片违规");
|
||||
} else {
|
||||
toast("图片上传失败,请检查网络");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -210,7 +212,7 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
|
||||
@Override
|
||||
public void postError() {
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
toast("图片上传失败,请检查网络");
|
||||
}
|
||||
});
|
||||
@ -233,11 +235,11 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
private void post(String editContent) {
|
||||
int answerLength = mEditContent.getText().length();
|
||||
if (answerLength < MIN_ANSWER_TEXT_LENGTH) {
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
toast(R.string.answer_beneath_length_limit);
|
||||
return;
|
||||
} else if (answerLength > MAX_ANSWER_TEXT_LENGTH) {
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
DialogUtils.showAlertDialog(getContext(),
|
||||
getString(R.string.answer_post_failed),
|
||||
String.format(getString(R.string.answer_exceed_length_limit), Integer.toString(answerLength - MIN_ANSWER_TEXT_LENGTH)),
|
||||
@ -267,7 +269,7 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
@Override
|
||||
public void onResponse(ResponseBody response) {
|
||||
super.onResponse(response);
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
toast("发布成功");
|
||||
String answerId = null;
|
||||
try {
|
||||
@ -288,7 +290,7 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
@Override
|
||||
public void onFailure(HttpException e) {
|
||||
super.onFailure(e);
|
||||
postDialog.dismissAllowingStateLoss();
|
||||
if (postDialog != null) postDialog.dismissAllowingStateLoss();
|
||||
toast("提交失败");
|
||||
AskErrorResponseUtils.errorResponseControl(getContext(), e);
|
||||
}
|
||||
@ -334,7 +336,7 @@ public class AnswerEditFragment extends NormalFragment {
|
||||
for (String s : mMapImg.keySet()) {
|
||||
editContent = editContent.replace(FILE_HOST + s, mMapImg.get(s));
|
||||
}
|
||||
if (isExit && TextUtils.isEmpty(editContent)) {
|
||||
if (isExit && TextUtils.isEmpty(editContent) && getActivity() != null) {
|
||||
getActivity().finish();
|
||||
return;
|
||||
} else if (!isExit && TextUtils.isEmpty(editContent)) { // || editContent.equals(mCacheAnswerContent)
|
||||
|
||||
@ -12,29 +12,19 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
||||
import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 11/12/17.
|
||||
*/
|
||||
|
||||
public class AnswerFoldAdapter extends ListAdapter {
|
||||
public class AnswerFoldAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
public AnswerFoldAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
|
||||
@ -68,7 +68,7 @@ public class AnswerFoldFragment extends ListFragment {
|
||||
|
||||
@Override
|
||||
public Observable<List<AnswerEntity>> provideDataObservable() {
|
||||
return RetrofitManager.getInstance(getContext()).getApi().getQuestionsAnswer(mQuestionsId, true);
|
||||
return RetrofitManager.getInstance(getContext()).getApi().getQuestionsAnswer(mQuestionsId, true, mListViewModel.getListOffset());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -37,14 +37,10 @@ import java.util.List;
|
||||
* Created by khy on 7/12/17.
|
||||
*/
|
||||
|
||||
public class QuestionsDetailAdapter extends ListAdapter {
|
||||
|
||||
private static final int ITEM_FOLD_HINT = 200;
|
||||
public class QuestionsDetailAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
private QuestionsDetailEntity mQuestionsDetailEntity;
|
||||
|
||||
boolean mIsExpand = false;
|
||||
@ -64,13 +60,15 @@ public class QuestionsDetailAdapter extends ListAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
protected void provideListData(List<AnswerEntity> listData) {
|
||||
if (listData != null && listData.size() != 0 && mQuestionsDetailEntity != null) {
|
||||
mEntityList.addAll(listData);
|
||||
notifyItemRangeInserted(mEntityList.size() - listData.size() + TOP_ITEM_COUNT, listData.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadChange(LoadStatus status) { // 特殊
|
||||
public void loadChange(LoadStatus status) {
|
||||
switch (status) {
|
||||
case OVER:
|
||||
mIsOver = true;
|
||||
@ -81,7 +79,15 @@ public class QuestionsDetailAdapter extends ListAdapter {
|
||||
case RETRY:
|
||||
mIsNetworkError = false;
|
||||
break;
|
||||
case NORMAL:
|
||||
mIsNetworkError = false;
|
||||
mIsOver = false;
|
||||
return;
|
||||
case REFRESH:
|
||||
mEntityList.clear();
|
||||
break;
|
||||
}
|
||||
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@ -160,7 +166,8 @@ public class QuestionsDetailAdapter extends ListAdapter {
|
||||
break;
|
||||
case ItemViewType.ITEM_BODY:
|
||||
int index = position - ListAdapter.TOP_ITEM_COUNT;
|
||||
((AnswerViewHolder) holder).initAnswerViewHolder(mContext, mEntityList.get(index));
|
||||
if (index != -1)
|
||||
((AnswerViewHolder) holder).initAnswerViewHolder(mContext, mEntityList.get(index));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -200,7 +207,7 @@ public class QuestionsDetailAdapter extends ListAdapter {
|
||||
params.setMargins(0, DisplayUtils.dip2px(mContext, 5), DisplayUtils.dip2px(mContext, 15),
|
||||
DisplayUtils.dip2px(mContext, 5));
|
||||
tagTv.setLayoutParams(params);
|
||||
holder.mTagRl.addView(view, 0);
|
||||
holder.mTagRl.addView(view);
|
||||
}
|
||||
|
||||
if (mQuestionsDetailEntity.getMe().isQuestionFollowed()) {
|
||||
@ -281,6 +288,8 @@ public class QuestionsDetailAdapter extends ListAdapter {
|
||||
int index = 0;
|
||||
if (mQuestionsDetailEntity != null) {
|
||||
index++;
|
||||
} else {
|
||||
return index;
|
||||
}
|
||||
if (mEntityList != null) {
|
||||
index += mEntityList.size();
|
||||
|
||||
@ -148,7 +148,8 @@ public class QuestionsDetailFragment extends ListFragment {
|
||||
if (mQuestionsDetailEntity != null && !TextUtils.isEmpty(mQuestionsDetailEntity.getMe().getMyAnswerId())) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_ID, mQuestionsDetailEntity.getMe().getMyAnswerId());
|
||||
NormalActivity.startFragment(getContext(), AnswerDetailFragment.class, bundle);
|
||||
NormalActivity.startFragmentForResult(getContext(), AnswerDetailFragment.class, bundle
|
||||
, QuestionsDetailActivity.QUESTIONS_DETAIL_ANSWER_REQUEST);
|
||||
} else {
|
||||
((QuestionsDetailActivity) getActivity()).show(QuestionsDetailActivity.QUESTIONS_DETAIL_ANSWER);
|
||||
}
|
||||
@ -165,7 +166,7 @@ public class QuestionsDetailFragment extends ListFragment {
|
||||
|
||||
@Override
|
||||
public Observable<List<AnswerEntity>> provideDataObservable() {
|
||||
return RetrofitManager.getInstance(getContext()).getApi().getQuestionsAnswer(mQuestionsId, false);
|
||||
return RetrofitManager.getInstance(getContext()).getApi().getQuestionsAnswer(mQuestionsId, false, mListViewModel.getListOffset());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -181,9 +182,6 @@ public class QuestionsDetailFragment extends ListFragment {
|
||||
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
|
||||
((QuestionsDetailActivity) getActivity()).show(QuestionsDetailActivity.QUESTIONS_DETAIL_FOLD);
|
||||
}
|
||||
break;
|
||||
case R.id.questionsdetail_footer:
|
||||
|
||||
break;
|
||||
case R.id.ask_answer_item_constraintlayout:
|
||||
case R.id.ask_answer_item_img:
|
||||
@ -194,7 +192,8 @@ public class QuestionsDetailFragment extends ListFragment {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(EntranceUtils.KEY_ANSWER_ID, entity.getId());
|
||||
bundle.putString(EntranceUtils.KEY_ENTRANCE, mEntrance + "+(问题详情)");
|
||||
NormalActivity.startFragment(getContext(), AnswerDetailFragment.class, bundle);
|
||||
NormalActivity.startFragmentForResult(getContext(), AnswerDetailFragment.class, bundle
|
||||
, QuestionsDetailActivity.QUESTIONS_DETAIL_ANSWER_REQUEST);
|
||||
break;
|
||||
case R.id.questionsdetail_item_concern:
|
||||
CheckLoginUtils.checkLogin(getContext(), () -> {
|
||||
@ -250,14 +249,11 @@ public class QuestionsDetailFragment extends ListFragment {
|
||||
}
|
||||
|
||||
public void postAnswerSuccess(String answerId) {
|
||||
mQuestionsDetailEntity.getMe().setMyAnswerId(answerId);
|
||||
if (mQuestionsDetailEntity != null) {
|
||||
mQuestionsDetailEntity.getMe().setMyAnswerId(answerId);
|
||||
mBaseHandler.postDelayed(this::getQuestionsDetail, 500);
|
||||
}
|
||||
setAnswerTv(R.string.question_detail_myanswer);
|
||||
mBaseHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
getQuestionsDetail();
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
|
||||
public void postDraftsSuccess() {
|
||||
|
||||
@ -19,21 +19,20 @@ import java.util.List;
|
||||
* Created by khy on 7/12/17.
|
||||
*/
|
||||
|
||||
public class QuestionsInviteAdapter extends ListAdapter {
|
||||
public class QuestionsInviteAdapter extends ListAdapter<InviteEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<InviteEntity> mEntityList;
|
||||
|
||||
public QuestionsInviteAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<InviteEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
protected void provideListData(List<InviteEntity> listData) {
|
||||
if (listData != null && listData.size() != 0) {
|
||||
mEntityList.addAll(listData);
|
||||
notifyItemRangeInserted(mEntityList.size() - listData.size() + TOP_ITEM_COUNT, listData.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -71,7 +70,9 @@ public class QuestionsInviteAdapter extends ListAdapter {
|
||||
case ItemViewType.ITEM_TOP:
|
||||
break;
|
||||
case ItemViewType.ITEM_FOOTER:
|
||||
((FooterViewHolder) holder).initFooterViewHolder(mIsNetworkError, mIsOver, R.string.ask_loadover_hint);
|
||||
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
|
||||
footerViewHolder.initItemPadding();
|
||||
footerViewHolder.initFooterViewHolder(mIsNetworkError, mIsOver, R.string.ask_loadover_hint);
|
||||
break;
|
||||
case ItemViewType.ITEM_BODY:
|
||||
((QuestionsInviteViewHolder) holder).initQuestionsInviteViewHolder(mContext, mEntityList.get(position - 1));
|
||||
@ -81,10 +82,10 @@ public class QuestionsInviteAdapter extends ListAdapter {
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mEntityList != null ? mEntityList.size() + TOP_ITEM_COUNT + FOOTER_ITEM_COUNT : TOP_ITEM_COUNT + FOOTER_ITEM_COUNT;
|
||||
return mEntityList.size() != 0 ? mEntityList.size() + TOP_ITEM_COUNT + FOOTER_ITEM_COUNT : 0;
|
||||
}
|
||||
|
||||
public void inviteSucces(String id) {
|
||||
public void inviteSuccess(String id) {
|
||||
for (InviteEntity inviteEntity : mEntityList) {
|
||||
if (id.equals(inviteEntity.getId())) {
|
||||
MeEntity me = inviteEntity.getMe();
|
||||
|
||||
@ -128,7 +128,7 @@ public class QuestionsInviteFragment extends ListFragment {
|
||||
@Override
|
||||
public void onResponse(ResponseBody response) {
|
||||
super.onResponse(response);
|
||||
mAdapter.inviteSucces(expertId);
|
||||
mAdapter.inviteSuccess(expertId);
|
||||
toast(R.string.invite_success);
|
||||
}
|
||||
|
||||
|
||||
@ -23,12 +23,10 @@ import java.util.List;
|
||||
* Created by khy on 8/12/17.
|
||||
*/
|
||||
|
||||
public class AskSearchAdapter extends ListAdapter {
|
||||
public class AskSearchAdapter extends ListAdapter<AskSearchEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AskSearchEntity> mEntityList;
|
||||
|
||||
private String mSearchKey;
|
||||
|
||||
public AskSearchAdapter(Context context, OnListClickListener listClickListener) {
|
||||
@ -37,11 +35,11 @@ public class AskSearchAdapter extends ListAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
protected void provideListData(List<AskSearchEntity> listData) {
|
||||
if (listData == null) {
|
||||
mEntityList = null;
|
||||
mEntityList.clear();
|
||||
} else {
|
||||
mEntityList = replayKeyword((List<AskSearchEntity>) listData);
|
||||
mEntityList.addAll(replayKeyword(listData));
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.gh.gamecenter.ask.viewmodel;
|
||||
|
||||
import android.arch.lifecycle.MutableLiveData;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.gh.common.util.AskErrorResponseUtils;
|
||||
import com.gh.common.util.GsonUtils;
|
||||
@ -34,7 +35,7 @@ public class AskQuestionsNewRepository {
|
||||
private Context mContext;
|
||||
|
||||
private List<AskTagGroupsEntity> mCacheTagGroupsList = new ArrayList<>();
|
||||
private MutableLiveData<List<AskTagGroupsEntity>> mObserableTagGroupsList = new MutableLiveData<>();
|
||||
private MutableLiveData<List<AskTagGroupsEntity>> mObservableTagGroupsList = new MutableLiveData<>();
|
||||
|
||||
public static AskQuestionsNewRepository getInstance(Context context) {
|
||||
if (mInstance == null) {
|
||||
@ -61,18 +62,18 @@ public class AskQuestionsNewRepository {
|
||||
@Override
|
||||
public void onResponse(List<AskTagGroupsEntity> response) {
|
||||
super.onResponse(response);
|
||||
loadDefaultTagGroups(false, response);
|
||||
loadDefaultTagGroups(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onApiFailure(ApiResponse<List<AskTagGroupsEntity>> e) {
|
||||
super.onApiFailure(e);
|
||||
loadDefaultTagGroups(false, null);
|
||||
loadDefaultTagGroups(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void loadDefaultTagGroups(boolean isReset, List<AskTagGroupsEntity> userEntity) {
|
||||
private void loadDefaultTagGroups(List<AskTagGroupsEntity> userEntity) {
|
||||
RetrofitManager.getInstance(mContext).getApi()
|
||||
.getDefaultAskTagGroups(UserManager.getInstance().getCommunityId(mContext))
|
||||
.subscribeOn(Schedulers.io())
|
||||
@ -87,9 +88,7 @@ public class AskQuestionsNewRepository {
|
||||
tagGroupsEntity.setName("全部");
|
||||
response.add(0, tagGroupsEntity);
|
||||
|
||||
if (isReset) {
|
||||
postUserAskTagGroups(response);
|
||||
} else if (userEntity != null) {
|
||||
if (userEntity != null) {
|
||||
for (AskTagGroupsEntity userGroupsEntity : userEntity) {
|
||||
for (AskTagGroupsEntity defaultGroupsEntity : response) {
|
||||
if (userGroupsEntity.getId().equals(defaultGroupsEntity.getId())) {
|
||||
@ -105,7 +104,7 @@ public class AskQuestionsNewRepository {
|
||||
@Override
|
||||
public void onApiFailure(ApiResponse<List<AskTagGroupsEntity>> e) {
|
||||
super.onApiFailure(e);
|
||||
if (!isReset) cacheAndNotifyTagGroups(null);
|
||||
cacheAndNotifyTagGroups(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -141,17 +140,31 @@ public class AskQuestionsNewRepository {
|
||||
|
||||
}
|
||||
|
||||
private void deleteUserAskTagGroups() {
|
||||
RetrofitManager.getInstance(mContext)
|
||||
.getApi()
|
||||
.deleteUserAskTagGroups(UserManager.getInstance().getCommunityId(mContext))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Response<ResponseBody>() {
|
||||
@Override
|
||||
public void onResponse(ResponseBody response) {
|
||||
super.onResponse(response);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void cacheAndNotifyTagGroups(List<AskTagGroupsEntity> tagGroups) {
|
||||
mCacheTagGroupsList = tagGroups;
|
||||
mObserableTagGroupsList.postValue(tagGroups);
|
||||
mObservableTagGroupsList.postValue(tagGroups);
|
||||
}
|
||||
|
||||
public MutableLiveData<List<AskTagGroupsEntity>> getTagGroupsObserable() {
|
||||
public MutableLiveData<List<AskTagGroupsEntity>> getTagGroupsObservable() {
|
||||
if (mCacheTagGroupsList != null) {
|
||||
mObserableTagGroupsList.postValue(mCacheTagGroupsList);
|
||||
mObservableTagGroupsList.postValue(mCacheTagGroupsList);
|
||||
}
|
||||
return mObserableTagGroupsList;
|
||||
return mObservableTagGroupsList;
|
||||
}
|
||||
|
||||
public void repty() {
|
||||
@ -159,10 +172,15 @@ public class AskQuestionsNewRepository {
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
loadDefaultTagGroups(true, null);
|
||||
loadDefaultTagGroups(null);
|
||||
if (!TextUtils.isEmpty(UserManager.getInstance().getToken())) {
|
||||
deleteUserAskTagGroups();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(List<AskTagGroupsEntity> entity) {
|
||||
postUserAskTagGroups(entity);
|
||||
if (!TextUtils.isEmpty(UserManager.getInstance().getToken())) {
|
||||
postUserAskTagGroups(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,20 +20,20 @@ public class AskQuestionsNewViewModel extends AndroidViewModel {
|
||||
|
||||
private AskQuestionsNewRepository mRepository;
|
||||
|
||||
private MutableLiveData<List<AskTagGroupsEntity>> mObserableTagGroupsList = new MutableLiveData<>();
|
||||
private MutableLiveData<List<AskTagGroupsEntity>> mObservableTagGroupsList = new MutableLiveData<>();
|
||||
|
||||
public AskQuestionsNewViewModel(@NonNull Application application, AskQuestionsNewRepository repository) {
|
||||
super(application);
|
||||
mRepository = repository;
|
||||
mObserableTagGroupsList = repository.getTagGroupsObserable();
|
||||
mObservableTagGroupsList = repository.getTagGroupsObservable();
|
||||
}
|
||||
|
||||
public void cacheAndNotifyTagGroups(List<AskTagGroupsEntity> tagGroups) {
|
||||
mRepository.cacheAndNotifyTagGroups(tagGroups);
|
||||
}
|
||||
|
||||
public LiveData<List<AskTagGroupsEntity>> getTagGroupsObserable() {
|
||||
return mObserableTagGroupsList;
|
||||
public LiveData<List<AskTagGroupsEntity>> getTagGroupsObservable() {
|
||||
return mObservableTagGroupsList;
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
|
||||
@ -4,17 +4,20 @@ import android.content.Context;
|
||||
|
||||
import com.lightgame.adapter.BaseRecyclerAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 10/11/17.
|
||||
*/
|
||||
|
||||
public abstract class ListAdapter extends BaseRecyclerAdapter {
|
||||
public abstract class ListAdapter<DataType> extends BaseRecyclerAdapter {
|
||||
|
||||
public static final int FOOTER_ITEM_COUNT = 1;
|
||||
public static final int TOP_ITEM_COUNT = 1;
|
||||
|
||||
protected final List<DataType> mEntityList = new ArrayList<>();
|
||||
|
||||
protected boolean mIsOver;
|
||||
|
||||
protected boolean mIsNetworkError;
|
||||
@ -23,7 +26,12 @@ public abstract class ListAdapter extends BaseRecyclerAdapter {
|
||||
super(context);
|
||||
}
|
||||
|
||||
protected abstract <T> void provideListData(List<T> listData);
|
||||
protected void provideListData(List<DataType> listData) {
|
||||
if (listData != null && listData.size() != 0) {
|
||||
mEntityList.addAll(listData);
|
||||
notifyItemRangeInserted(mEntityList.size() - listData.size(), listData.size());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isNetworkError() {
|
||||
return mIsNetworkError;
|
||||
@ -40,11 +48,18 @@ public abstract class ListAdapter extends BaseRecyclerAdapter {
|
||||
case RETRY:
|
||||
mIsNetworkError = false;
|
||||
break;
|
||||
case NORMAL:
|
||||
mIsNetworkError = false;
|
||||
mIsOver = false;
|
||||
return;
|
||||
case REFRESH:
|
||||
mEntityList.clear();
|
||||
notifyDataSetChanged();
|
||||
return;
|
||||
}
|
||||
|
||||
if (getItemCount() > 0) {
|
||||
if (getItemCount() > 0)
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -108,17 +108,20 @@ public abstract class ListFragment<T> extends NormalFragment implements
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mReuseNoConn.setVisibility(View.GONE);
|
||||
mReuseNoData.setVisibility(View.GONE);
|
||||
mListLoading.setVisibility(View.VISIBLE);
|
||||
mListRv.setVisibility(View.GONE);
|
||||
mListRefresh.setRefreshing(false);
|
||||
mBaseHandler.postDelayed(() -> {
|
||||
mReuseNoConn.setVisibility(View.GONE);
|
||||
mReuseNoData.setVisibility(View.GONE);
|
||||
mListLoading.setVisibility(View.VISIBLE);
|
||||
mListRv.setVisibility(View.GONE);
|
||||
mListRefresh.setRefreshing(false);
|
||||
|
||||
mListViewModel.load(LoadType.REFRESH);
|
||||
mListViewModel.load(LoadType.REFRESH);
|
||||
}, 500);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChanged(@Nullable List<T> ts) {
|
||||
assert ts != null;
|
||||
provideListAdapter().provideListData(ts);
|
||||
}
|
||||
|
||||
@ -150,6 +153,11 @@ public abstract class ListFragment<T> extends NormalFragment implements
|
||||
mListRefresh.setRefreshing(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadNormal() {
|
||||
provideListAdapter().loadChange(LoadStatus.NORMAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreError() {
|
||||
provideListAdapter().loadChange(LoadStatus.ERROR);
|
||||
@ -159,4 +167,9 @@ public abstract class ListFragment<T> extends NormalFragment implements
|
||||
public void onLoadOver() {
|
||||
provideListAdapter().loadChange(LoadStatus.OVER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadRefresh() {
|
||||
provideListAdapter().loadChange(LoadStatus.REFRESH);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,7 +8,6 @@ import com.lightgame.config.CommonDebug;
|
||||
import com.lightgame.utils.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import okhttp3.ResponseBody;
|
||||
@ -26,7 +25,6 @@ public class ListRepository<T> {
|
||||
public final static int PAGE_SIZE = 20;
|
||||
|
||||
private MutableLiveData<List<T>> mListLiveData;
|
||||
private List<T> mCacheListData;
|
||||
|
||||
private OnListLoadListener mLoadListener;
|
||||
|
||||
@ -40,7 +38,6 @@ public class ListRepository<T> {
|
||||
public ListRepository(OnListLoadListener loadListener) {
|
||||
mListOffset = 0;
|
||||
mLoadListener = loadListener;
|
||||
mCacheListData = new ArrayList<>();
|
||||
mListLiveData = new MutableLiveData<>();
|
||||
}
|
||||
|
||||
@ -61,9 +58,11 @@ public class ListRepository<T> {
|
||||
if (size == 0 && mListOffset == 0) {
|
||||
mLoadListener.onLoadEmpty();
|
||||
} else {
|
||||
if (size < PAGE_SIZE) {
|
||||
if (size == 0 || mListOffset == 0 && size < PAGE_SIZE) {
|
||||
mIsOver = true;
|
||||
mLoadListener.onLoadOver();
|
||||
} else {
|
||||
mLoadListener.onLoadNormal();
|
||||
}
|
||||
mListOffset += size;
|
||||
mLoadListener.onLoadDone();
|
||||
@ -101,13 +100,13 @@ public class ListRepository<T> {
|
||||
mListOffset = 0;
|
||||
mIsOver = false;
|
||||
mIsNetworkError = false;
|
||||
mCacheListData.clear();
|
||||
}
|
||||
|
||||
protected void load(LoadType loadType) {
|
||||
if (loadType == null) loadType = LoadType.NORMAL;
|
||||
switch (loadType) {
|
||||
case REFRESH:
|
||||
mLoadListener.onLoadRefresh();
|
||||
resetOffset();
|
||||
break;
|
||||
case RETRY:
|
||||
@ -123,14 +122,10 @@ public class ListRepository<T> {
|
||||
|
||||
|
||||
private void cacheAndNotifyListData(List<T> listData) {
|
||||
mCacheListData.addAll(listData);
|
||||
mListLiveData.postValue(mCacheListData);
|
||||
mListLiveData.postValue(listData);
|
||||
}
|
||||
|
||||
public LiveData<List<T>> getListLiveData() {
|
||||
if (mCacheListData != null) {
|
||||
mListLiveData.postValue(mCacheListData);
|
||||
}
|
||||
return mListLiveData;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,5 +12,7 @@ public enum LoadStatus {
|
||||
|
||||
REFRESH,
|
||||
|
||||
RETRY
|
||||
RETRY,
|
||||
|
||||
NORMAL
|
||||
}
|
||||
@ -10,6 +10,10 @@ import rx.Observable;
|
||||
|
||||
public interface OnListLoadListener {
|
||||
|
||||
void onLoadRefresh();
|
||||
|
||||
void onLoadNormal();
|
||||
|
||||
void onLoadDone();
|
||||
|
||||
void onLoadError();
|
||||
@ -22,6 +26,7 @@ public interface OnListLoadListener {
|
||||
|
||||
/**
|
||||
* 列表数据接口 先放这里吧
|
||||
*
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
|
||||
@ -13,29 +13,19 @@ import com.gh.gamecenter.ask.entity.AnswerEntity;
|
||||
import com.gh.gamecenter.ask.questionsdetail.AnswerViewHolder;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 22/12/17.
|
||||
*/
|
||||
|
||||
public class AnswerAdapter extends ListAdapter {
|
||||
public class AnswerAdapter extends ListAdapter<AnswerEntity> {
|
||||
|
||||
private OnListClickListener mListClickListener;
|
||||
|
||||
private List<AnswerEntity> mEntityList;
|
||||
|
||||
public AnswerAdapter(Context context, OnListClickListener listClickListener) {
|
||||
super(context);
|
||||
mListClickListener = listClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<AnswerEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == getItemCount() - 1) return ItemViewType.ITEM_FOOTER;
|
||||
|
||||
@ -116,7 +116,7 @@ public class ArticleAdapter extends BaseRecyclerAdapter {
|
||||
mListener.loadError();
|
||||
}
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.loading_failed_hint));
|
||||
Utils.toast(mContext, R.string.loading_failed_hint);
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ public class ToolsAdapter extends BaseRecyclerAdapter {
|
||||
mListener.loadError();
|
||||
}
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.loading_failed_hint));
|
||||
Utils.toast(mContext, R.string.loading_failed_hint);
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
@ -11,8 +11,10 @@ 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.DataCollectionUtils;
|
||||
import com.gh.common.util.ImageUtils;
|
||||
import com.gh.gamecenter.CleanApkActivity;
|
||||
import com.gh.gamecenter.DataUtils;
|
||||
import com.gh.gamecenter.DownloadManagerActivity;
|
||||
import com.gh.gamecenter.LibaoActivity;
|
||||
import com.gh.gamecenter.NormalActivity;
|
||||
@ -29,7 +31,6 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
import rx.Observable;
|
||||
@ -101,6 +102,9 @@ public class DiscoverFragment extends BaseFragment {
|
||||
switch (view.getId()) {
|
||||
case R.id.discover_game_trends:
|
||||
// TODO 其实把 removeDot 操作放到里面请求到数据以后会更合理准确
|
||||
DataUtils.onEvent(getActivity(), "发现", "游戏动态");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "游戏动态", "发现");
|
||||
|
||||
if (mDiscoverGameUnread.getVisibility() == View.VISIBLE) {
|
||||
mDiscoverGameUnread.setVisibility(View.GONE);
|
||||
EventBus.getDefault().post(new EBReuse(HIDE_DISCOVERY_DOT));
|
||||
@ -109,16 +113,27 @@ public class DiscoverFragment extends BaseFragment {
|
||||
NormalActivity.startFragment(getContext(), ConcernFragment.class);
|
||||
break;
|
||||
case R.id.discover_info:
|
||||
DataUtils.onEvent(getActivity(), "发现", "资讯中心");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "资讯中心", "发现");
|
||||
|
||||
NormalActivity.startFragment(getContext(), InfoWrapperFragment.class);
|
||||
break;
|
||||
case R.id.discover_libao:
|
||||
DataUtils.onEvent(getActivity(), "发现", "礼包中心");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "礼包中心", "发现");
|
||||
|
||||
Intent intent = LibaoActivity.getIntent(getContext(), "(发现:礼包)");
|
||||
startActivity(intent);
|
||||
break;
|
||||
case R.id.discover_kuaichuan:
|
||||
DataUtils.onEvent(getActivity(), "发现", "免流量传送");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "免流量传送", "发现");
|
||||
|
||||
startActivity(DownloadManagerActivity.getDownloadMangerIntent(getContext(), 2, "(发现:免流量传送)"));
|
||||
break;
|
||||
case R.id.discover_apk_cleaner:
|
||||
DataUtils.onEvent(getActivity(), "发现", "安装包清理");
|
||||
DataCollectionUtils.uploadClick(getActivity(), "安装包清理", "发现");
|
||||
startActivity(CleanApkActivity.getIntent(getContext()));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -182,10 +182,6 @@ public class GameDownloadFragment extends BaseFragment implements View.OnClickLi
|
||||
super.initView(view);
|
||||
String path = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_PATH);
|
||||
url = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_URL);
|
||||
if (getActivity().getIntent().getBundleExtra(EntranceUtils.KEY_DATA) != null) {
|
||||
path = getActivity().getIntent().getBundleExtra(EntranceUtils.KEY_DATA).getString(EntranceUtils.KEY_PATH);
|
||||
url = getActivity().getIntent().getBundleExtra(EntranceUtils.KEY_DATA).getString(EntranceUtils.KEY_URL);
|
||||
}
|
||||
|
||||
isScroll = false;
|
||||
|
||||
|
||||
@ -291,7 +291,7 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
showPluginDialog(downloadEntity.getPath());
|
||||
} else {
|
||||
if (FileUtils.isEmptyFile(path)) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.install_failure_hint));
|
||||
Utils.toast(mContext, R.string.install_failure_hint);
|
||||
removeDownload(downloadEntity);
|
||||
} else {
|
||||
if (downloadEntity.getName().contains("光环助手")) {
|
||||
@ -431,13 +431,13 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
|
||||
public void startAll(DownloadHeadViewHolder viewHolder) {
|
||||
for (DownloadEntity downloadEntity : downloadingList) {
|
||||
// DownloadManager.getInstance(mContext).put(downloadEntity.getUrl(),
|
||||
// System.currentTimeMillis());
|
||||
// Message msg = Message.obtain();
|
||||
// msg.what = DownloadConfig.CONTINUE_DOWNLOAD_TASK;
|
||||
// msg.obj = downloadEntity.getUrl();
|
||||
// DownloadManager.getInstance(mContext).sendMessageDelayed(msg, 1000);
|
||||
DownloadManager.getInstance(mContext).add(downloadEntity);
|
||||
DownloadManager.getInstance(mContext).put(downloadEntity.getUrl(),
|
||||
System.currentTimeMillis());
|
||||
Message msg = Message.obtain();
|
||||
msg.what = DownloadConfig.CONTINUE_DOWNLOAD_TASK;
|
||||
msg.obj = downloadEntity.getUrl();
|
||||
DownloadManager.getInstance(mContext).sendMessageDelayed(msg, 1000);
|
||||
// DownloadManager.getInstance(mContext).add(downloadEntity);
|
||||
statusMap.put(downloadEntity.getUrl(), "downloading");
|
||||
}
|
||||
|
||||
@ -485,7 +485,7 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
}
|
||||
|
||||
if (FileUtils.isEmptyFile(path)) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.install_failure_hint));
|
||||
Utils.toast(mContext, R.string.install_failure_hint);
|
||||
} else {
|
||||
mContext.startActivity(PackageUtils.getUninstallIntent(mContext, path));
|
||||
}
|
||||
|
||||
@ -54,10 +54,6 @@ public class GameUpdateFragment extends BaseFragment {
|
||||
Intent intent = getActivity().getIntent();
|
||||
String packageName = intent.getStringExtra("packageName");
|
||||
boolean isUpdate = intent.getBooleanExtra("isPushIntent", false);
|
||||
if (intent.getBundleExtra(EntranceUtils.KEY_DATA) != null) {
|
||||
packageName = intent.getBundleExtra(EntranceUtils.KEY_DATA).getString("packageName");
|
||||
isUpdate = intent.getBundleExtra(EntranceUtils.KEY_DATA).getBoolean("isPushIntent", false);
|
||||
}
|
||||
String entrance = intent.getStringExtra(EntranceUtils.KEY_ENTRANCE);
|
||||
|
||||
mGameUpdateLoading = (LinearLayout) view.findViewById(R.id.gameupdate_ll_loading);
|
||||
|
||||
@ -11,7 +11,6 @@ import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
|
||||
import com.gh.base.OnRequestCallBackListener;
|
||||
import com.gh.base.fragment.BaseFragment;
|
||||
import com.gh.common.util.ApkActiveUtils;
|
||||
import com.gh.common.util.DownloadItemUtils;
|
||||
import com.gh.download.DownloadManager;
|
||||
import com.gh.gamecenter.MainActivity;
|
||||
@ -80,7 +79,7 @@ public class GameFragment extends BaseFragment implements SwipeRefreshLayout.OnR
|
||||
for (Integer locationPlugin : locationPluginList) {
|
||||
gameEntity = adapter.getPluginList().get(locationPlugin);
|
||||
RecyclerView.Adapter<? extends RecyclerView.ViewHolder> pluginAdapter = adapter.getPluginAdapter();
|
||||
if (gameEntity != null && pluginAdapter != null ) {
|
||||
if (gameEntity != null && pluginAdapter != null) {
|
||||
DownloadItemUtils.processDate(getActivity(), gameEntity,
|
||||
downloadEntity, pluginAdapter, locationPlugin);
|
||||
}
|
||||
@ -224,48 +223,46 @@ public class GameFragment extends BaseFragment implements SwipeRefreshLayout.OnR
|
||||
if (locationList != null) {
|
||||
GameEntity gameEntity;
|
||||
for (int location : locationList) {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if (gameEntity != null) {
|
||||
ApkActiveUtils.filterHideApk(gameEntity);
|
||||
if (gameEntity.isPluggable()) {
|
||||
// 插件化列表
|
||||
if ("安装".equals(busFour.getType()) || "卸载".equals(busFour.getType())) {
|
||||
List<GameEntity> list = adapter.getPluginList();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
final GameEntity entity = list.get(i);
|
||||
final ArrayList<ApkEntity> apkEntities = entity.getApk();
|
||||
final ApkEntity normalApkEntity = apkEntities.get(0);
|
||||
if (location == 1) {
|
||||
List<GameEntity> pluginList = adapter.getPluginList();
|
||||
for (int i = 0; i < pluginList.size(); i++) {
|
||||
final GameEntity entity = pluginList.get(i);
|
||||
final ArrayList<ApkEntity> apkEntities = entity.getApk();
|
||||
final ApkEntity pluginApkEntity = apkEntities.get(0);
|
||||
|
||||
if (normalApkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
// 安装完成 插件化区域消失
|
||||
list.remove(i);
|
||||
if (list.isEmpty()) {
|
||||
adapter.initItemCount();
|
||||
adapter.notifyItemRemoved(1);
|
||||
} else {
|
||||
adapter.initPlugin();
|
||||
adapter.initLocationMap();
|
||||
adapter.notifyItemChanged(1);
|
||||
}
|
||||
// }
|
||||
break;
|
||||
if (pluginApkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if ("卸载".equals(busFour.getType()) && // 插件化过程中 卸载卸载原包后 更新下载按钮
|
||||
DownloadManager.getInstance(getContext()).getDownloadEntityByUrl(pluginApkEntity.getUrl()) != null) {
|
||||
adapter.notifyItemChanged(1);
|
||||
} else {
|
||||
// 安装完成 插件化区域消失
|
||||
pluginList.remove(i);
|
||||
if (pluginList.isEmpty()) {
|
||||
adapter.initItemCount();
|
||||
adapter.notifyItemRemoved(1);
|
||||
} else {
|
||||
adapter.initPlugin();
|
||||
adapter.initLocationMap();
|
||||
adapter.notifyItemChanged(1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if ("安装".equals(busFour.getType())) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
if (apkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
gameEntity = adapter.getGameEntityByLocation(location);
|
||||
if ("安装".equals(busFour.getType())) {
|
||||
for (ApkEntity apkEntity : gameEntity.getApk()) {
|
||||
if (apkEntity.getPackageName().equals(busFour.getPackageName())) {
|
||||
if (gameEntity.getEntryMap() != null) {
|
||||
gameEntity.getEntryMap().remove(apkEntity.getPlatform());
|
||||
}
|
||||
adapter.notifyItemChanged(location);
|
||||
break;
|
||||
}
|
||||
} else if ("卸载".equals(busFour.getType())) {
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
} else if ("卸载".equals(busFour.getType())) {
|
||||
adapter.notifyItemChanged(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.gh.gamecenter.fragment;
|
||||
|
||||
import android.arch.lifecycle.Lifecycle;
|
||||
import android.arch.lifecycle.Observer;
|
||||
import android.arch.lifecycle.ViewModelProviders;
|
||||
import android.content.Intent;
|
||||
@ -28,6 +29,7 @@ import com.gh.gamecenter.login.LoginTag;
|
||||
import com.gh.gamecenter.login.UserViewModel;
|
||||
import com.gh.gamecenter.normal.NormalFragment;
|
||||
import com.gh.gamecenter.personal.PersonalFragment;
|
||||
import com.halo.assistant.HaloApp;
|
||||
import com.tencent.connect.common.Constants;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@ -104,8 +106,7 @@ public class LoginFragment extends NormalFragment implements LoginUtils.onCaptch
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setNavigationTitle("登录光环助手");
|
||||
|
||||
final UserViewModel.Factory factory = new UserViewModel.Factory(getActivity().getApplication());
|
||||
final UserViewModel.Factory factory = new UserViewModel.Factory(HaloApp.getInstance().getApplication());
|
||||
mUserViewModel = ViewModelProviders.of(this, factory).get(UserViewModel.class);
|
||||
mUserViewModel.getLoginObsUserinfo().observe(this, this);
|
||||
|
||||
@ -205,7 +206,7 @@ public class LoginFragment extends NormalFragment implements LoginUtils.onCaptch
|
||||
|
||||
if (response != null && response.getData() != null && mLoginDialog != null) {
|
||||
EventBus.getDefault().post(new EBReuse(PersonalFragment.LOGIN_TAG));
|
||||
getActivity().finish();
|
||||
if (getActivity() != null) getActivity().finish();
|
||||
}
|
||||
}
|
||||
|
||||
@ -217,8 +218,10 @@ public class LoginFragment extends NormalFragment implements LoginUtils.onCaptch
|
||||
|
||||
|
||||
private void login(JSONObject content, LoginTag loginTag) {
|
||||
mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging));
|
||||
mLoginDialog.show(getChildFragmentManager(), null);
|
||||
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
|
||||
mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging));
|
||||
mLoginDialog.show(getChildFragmentManager(), null);
|
||||
}
|
||||
mUserViewModel.login(content, loginTag);
|
||||
}
|
||||
|
||||
|
||||
@ -65,7 +65,7 @@ import rx.schedulers.Schedulers;
|
||||
* Created by CsHeng on 19/12/2017.
|
||||
* \游戏详情适配器
|
||||
*/
|
||||
public class GameDetailFragment extends NormalFragment implements View.OnTouchListener {
|
||||
public class GameDetailFragment extends NormalFragment {
|
||||
|
||||
|
||||
public static final int INDEX_DYNAMIC = 0;
|
||||
@ -157,10 +157,6 @@ public class GameDetailFragment extends NormalFragment implements View.OnTouchLi
|
||||
|
||||
mGameId = args.getString(EntranceUtils.KEY_GAMEID);
|
||||
mEntrance = args.getString(EntranceUtils.KEY_ENTRANCE);
|
||||
Bundle data = args.getBundle(EntranceUtils.KEY_DATA);
|
||||
if (data != null) {
|
||||
mGameId = data.getString(EntranceUtils.KEY_GAMEID);
|
||||
}
|
||||
|
||||
if (mGameId == null) {
|
||||
mGameEntity = args.getParcelable(GameEntity.TAG);
|
||||
@ -417,16 +413,15 @@ public class GameDetailFragment extends NormalFragment implements View.OnTouchLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouch(View view, MotionEvent motionEvent) {
|
||||
switch (motionEvent.getAction()) {
|
||||
public void onTouchEvent(MotionEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
mIsTouchScreen = true;
|
||||
return true;
|
||||
break;
|
||||
case MotionEvent.ACTION_UP:
|
||||
mIsTouchScreen = false;
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
||||
@ -62,7 +62,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
private String suggestTime;
|
||||
private String gameName;
|
||||
|
||||
private List<CalendarEntity> curDayData;
|
||||
private List<CalendarEntity> mCurDayData;
|
||||
private List<KaiFuServerEntity> mServerList;
|
||||
|
||||
private GameDetailKaiFuViewHolder viewHolder;
|
||||
@ -84,7 +84,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
isNextMonth = false;
|
||||
isExistCurServer = false;
|
||||
|
||||
curDayData = new ArrayList<>();
|
||||
mCurDayData = new ArrayList<>();
|
||||
|
||||
checkExistCurSerer();
|
||||
|
||||
@ -211,6 +211,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
|
||||
@Override
|
||||
public void call(Subscriber<? super Integer> subscriber) {
|
||||
List<CalendarEntity> curDayData = new ArrayList<>();
|
||||
// 获取当前 年-月
|
||||
long curDate = System.currentTimeMillis();
|
||||
SimpleDateFormat formatYear = new SimpleDateFormat("yyyy", Locale.CHINA);
|
||||
@ -224,7 +225,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
isNextMonth = true;
|
||||
if (curMonth == 12) {
|
||||
curMonth = 1;
|
||||
curYear ++;
|
||||
curYear++;
|
||||
} else {
|
||||
curMonth = curMonth + 1;
|
||||
}
|
||||
@ -242,7 +243,6 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
if (curWeek == 1) {
|
||||
curWeek = 8;
|
||||
}
|
||||
curDayData.clear();
|
||||
int day = 0;
|
||||
for (int i = 1; i <= 49; i++) {
|
||||
CalendarEntity entity = new CalendarEntity();
|
||||
@ -281,6 +281,8 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
}
|
||||
}
|
||||
|
||||
mCurDayData.clear();
|
||||
mCurDayData.addAll(curDayData);
|
||||
subscriber.onNext(0);
|
||||
subscriber.onCompleted();
|
||||
}
|
||||
@ -295,7 +297,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
notifyDataSetChanged();
|
||||
} else if (response == 1) {
|
||||
ViewGroup.LayoutParams params = viewHolder.kaifuRl.getLayoutParams();
|
||||
params.height = ((curDayData.size() / 7) - 1) * DisplayUtils.dip2px(mContext, 46)
|
||||
params.height = ((mCurDayData.size() / 7) - 1) * DisplayUtils.dip2px(mContext, 46)
|
||||
+ DisplayUtils.dip2px(mContext, 26);
|
||||
viewHolder.kaifuRl.setLayoutParams(params);
|
||||
}
|
||||
@ -350,7 +352,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
((WeekViewHolder) holder).week.setText(week[position]);
|
||||
} else if (holder instanceof GameDetailCalenderViewHolder) {
|
||||
GameDetailCalenderViewHolder viewHolder = (GameDetailCalenderViewHolder) holder;
|
||||
final CalendarEntity entity = curDayData.get(position - 6);
|
||||
final CalendarEntity entity = mCurDayData.get(position - 6);
|
||||
if (entity.getDay() != -1) {
|
||||
int day = entity.getDay();
|
||||
if (day == curDay && !isNextMonth) {
|
||||
@ -377,6 +379,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
for (int i = 0; i < server.size(); i++) {
|
||||
KaiFuServerEntity serverEntity = server.get(i);
|
||||
String type = serverEntity.getType();
|
||||
if (type == null) break;
|
||||
switch (type) {
|
||||
case "删档内测":
|
||||
serverEntity.setOrder(2);
|
||||
@ -470,7 +473,7 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return curDayData.size();
|
||||
return mCurDayData.size();
|
||||
}
|
||||
|
||||
private void initKaifuDetail(CalendarEntity entity) {
|
||||
|
||||
@ -155,7 +155,7 @@ class ConcernAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
listener.loadError();
|
||||
}
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.loading_failed_hint));
|
||||
Utils.toast(mContext, R.string.loading_failed_hint);
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
@ -231,7 +231,7 @@ public class ConcernFragment extends NormalFragment implements SwipeRefreshLayou
|
||||
List<Observable<GameEntity>> sequences = new ArrayList<>();
|
||||
for (int i = 0, size = installedList.size() + 1; i < size; i++) {
|
||||
if (i == size - 1) {
|
||||
sequences.add(RetrofitManager.getInstance(getContext()).getApi().getGameDigest(getContext().getString(R.string.ghzs_id)));// 光环助手ID
|
||||
sequences.add(RetrofitManager.getInstance(getContext()).getApi().getGameDigest(getString(R.string.ghzs_id)));// 光环助手ID
|
||||
} else {
|
||||
sequences.add(RetrofitManager.getInstance(getContext()).getApi().getGameDigest(installedList.get(i).getId()));
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ class InfoAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
listener.loadError();
|
||||
}
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.loading_failed_hint));
|
||||
Utils.toast(mContext, R.string.loading_failed_hint);
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ public class InfoWrapperFragment extends BaseFragment_ViewPager_Checkable {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
setNavigationTitle(getString(R.string.info_center_title));
|
||||
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (mCheckedIndex + 0.25));
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (mCheckedIndex + 0.25f));
|
||||
mNewsSlidebarLine.setLayoutParams(mLayoutParams);
|
||||
|
||||
view.postDelayed(new Runnable() {
|
||||
@ -104,7 +104,7 @@ public class InfoWrapperFragment extends BaseFragment_ViewPager_Checkable {
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||
if (positionOffset != 0) {
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (position + positionOffset + 0.25));
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (position + positionOffset + 0.25f));
|
||||
mNewsSlidebarLine.setLayoutParams(mLayoutParams);
|
||||
}
|
||||
}
|
||||
|
||||
@ -271,7 +271,7 @@ class OriginalAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
listener.loadError();
|
||||
}
|
||||
} else {
|
||||
Utils.toast(mContext, mContext.getString(R.string.loading_failed_hint));
|
||||
Utils.toast(mContext, R.string.loading_failed_hint);
|
||||
isNetworkError = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ import com.gh.gamecenter.entity.KaiFuServerEntity;
|
||||
import com.gh.gamecenter.eventbus.EBDownloadStatus;
|
||||
import com.lightgame.download.DataWatcher;
|
||||
import com.lightgame.download.DownloadEntity;
|
||||
import com.lightgame.utils.Utils;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
@ -257,7 +256,7 @@ public class KaiFuVpFragment extends BaseFragment {
|
||||
@Override
|
||||
public void loadError() {
|
||||
super.loadError();
|
||||
Utils.toast(getContext(), getContext().getString(R.string.loading_failed_hint));
|
||||
toast(R.string.loading_failed_hint);
|
||||
mNoConn.setVisibility(View.VISIBLE);
|
||||
mNoneData.setVisibility(View.GONE);
|
||||
mLoading.setVisibility(View.GONE);
|
||||
|
||||
@ -32,29 +32,6 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
return R.layout.fragment_kaifu_wrapper;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
// super.onCreateOptionsMenu(menu, inflater);
|
||||
// inflater.inflate(R.menu.menu_button, menu);
|
||||
// mResetMenuItem = menu.findItem(R.id.menu_button);
|
||||
// mResetMenuItem.setTitle(R.string.menu_text_reset);
|
||||
// mResetMenuItem.setVisible(false);
|
||||
// final TextView textView = mResetMenuItem.getActionView().findViewById(R.id.tv_menu_button);
|
||||
// textView.setText(R.string.menu_text_reset);
|
||||
// textView.setOnClickListener(this);
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// protected boolean handleOnClick(View view) {
|
||||
// switch (view.getId()) {
|
||||
// case R.id.tv_menu_button:
|
||||
// resetFragment();
|
||||
// return true;
|
||||
//
|
||||
// }
|
||||
// return super.handleOnClick(view);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onMenuItemClick(MenuItem menuItem) {
|
||||
super.onMenuItemClick(menuItem);
|
||||
@ -71,10 +48,12 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
|
||||
initMenu(R.menu.menu_button);
|
||||
mResetMenuItem = getItemMenu(R.id.menu_button);
|
||||
mResetMenuItem.setTitle(R.string.menu_text_reset);
|
||||
mResetMenuItem.setVisible(false);
|
||||
final TextView textView = mResetMenuItem.getActionView().findViewById(R.id.tv_menu_button);
|
||||
textView.setText(R.string.menu_text_reset);
|
||||
if (mResetMenuItem != null) {
|
||||
mResetMenuItem.setTitle(R.string.menu_text_reset);
|
||||
mResetMenuItem.setVisible(false);
|
||||
final TextView textView = mResetMenuItem.getActionView().findViewById(R.id.tv_menu_button);
|
||||
textView.setText(R.string.menu_text_reset);
|
||||
}
|
||||
|
||||
|
||||
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
|
||||
@ -91,7 +70,7 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
|
||||
fragmentTransaction.remove(mGameKaiFuFragment);
|
||||
fragmentTransaction.show(mKaiFuFragment);
|
||||
fragmentTransaction.commit();
|
||||
fragmentTransaction.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
|
||||
@ -112,7 +91,7 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
mGameKaiFuFragment.setArguments(args);
|
||||
|
||||
fragmentTransaction.add(R.id.layout_fragment_content, mGameKaiFuFragment, KaiFuFragment.class.getSimpleName());
|
||||
fragmentTransaction.commit();
|
||||
fragmentTransaction.commitAllowingStateLoss();
|
||||
} else if (ALL_GAME_KAIFU.equals(reset.getControl())) {
|
||||
resetFragment();
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.gh.gamecenter.libao;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.v4.app.Fragment;
|
||||
@ -31,7 +30,7 @@ import butterknife.OnClick;
|
||||
* Created by khy on 5/09/17.
|
||||
*/
|
||||
|
||||
public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, View.OnTouchListener {
|
||||
public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener{
|
||||
|
||||
@BindView(R.id.libao_appbar)
|
||||
AppBarLayout mAppBar;
|
||||
@ -92,12 +91,6 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
view.setOnTouchListener(this);
|
||||
}
|
||||
|
||||
private void changeFragment() {
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
hideFragments(transaction);
|
||||
@ -107,7 +100,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O
|
||||
mNewFragment = alterFragment(transaction, LibaoNewFragment.class);
|
||||
}
|
||||
|
||||
transaction.commit();
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
private <T extends Fragment> T alterFragment(FragmentTransaction transaction, Class<T> cls) {
|
||||
@ -184,8 +177,7 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouch(View view, MotionEvent motionEvent) {
|
||||
public void onTouchEvent( MotionEvent motionEvent) {
|
||||
switch (motionEvent.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
mIsTouchScreen = true;
|
||||
@ -194,7 +186,6 @@ public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.O
|
||||
mIsTouchScreen = false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
@ -96,7 +97,7 @@ public class LibaoWrapperFragment extends NormalFragment implements View.OnClick
|
||||
getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
|
||||
mWidth = outMetrics.widthPixels / 3;
|
||||
mLayoutParams = new LinearLayout.LayoutParams(mWidth / 2, DisplayUtils.dip2px(getContext(), 2));
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (mCurrentItem + 0.25));
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (mCurrentItem + 0.25f));
|
||||
mLibaoLine.setLayoutParams(mLayoutParams);
|
||||
|
||||
mLibaoTopLl.postDelayed(new Runnable() {
|
||||
@ -122,7 +123,7 @@ public class LibaoWrapperFragment extends NormalFragment implements View.OnClick
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
if (positionOffset != 0) {
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (position + positionOffset + 0.25));
|
||||
mLayoutParams.leftMargin = RandomUtils.getInt(mWidth * (position + positionOffset + 0.25f));
|
||||
mLibaoLine.setLayoutParams(mLayoutParams);
|
||||
} else {
|
||||
if (mCurrentItem != mLibaoVp.getCurrentItem()) {
|
||||
@ -175,4 +176,8 @@ public class LibaoWrapperFragment extends NormalFragment implements View.OnClick
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTouchEvent(MotionEvent event) {
|
||||
if (mLibao1Fragment != null) mLibao1Fragment.onTouchEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
@ -223,7 +223,7 @@ class UserRepository {
|
||||
if (LoginTag.qq.equals(loginTag)) {
|
||||
GetLoginDataUtils.getInstance(mContext).QQLogout();
|
||||
}
|
||||
Utils.toast(mContext, mContext.getString(R.string.login_failure_hint));
|
||||
Utils.toast(mContext, R.string.login_failure_hint);
|
||||
|
||||
if (CommonDebug.IS_DEBUG) {
|
||||
ResponseBody responseBody = httpException.response().errorBody();
|
||||
@ -411,7 +411,7 @@ class UserRepository {
|
||||
public void onResponse(UserInfoEntity response) {
|
||||
super.onResponse(response);
|
||||
if (loginTag != null) {
|
||||
Utils.toast(mContext, mContext.getString(R.string.login_success));
|
||||
Utils.toast(mContext, R.string.login_success);
|
||||
}
|
||||
response.setId(mCachedId);
|
||||
userInfoHandle(response, false);
|
||||
|
||||
@ -255,6 +255,8 @@ public class KeFuFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
viewHolder.kefuName.setText(name);
|
||||
}
|
||||
ImageUtils.Companion.display(viewHolder.kefuIcon, serviceEntity.getIcon());
|
||||
} else {
|
||||
ImageUtils.Companion.display(viewHolder.kefuIcon, R.drawable.message_kefu_icon);
|
||||
}
|
||||
|
||||
CommentUtils.setCommentTime(viewHolder.time, keFuEntity.getTime());
|
||||
|
||||
@ -17,7 +17,6 @@ import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.gh.base.fragment.BaseFragment;
|
||||
import com.gh.common.constant.Config;
|
||||
import com.gh.common.util.CheckLoginUtils;
|
||||
import com.gh.common.util.DialogUtils;
|
||||
@ -37,6 +36,7 @@ import com.gh.gamecenter.entity.ViewsEntity;
|
||||
import com.gh.gamecenter.eventbus.EBReuse;
|
||||
import com.gh.gamecenter.manager.CommentManager;
|
||||
import com.gh.gamecenter.manager.UserManager;
|
||||
import com.gh.gamecenter.normal.NormalFragment;
|
||||
import com.gh.gamecenter.retrofit.OkHttpCache;
|
||||
import com.gh.gamecenter.retrofit.Response;
|
||||
import com.gh.gamecenter.retrofit.RetrofitManager;
|
||||
@ -67,7 +67,7 @@ import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG;
|
||||
* Created by CsHeng on 18/12/2017.
|
||||
* 消息详情界面--评论详情--对话详情
|
||||
*/
|
||||
public class MessageDetailFragment extends BaseFragment implements OnCommentCallBackListener, OnBackPressedListener {
|
||||
public class MessageDetailFragment extends NormalFragment implements OnCommentCallBackListener, OnBackPressedListener {
|
||||
|
||||
public static final int REQUEST_UPDATE_COMMENT = 9; // 刷新文章web页面评论数
|
||||
|
||||
@ -124,6 +124,7 @@ public class MessageDetailFragment extends BaseFragment implements OnCommentCall
|
||||
mMessageDetailEt.setText("");
|
||||
String newText = s.toString().substring(0, 140);
|
||||
mMessageDetailEt.setText(newText);
|
||||
mMessageDetailEt.setSelection(mMessageDetailEt.getText().length());
|
||||
Utils.toast(getContext(), "评论不能多于140字");
|
||||
}
|
||||
} else {
|
||||
@ -420,20 +421,20 @@ public class MessageDetailFragment extends BaseFragment implements OnCommentCall
|
||||
String detail = errorJson.getString("detail");
|
||||
switch (detail) {
|
||||
case "too frequent":
|
||||
toast(getString(R.string.comment_failed_toofrequent));
|
||||
toast(R.string.comment_failed_toofrequent);
|
||||
break;
|
||||
case "user blocked":
|
||||
toast(getString(R.string.comment_failed_userblocked));
|
||||
toast(R.string.comment_failed_userblocked);
|
||||
break;
|
||||
case "article blocked":
|
||||
toast(getString(R.string.comment_failed_articleblocked));
|
||||
toast(R.string.comment_failed_articleblocked);
|
||||
setSoftInput(false);
|
||||
break;
|
||||
case "illegal":
|
||||
toast(getString(R.string.comment_failed_illegal));
|
||||
toast(R.string.comment_failed_illegal);
|
||||
break;
|
||||
default:
|
||||
toast(getString(R.string.comment_failed_unknown));
|
||||
toast(R.string.comment_failed_unknown);
|
||||
break;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
@ -444,7 +445,7 @@ public class MessageDetailFragment extends BaseFragment implements OnCommentCall
|
||||
}
|
||||
}
|
||||
|
||||
toast(getString(R.string.post_failure_hint));
|
||||
toast(R.string.post_failure_hint);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -511,8 +512,10 @@ public class MessageDetailFragment extends BaseFragment implements OnCommentCall
|
||||
&& commentNum != adapter.getConcernEntity().getCommentnum()) {
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("commentNum", adapter.getConcernEntity().getCommentnum());
|
||||
getActivity().setResult(Activity.RESULT_OK, intent);
|
||||
getActivity().finish();
|
||||
if (getActivity() != null) {
|
||||
getActivity().setResult(Activity.RESULT_OK, intent);
|
||||
getActivity().finish();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@ -12,31 +12,21 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
|
||||
import com.gh.gamecenter.baselist.ListAdapter;
|
||||
import com.gh.gamecenter.entity.MessageEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by khy on 2017/4/10.
|
||||
* 消息-评论适配器
|
||||
*/
|
||||
public class MessageFragmentAdapter extends ListAdapter {
|
||||
public class MessageFragmentAdapter extends ListAdapter<MessageEntity> {
|
||||
|
||||
private OnListClickListener mClickListener;
|
||||
|
||||
|
||||
private List<MessageEntity> mEntityList;
|
||||
|
||||
public MessageFragmentAdapter(Context context, OnListClickListener clickListener) {
|
||||
super(context);
|
||||
|
||||
mClickListener = clickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <T> void provideListData(List<T> listData) {
|
||||
mEntityList = (List<MessageEntity>) listData;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View view;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.gh.gamecenter.message;
|
||||
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
@ -103,6 +104,8 @@ public class MessageItemVieHolder extends BaseRecyclerViewHolder {
|
||||
ImageUtils.Companion.display(mUserIcon, entity.getUserEntity().getIcon());
|
||||
mUserName.setText(entity.getUserEntity().getName());
|
||||
mTitle.setText(title);
|
||||
mTitle.setEllipsize(TextUtils.TruncateAt.END);
|
||||
mContent.setEllipsize(TextUtils.TruncateAt.END);
|
||||
NewsUtils.setNewsDetailTime(mTime, entity.getTime());
|
||||
|
||||
if (content == null) {
|
||||
|
||||
@ -357,13 +357,13 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
concern.setBackgroundResource(R.drawable.border_red_bg);
|
||||
concern.setTextColor(ContextCompat.getColor(mContext, R.color.red));
|
||||
|
||||
Utils.toast(mContext, mContext.getString(R.string.concern_success));
|
||||
Utils.toast(mContext, R.string.concern_success);
|
||||
viewHolder.gamedetailConcern.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.concern_failure));
|
||||
Utils.toast(mContext, R.string.concern_failure);
|
||||
viewHolder.gamedetailConcern.setEnabled(true);
|
||||
}
|
||||
});
|
||||
@ -399,7 +399,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
Utils.toast(mContext, mContext.getString(R.string.cancel_concern_failure));
|
||||
Utils.toast(mContext, R.string.cancel_concern_failure);
|
||||
viewHolder.gamedetailConcern.setEnabled(true);
|
||||
}
|
||||
});
|
||||
|
||||
@ -4,8 +4,10 @@ import android.os.Bundle;
|
||||
import android.support.annotation.IdRes;
|
||||
import android.support.annotation.MenuRes;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.gh.base.fragment.BaseFragment;
|
||||
import com.gh.common.util.EntranceUtils;
|
||||
@ -29,6 +31,12 @@ public abstract class NormalFragment extends BaseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
protected void setNavigationTitle(@StringRes int title) {
|
||||
if (getActivity() instanceof ToolbarController) {
|
||||
((ToolbarController) getActivity()).setNavigationTitle(title);
|
||||
}
|
||||
}
|
||||
|
||||
protected void initMenu(@MenuRes int res) {
|
||||
if (getActivity() instanceof ToolbarController) {
|
||||
((ToolbarController) getActivity()).setToolbarMenu(res);
|
||||
@ -42,6 +50,10 @@ public abstract class NormalFragment extends BaseFragment {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onTouchEvent(MotionEvent event) {
|
||||
|
||||
}
|
||||
|
||||
public void onMenuItemClick(MenuItem menuItem) {
|
||||
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ public interface ToolbarController {
|
||||
|
||||
void setNavigationTitle(@StringRes int res);
|
||||
|
||||
void setNavigationTitle(CharSequence res);
|
||||
void setNavigationTitle(String res);
|
||||
|
||||
void setToolbarMenu(@MenuRes int res);
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.gh.gamecenter.personal;
|
||||
|
||||
import android.arch.lifecycle.Lifecycle;
|
||||
import android.arch.lifecycle.Observer;
|
||||
import android.arch.lifecycle.ViewModelProviders;
|
||||
import android.content.Context;
|
||||
@ -250,7 +251,7 @@ public class PersonalFragment extends BaseFragment implements Observer<ApiRespon
|
||||
startActivity(SettingActivity.getIntent(getContext(), "(我的光环)"));
|
||||
break;
|
||||
case R.id.personal_ask:
|
||||
CheckLoginUtils.checkLogin(getContext(), ()-> {
|
||||
CheckLoginUtils.checkLogin(getContext(), () -> {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(EntranceUtils.KEY_ENTRANCE, "(我的光环)+(我的问答)");
|
||||
NormalActivity.startFragment(getContext(), MyAskWrapperFragment.class, bundle);
|
||||
@ -345,8 +346,10 @@ public class PersonalFragment extends BaseFragment implements Observer<ApiRespon
|
||||
@Override
|
||||
public void OnLoginData(JSONObject content, LoginTag loginTag) {
|
||||
Utils.log("======获取第三方登录信息成功" + content.toString() + "===" + loginTag.name());
|
||||
mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging));
|
||||
mLoginDialog.show(getChildFragmentManager(), null);
|
||||
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
|
||||
mLoginDialog = WaitingDialogFragment.newInstance(getString(R.string.logging));
|
||||
mLoginDialog.show(getChildFragmentManager(), null);
|
||||
}
|
||||
mUserViewModel.login(content, loginTag);
|
||||
}
|
||||
|
||||
|
||||
@ -10,8 +10,6 @@ import com.gh.common.util.ClassUtils;
|
||||
import com.gh.common.util.RunningUtils;
|
||||
import com.gh.gamecenter.SplashScreenActivity;
|
||||
|
||||
import static com.gh.common.util.EntranceUtils.KEY_DATA;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/9/1.
|
||||
* 光环插件跳转助手
|
||||
@ -32,7 +30,7 @@ public class ActivitySkipReceiver extends BroadcastReceiver {
|
||||
if (clazz != null) {
|
||||
Intent intent1 = new Intent(context, clazz);
|
||||
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
intent1.putExtra(KEY_DATA, bundle);
|
||||
intent1.putExtras(bundle);
|
||||
context.startActivity(intent1);
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user