From eb557ca9bd08c0f564c854957beea7b30f1a4cc4 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 26 Apr 2018 21:57:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=89=E7=8E=AF=E5=8A=A9=E6=89=8BV3.2=20RELE?= =?UTF-8?q?ASE=EF=BC=8820180426-1800=EF=BC=89=E6=B5=8B=E8=AF=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E6=B1=87=E6=80=BB(1.2.9.10)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/common/util/CheckLoginUtils.java | 9 ---- .../com/gh/common/util/EntranceUtils.java | 1 + .../com/gh/gamecenter/AnswerEditActivity.java | 10 ++++ .../gamecenter/ask/myask/MyDraftFragment.java | 2 +- .../questionsdetail/AnswerEditFragment.java | 48 +++++++++++++++++++ .../fragment/SearchToolbarFragment.java | 11 +++-- .../com/gh/gamecenter/login/AppDatabase.java | 17 +++++-- .../gh/gamecenter/login/UserRepository.java | 2 + .../main/res/layout/ask_search_actionbar.xml | 2 +- app/src/main/res/layout/fragment_toolbar.xml | 12 ++--- app/src/main/res/layout/toolbar_search.xml | 2 +- 11 files changed, 89 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java index 7824f1855e..c42e72573a 100644 --- a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java +++ b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java @@ -5,11 +5,7 @@ import android.content.Intent; import android.text.TextUtils; import com.gh.gamecenter.LoginActivity; -import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.personal.PersonalFragment; - -import org.greenrobot.eventbus.EventBus; /** * Created by khy on 28/06/17. @@ -20,11 +16,6 @@ public class CheckLoginUtils { public static void checkLogin(final Context context, OnLoginListener listener) { // String token = LoginUtils.getToken(context); if (TextUtils.isEmpty(UserManager.getInstance().getToken())) { - // 验证登录真实性 - if (!TextUtils.isEmpty(UserManager.getInstance().getTokenId(context))) { - EventBus.getDefault().post(new EBReuse(PersonalFragment.LOGIN_RETRY)); - return; - } AskLogUtils.login(context, "dialog", null); DialogUtils.showWarningDialog(context, "登录提示", "需要登录才能使用该功能喔!", "取消", "快速登录", new DialogUtils.ConfirmListener() { diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index 2609014c1f..5ea7dbdd24 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -72,6 +72,7 @@ public class EntranceUtils { public static final String KEY_SHOW_ANSWER_COMMENT = "showAnswerComment"; public static final String KEY_VERSION_UPDATE = "versionUpdate"; public static final String KEY_CHECK_QUESTION_CONCERN = "check_question_concern"; + public static final String KEY_DRAFT_ID = "draft_id"; public static void jumpActivity(Context context, Bundle bundle) { diff --git a/app/src/main/java/com/gh/gamecenter/AnswerEditActivity.java b/app/src/main/java/com/gh/gamecenter/AnswerEditActivity.java index 0a2257de75..0a54cc53b0 100644 --- a/app/src/main/java/com/gh/gamecenter/AnswerEditActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AnswerEditActivity.java @@ -21,6 +21,16 @@ public class AnswerEditActivity extends NormalActivity { return getTargetIntent(context, AnswerEditActivity.class, AnswerEditFragment.class, bundle); } + + public static Intent getIntent(Context context, String questionId, String questionTitle, String draftId, boolean showInNewPage) { + Bundle bundle = new Bundle(); + bundle.putString(EntranceUtils.KEY_QUESTIONS_ID, questionId); + bundle.putString(EntranceUtils.KEY_QUESTIONS_TITLE, questionTitle); + bundle.putBoolean(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage); + bundle.putString(EntranceUtils.KEY_DRAFT_ID, draftId); + return getTargetIntent(context, AnswerEditActivity.class, AnswerEditFragment.class, bundle); + } + public static Intent getIntent(Context context, String questionId, String questionTitle) { Bundle bundle = new Bundle(); bundle.putString(EntranceUtils.KEY_QUESTIONS_ID, questionId); diff --git a/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftFragment.java b/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftFragment.java index 616415f34f..ff0149ae1c 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/myask/MyDraftFragment.java @@ -87,7 +87,7 @@ public class MyDraftFragment extends ListFragment { + deleteAnswerDraft(); + }, () -> { + if (getActivity() != null) { + getActivity().finish(); + } + }); + return; + } + } catch (JSONException e1) { + e1.printStackTrace(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } if (LoginUtils.userPostErrorToast(e, getContext(), false)) return; toast("提交失败"); AskErrorResponseUtils.errorResponseControl(getContext(), e); @@ -313,6 +340,27 @@ public class AnswerEditFragment extends NormalFragment { }); } + void deleteAnswerDraft() { + RetrofitManager.getInstance(getContext()).getApi() + .deleteAnswerDrafts(UserManager.getInstance().getUserId(), mDraftId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Response() { + @Override + public void onResponse(ResponseBody response) { + if (getActivity() != null) { + getActivity().setResult(Activity.RESULT_OK); + getActivity().finish(); + } + } + + @Override + public void onFailure(HttpException e) { + toast(R.string.loading_network_error); + } + }); + } + @Override public boolean onBackPressed() { diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index bf6fcec93d..e534b023e9 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -18,6 +18,7 @@ import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; +import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.ConcernActivity; @@ -182,10 +183,10 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mDownloadView.getLayoutParams(); if (Config.isShow()) { mDownloadView.setVisibility(View.VISIBLE); - layoutParams.weight = 1.3f; + layoutParams.width = DisplayUtils.dip2px(getContext(), 50); } else { mDownloadView.setVisibility(View.INVISIBLE); - layoutParams.weight = 0.4f; + layoutParams.width = DisplayUtils.dip2px(getContext(), 20); } int updateSize = PackageManager.getUpdateListSize(); @@ -247,10 +248,10 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mDownloadView.getLayoutParams(); if (Config.isShow()) { mDownloadView.setVisibility(View.VISIBLE); - layoutParams.weight = 1.3f; + layoutParams.width = DisplayUtils.dip2px(getContext(), 50); } else { - mDownloadView.setVisibility(View.GONE); - layoutParams.weight = 0.4f; + mDownloadView.setVisibility(View.INVISIBLE); + layoutParams.width = DisplayUtils.dip2px(getContext(), 20); } mDownloadView.setLayoutParams(layoutParams); } diff --git a/app/src/main/java/com/gh/gamecenter/login/AppDatabase.java b/app/src/main/java/com/gh/gamecenter/login/AppDatabase.java index 66c5ad571b..0845a40f9b 100644 --- a/app/src/main/java/com/gh/gamecenter/login/AppDatabase.java +++ b/app/src/main/java/com/gh/gamecenter/login/AppDatabase.java @@ -1,8 +1,10 @@ package com.gh.gamecenter.login; +import android.arch.persistence.db.SupportSQLiteDatabase; import android.arch.persistence.room.Database; import android.arch.persistence.room.Room; import android.arch.persistence.room.RoomDatabase; +import android.arch.persistence.room.migration.Migration; import android.content.Context; import com.gh.gamecenter.ask.entity.AnswerEntity; @@ -15,7 +17,7 @@ import com.gh.gamecenter.room.dao.SignDao; /** * Created by khy on 28/11/17. */ -@Database(entities = {LoginTokenEntity.class, UserInfoEntity.class, SignEntity.class, AnswerEntity.class}, version = 4, exportSchema = false) +@Database(entities = {LoginTokenEntity.class, UserInfoEntity.class, SignEntity.class, AnswerEntity.class}, version = 3, exportSchema = false) public abstract class AppDatabase extends RoomDatabase { public abstract AnswerDao answerDao(); @@ -43,12 +45,21 @@ public abstract class AppDatabase extends RoomDatabase { return sInstance; } + static final Migration MIGRATION_2_3 = new Migration(2, 3) { + @Override + public void migrate(SupportSQLiteDatabase database) { + database.execSQL("CREATE TABLE SignEntity(id TEXT NOT NULL PRIMARY KEY, experience INTEGER NOT NULL, serialSign INTEGER NOT NULL, coefficients INTEGER NOT NULL, lastTime INTEGER NOT NULL, title TEXT, data TEXT)"); + database.execSQL("CREATE TABLE AnswerEntity(primaryKey TEXT NOT NULL PRIMARY KEY, communityId TEXT, orderTag INTEGER NOT NULL, id TEXT, sequenceId TEXT, brief TEXT, images TEXT NOT NULL, vote INTEGER NOT NULL, user TEXT NOT NULL, questions TEXT NOT NULL, communityName TEXT, commentCount INTEGER NOT NULL)"); + } + }; + private static AppDatabase buildDatabase(Context context) { return Room.databaseBuilder(context, AppDatabase.class, DATABASE_NAME) + .addMigrations(MIGRATION_2_3) //TODO 不允许主线程查询 .allowMainThreadQueries() - //TODO 提供db升级的策略而不是强行销毁 - .fallbackToDestructiveMigration() +// //TODO 提供db升级的策略而不是强行销毁 +// .fallbackToDestructiveMigration() .build(); } diff --git a/app/src/main/java/com/gh/gamecenter/login/UserRepository.java b/app/src/main/java/com/gh/gamecenter/login/UserRepository.java index 3a7e23a7d9..0e9044fd51 100644 --- a/app/src/main/java/com/gh/gamecenter/login/UserRepository.java +++ b/app/src/main/java/com/gh/gamecenter/login/UserRepository.java @@ -88,11 +88,13 @@ class UserRepository { mApiService = RetrofitManager.getInstance(context).getApi(); mAppDatabase = database; mCachedId = PreferenceManager.getDefaultSharedPreferences(context).getString(Constants.LOGIN_TOKEN_ID, null); + Utils.log("===========::" + mCachedId); if (!TextUtils.isEmpty(mCachedId)) checkLogin(); } protected void checkLogin() { LoginTokenEntity tokenEntity = mAppDatabase.loginTokenDao().getTokenById(mCachedId); + Utils.log("===========checkLogin::" + tokenEntity); if (tokenEntity == null) return; TokenEntity accessToken = tokenEntity.getAccessToken(); diff --git a/app/src/main/res/layout/ask_search_actionbar.xml b/app/src/main/res/layout/ask_search_actionbar.xml index d3b6388950..18fcf803bd 100644 --- a/app/src/main/res/layout/ask_search_actionbar.xml +++ b/app/src/main/res/layout/ask_search_actionbar.xml @@ -60,6 +60,6 @@ android:gravity = "center" android:text = "@string/ask_search_questions" android:textColor = "@color/theme" - android:textSize = "15sp" /> + android:textSize = "14sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml index f8899e06e6..510bc6e55c 100644 --- a/app/src/main/res/layout/fragment_toolbar.xml +++ b/app/src/main/res/layout/fragment_toolbar.xml @@ -9,9 +9,8 @@ + android:layout_width = "@dimen/appbar_height" + android:layout_height = "@dimen/appbar_height" > + android:layout_width = "@dimen/appbar_height" + android:layout_height = "@dimen/appbar_height" > + android:textSize = "14sp" /> \ No newline at end of file