package com.leon.androidplus.ui.activity; import android.content.Intent; import android.support.design.widget.Snackbar; import android.support.v7.app.ActionBar; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.ScrollView; import android.widget.TextView; import com.avos.avoscloud.AVUser; import com.leon.androidplus.R; import com.leon.androidplus.data.ArticleDataSource; import com.leon.androidplus.data.SaveCallback; import com.leon.androidplus.data.model.Article; import com.leon.androidplus.data.model.User; import com.leon.androidplus.utils.RegexUtils; import com.leon.androidplus.widget.TagLayout; import javax.inject.Inject; import butterknife.BindView; public class ShareArticleActivity extends BaseActivity { @BindView(R.id.article_url) TextView mArticleUrl; @BindView(R.id.article_title) EditText mArticleTitle; @BindView(R.id.article_description) EditText mArticleDescription; @BindView(R.id.tag_layout) TagLayout mTagLayout; @BindView(R.id.scroll_view) ScrollView mScrollView; private int mTag = -1; @Inject ArticleDataSource mArticleDataSource; @Override public int getLayoutResId() { return R.layout.activity_share_article; } @Override protected void init() { super.init(); User user = AVUser.getCurrentUser(User.class); if (user == null) { Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); finish(); return; } ActionBar supportActionBar = getSupportActionBar(); supportActionBar.setTitle(R.string.share); supportActionBar.setDisplayHomeAsUpEnabled(true); String text = getIntent().getStringExtra(Intent.EXTRA_TEXT); mArticleUrl.setText(RegexUtils.matchShareUrl(text)); mTagLayout.setTags(getResources().getStringArray(R.array.article_category_without_hot)); mTagLayout.setOnTagSelectedListener(new TagLayout.OnTagSelectedListener() { @Override public void onTagSelected(String tag, int position) { mTag = position + 1; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.publish, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: navigateTo(MainActivity.class); break; case R.id.publish: publishArticle(); break; } return true; } @Override public void onBackPressed() { navigateTo(MainActivity.class); } private void publishArticle() { String title = mArticleTitle.getText().toString().trim(); if (title.length() == 0) { Snackbar.make(mScrollView, getString(R.string.title_not_null), Snackbar.LENGTH_SHORT).show(); return; } if (mTag == -1) { Snackbar.make(mScrollView, getString(R.string.tag_not_null), Snackbar.LENGTH_SHORT).show(); return; } Article article = new Article(); article.setTitle(title); String desc = mArticleDescription.getText().toString().trim(); article.setDesc(desc); article.setUrl(mArticleUrl.getText().toString()); article.setTag(mTag); User user = AVUser.getCurrentUser(User.class); article.setUser(user); mArticleDataSource.saveArticle(article, new SaveCallback() { @Override public void onSaveSuccess() { Snackbar.make(mScrollView, getString(R.string.publish_success), Snackbar.LENGTH_SHORT).show(); } @Override public void onSaveFailed(String errorMsg) { Snackbar.make(mScrollView, getString(R.string.publish_failed), Snackbar.LENGTH_SHORT).show(); } }); } }