Skip to content
This repository has been archived by the owner on Sep 28, 2023. It is now read-only.

Commit

Permalink
Merge branch 'feature/dev_channel' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
TakWolf committed Aug 26, 2017
2 parents 3551f8d + f9800c8 commit aaf9bcf
Show file tree
Hide file tree
Showing 20 changed files with 198 additions and 89 deletions.
4 changes: 3 additions & 1 deletion app/src/main/assets/js/topic.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ Vue.filter('tabName', function (topic) {
return '问答';
case 'job':
return '招聘';
case 'dev':
return '测试';
default:
return '全部';
return '未知';
}
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.cnodejs.android.md.model.entity.Notification;
import org.cnodejs.android.md.model.entity.Result;
import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;
import org.cnodejs.android.md.model.entity.Topic;
import org.cnodejs.android.md.model.entity.TopicWithReply;
import org.cnodejs.android.md.model.entity.User;
Expand All @@ -25,7 +25,7 @@ public interface ApiService {

@GET("topics")
Call<Result.Data<List<Topic>>> getTopicList(
@Query("tab") TabType tab,
@Query("tab") Tab tab,
@Query("page") Integer page,
@Query("limit") Integer limit,
@Query("mdrender") Boolean mdrender
Expand All @@ -42,7 +42,7 @@ Call<Result.Data<TopicWithReply>> getTopic(
@FormUrlEncoded
Call<Result.CreateTopic> createTopic(
@Field("accesstoken") String accessToken,
@Field("tab") TabType tab,
@Field("tab") Tab tab,
@Field("title") String title,
@Field("content") String content
);
Expand Down
50 changes: 50 additions & 0 deletions app/src/main/java/org/cnodejs/android/md/model/entity/Tab.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package org.cnodejs.android.md.model.entity;

import android.support.annotation.StringRes;

import org.cnodejs.android.md.BuildConfig;
import org.cnodejs.android.md.R;

import java.util.ArrayList;
import java.util.List;

public enum Tab {

all(R.string.app_name),

good(R.string.tab_good),

unknown(R.string.tab_unknown),

share(R.string.tab_share),

ask(R.string.tab_ask),

job(R.string.tab_job),

dev(R.string.tab_dev);

@StringRes
private final int nameId;

Tab(@StringRes int nameId) {
this.nameId = nameId;
}

@StringRes
public int getNameId() {
return nameId;
}

public static List<Tab> getPublishableTabList() {
List<Tab> tabList = new ArrayList<>();
if (BuildConfig.DEBUG) {
tabList.add(dev);
}
tabList.add(share);
tabList.add(ask);
tabList.add(job);
return tabList;
}

}
33 changes: 0 additions & 33 deletions app/src/main/java/org/cnodejs/android/md/model/entity/TabType.java

This file was deleted.

11 changes: 7 additions & 4 deletions app/src/main/java/org/cnodejs/android/md/model/entity/Topic.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.cnodejs.android.md.model.entity;

import android.support.annotation.NonNull;

import com.google.gson.annotations.SerializedName;

import org.cnodejs.android.md.model.api.ApiDefine;
Expand All @@ -12,7 +14,7 @@ public class Topic extends TopicSimple {
@SerializedName("author_id")
private String authorId;

private TabType tab;
private Tab tab;

private String content;

Expand All @@ -37,11 +39,12 @@ public void setAuthorId(String authorId) {
this.authorId = authorId;
}

public TabType getTab() {
return tab == null ? TabType.unknown : tab; // 接口中有些话题没有Tab属性,这里保证Tab不为空
@NonNull
public Tab getTab() {
return tab == null ? Tab.unknown : tab; // 接口中有些话题没有 Tab 属性,这里保证 Tab 不为空
}

public void setTab(TabType tab) {
public void setTab(Tab tab) {
this.tab = tab;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import android.support.annotation.NonNull;

import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;

public interface ICreateTopicPresenter {

void createTopicAsyncTask(@NonNull TabType tab, String title, String content);
void createTopicAsyncTask(@NonNull Tab tab, String title, String content);

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import android.support.annotation.NonNull;

import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;

public interface IMainPresenter {

void switchTab(@NonNull TabType tab);
void switchTab(@NonNull Tab tab);

void refreshTopicListAsyncTask();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.cnodejs.android.md.model.api.ApiClient;
import org.cnodejs.android.md.model.api.DefaultCallback;
import org.cnodejs.android.md.model.entity.Result;
import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;
import org.cnodejs.android.md.model.storage.LoginShared;
import org.cnodejs.android.md.model.storage.SettingShared;
import org.cnodejs.android.md.presenter.contract.ICreateTopicPresenter;
Expand All @@ -27,7 +27,7 @@ public CreateTopicPresenter(@NonNull Activity activity, @NonNull ICreateTopicVie
}

@Override
public void createTopicAsyncTask(@NonNull TabType tab, String title, String content) {
public void createTopicAsyncTask(@NonNull Tab tab, String title, String content) {
if (TextUtils.isEmpty(title) || title.length() < 10) {
createTopicView.onTitleError(activity.getString(R.string.title_empty_error_tip));
} else if (TextUtils.isEmpty(content)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.cnodejs.android.md.model.api.ApiDefine;
import org.cnodejs.android.md.model.api.ForegroundCallback;
import org.cnodejs.android.md.model.entity.Result;
import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;
import org.cnodejs.android.md.model.entity.Topic;
import org.cnodejs.android.md.model.entity.User;
import org.cnodejs.android.md.model.storage.LoginShared;
Expand All @@ -28,7 +28,7 @@ public class MainPresenter implements IMainPresenter {
private final Activity activity;
private final IMainView mainView;

private TabType tab = TabType.all;
private Tab tab = Tab.all;
private Call<Result.Data<List<Topic>>> refreshCall = null;
private Call<Result.Data<List<Topic>>> loadMoreCall = null;

Expand Down Expand Up @@ -56,7 +56,7 @@ private void cancelLoadMoreCall() {
}

@Override
public void switchTab(@NonNull TabType tab) {
public void switchTab(@NonNull Tab tab) {
if (this.tab != tab) {
this.tab = tab;
cancelRefreshCall();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@
import android.widget.Spinner;

import org.cnodejs.android.md.R;
import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;
import org.cnodejs.android.md.model.storage.SettingShared;
import org.cnodejs.android.md.model.storage.TopicShared;
import org.cnodejs.android.md.presenter.contract.ICreateTopicPresenter;
import org.cnodejs.android.md.presenter.implement.CreateTopicPresenter;
import org.cnodejs.android.md.ui.adapter.TabSpinnerAdapter;
import org.cnodejs.android.md.ui.base.StatusBarActivity;
import org.cnodejs.android.md.ui.dialog.ProgressDialog;
import org.cnodejs.android.md.ui.listener.NavigationFinishClickListener;
Expand Down Expand Up @@ -61,6 +62,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
toolbar.inflateMenu(R.menu.create_topic);
toolbar.setOnMenuItemClickListener(this);

spnTab.setAdapter(new TabSpinnerAdapter(this, Tab.getPublishableTabList()));

progressDialog = ProgressDialog.createWithAutoTheme(this);
progressDialog.setCancelable(false);

Expand Down Expand Up @@ -96,26 +99,13 @@ protected void onPause() {
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_send:
createTopicPresenter.createTopicAsyncTask(getTabByPosition(spnTab.getSelectedItemPosition()), edtTitle.getText().toString().trim(), edtContent.getText().toString().trim());
createTopicPresenter.createTopicAsyncTask((Tab) spnTab.getSelectedItem(), edtTitle.getText().toString().trim(), edtContent.getText().toString().trim());
return true;
default:
return false;
}
}

private TabType getTabByPosition(int position) {
switch (position) {
case 0:
return TabType.share;
case 1:
return TabType.ask;
case 2:
return TabType.job;
default:
return TabType.share;
}
}

@Override
public void onTitleError(@NonNull String message) {
ToastUtils.with(this).show(message);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
import com.bumptech.glide.Glide;
import com.takwolf.android.hfrecyclerview.HeaderAndFooterRecyclerView;

import org.cnodejs.android.md.BuildConfig;
import org.cnodejs.android.md.R;
import org.cnodejs.android.md.model.entity.TabType;
import org.cnodejs.android.md.model.entity.Tab;
import org.cnodejs.android.md.model.entity.Topic;
import org.cnodejs.android.md.model.storage.LoginShared;
import org.cnodejs.android.md.model.storage.SettingShared;
Expand Down Expand Up @@ -92,10 +93,14 @@ public class MainActivity extends FullLayoutActivity implements IMainView, IBack
R.id.btn_nav_good,
R.id.btn_nav_share,
R.id.btn_nav_ask,
R.id.btn_nav_job
R.id.btn_nav_job,
R.id.btn_nav_dev
})
List<CheckedTextView> navMainItemList;

@BindView(R.id.btn_nav_dev)
CheckedTextView navMainItemDev;

/*
* 内容部分
*/
Expand Down Expand Up @@ -133,6 +138,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
toolbar.setNavigationOnClickListener(new NavigationOpenClickListener(drawerLayout));
toolbar.setOnClickListener(new DoubleClickBackToContentTopListener(this));

navMainItemDev.setVisibility(BuildConfig.DEBUG ? View.VISIBLE : View.GONE);

recyclerView.setLayoutManager(new LinearLayoutManager(this));
loadMoreFooter = new LoadMoreFooter(this, recyclerView, this);
adapter = new TopicListAdapter(this);
Expand Down Expand Up @@ -173,24 +180,27 @@ public void onDrawerOpened(View drawerView) {

@Override
public void onDrawerClosed(View drawerView) {
TabType tab = TabType.all;
Tab tab = Tab.all;
for (CheckedTextView navItem : navMainItemList) {
if (navItem.isChecked()) {
switch (navItem.getId()) {
case R.id.btn_nav_all:
tab = TabType.all;
tab = Tab.all;
break;
case R.id.btn_nav_good:
tab = TabType.good;
tab = Tab.good;
break;
case R.id.btn_nav_share:
tab = TabType.share;
tab = Tab.share;
break;
case R.id.btn_nav_ask:
tab = TabType.ask;
tab = Tab.ask;
break;
case R.id.btn_nav_job:
tab = TabType.job;
tab = Tab.job;
break;
case R.id.btn_nav_dev:
tab = Tab.dev;
break;
default:
throw new AssertionError("Unknow tab.");
Expand Down Expand Up @@ -218,7 +228,8 @@ public void onLoadMore() {
R.id.btn_nav_good,
R.id.btn_nav_share,
R.id.btn_nav_ask,
R.id.btn_nav_job
R.id.btn_nav_job,
R.id.btn_nav_dev
})
void onNavigationMainItemClick(CheckedTextView itemView) {
for (CheckedTextView navItem : navMainItemList) {
Expand Down Expand Up @@ -343,7 +354,7 @@ public void onBackPressed() {
}

@Override
public void onSwitchTabOk(@NonNull TabType tab) {
public void onSwitchTabOk(@NonNull Tab tab) {
page = 0;
toolbar.setTitle(tab.getNameId());
fabCreateTopic.show();
Expand Down
Loading

0 comments on commit aaf9bcf

Please sign in to comment.