Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds-android
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
云深项目组
beyond-clouds-android
Commits
f5a9860d
Commit
f5a9860d
authored
Mar 27, 2020
by
胡学良
Browse files
Options
Browse Files
Download
Plain Diff
conflict fix
parents
c6fd01dc
65b7d627
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
388 additions
and
277 deletions
+388
-277
app/src/main/AndroidManifest.xml
+21
-32
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PreviewActivity.java
+2
-4
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PreviewQuestionActivity.java
+52
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectFileLink.java
+0
-216
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectPreviewAll.java
+38
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectPublic.java
+16
-0
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PublishQuestionActivity.java
+17
-0
app/src/main/res/layout/activity_preview_question.xml
+155
-0
app/src/main/res/layout/activity_project_file_link.xml
+71
-21
app/src/main/res/layout/activity_project_public.xml
+15
-4
app/src/main/res/layout/activity_publish_question.xml
+1
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
f5a9860d
...
@@ -2,6 +2,9 @@
...
@@ -2,6 +2,9 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"cn.yunliyunwai.beyondclouds"
>
package=
"cn.yunliyunwai.beyondclouds"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<application
<application
android:name=
".BeyondApplication"
android:name=
".BeyondApplication"
...
@@ -11,43 +14,30 @@
...
@@ -11,43 +14,30 @@
android:roundIcon=
"@mipmap/ic_launcher_round"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
android:theme=
"@style/AppTheme"
>
<activity
android:name=
".ui.page.PreviewQuestionActivity"
></activity>
<activity
android:name=
".ui.page.PublishQuestionActivity"
>
<activity
android:name=
".ui.page.PublishQuestionActivity"
>
<intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
<activity
android:
theme=
"@style/AppTheme.FullScreen
"
android:
name=
".SplashActivity
"
android:
name=
".SplashActivity
"
>
android:
theme=
"@style/AppTheme.FullScreen
"
>
</activity>
</activity>
<activity
android:name=
".ui.page.PreviewActivity"
></activity>
<activity
android:name=
".ui.page.PreviewActivity"
>
<activity
android:name=
".ui.page.MyTopicActivity"
/>
</activity>
<activity
android:name=
".ui.page.PostWritingActivity"
/>
<activity
android:name=
".ui.page.MyTopicActivity"
></activity>
<activity
android:name=
".ui.page.QRCodeCard"
/>
<activity
android:name=
".ui.page.PostWritingActivity"
></activity>
<activity
android:name=
".ui.page.ProjectPublic"
>
<activity
android:name=
".ui.page.QRCodeCard"
></activity>
<activity
android:name=
".ui.page.ProjectPublic"
></activity>
<activity
android:name=
".ui.page.projectSetting"
></activity>
<activity
android:name=
".ui.page.ProjectPreviewPart"
></activity>
<activity
android:name=
".ui.page.ProjectPreviewAll"
></activity>
<activity
android:name=
".ui.page.ProjectFileLink"
>
</activity>
</activity>
<activity
android:name=
".ui.page.PublishBlogActivity"
>
<activity
android:name=
".ui.page.projectSetting"
/>
<!-- <intent-filter>-->
<activity
android:name=
".ui.page.ProjectPreviewPart"
/>
<!-- <action android:name="android.intent.action.MAIN" />-->
<activity
android:name=
".ui.page.ProjectPreviewAll"
/>
<activity
android:name=
".ui.page.ProjectFileLink"
></activity>
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<activity
android:name=
".ui.page.PublishBlogActivity"
></activity>
<!-- </intent-filter>-->
<activity
android:name=
".ui.page.ProjectsActivity"
/>
</activity>
<activity
android:name=
".ui.page.ProjectsActivity"
></activity>
<activity
android:name=
".ui.page.FansActivity"
/>
<activity
android:name=
".ui.page.FansActivity"
/>
</application>
</application>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
</manifest>
</manifest>
\ No newline at end of file
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PreviewActivity.java
View file @
f5a9860d
...
@@ -54,11 +54,9 @@ public class PreviewActivity extends AppCompatActivity {
...
@@ -54,11 +54,9 @@ public class PreviewActivity extends AppCompatActivity {
.
usePlugin
(
TablePlugin
.
create
(
tableTheme
))
.
usePlugin
(
TablePlugin
.
create
(
tableTheme
))
.
build
();;
.
build
();;
//显示标题
//显示标题
Spanned
markdownTitle
=
markwon
.
toMarkdown
(
title
);
binding
.
textBlogTitle
.
setText
(
title
);
binding
.
textBlogTitle
.
setText
(
markdownTitle
);
//显示简介
//显示简介
Spanned
markdownIntroduce
=
markwon
.
toMarkdown
(
introduce
);
binding
.
textBlogIntroFrame
.
setText
(
introduce
);
binding
.
textBlogIntroFrame
.
setText
(
markdownIntroduce
);
//显示内容
//显示内容
Spanned
markdownContent
=
markwon
.
toMarkdown
(
content
);
Spanned
markdownContent
=
markwon
.
toMarkdown
(
content
);
binding
.
textBlogContent
.
setText
(
markdownContent
);
binding
.
textBlogContent
.
setText
(
markdownContent
);
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PreviewQuestionActivity.java
0 → 100644
View file @
f5a9860d
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.graphics.Color
;
import
android.os.Bundle
;
import
android.text.Spanned
;
import
cn.yunliyunwai.beyondclouds.data.MarkdownPreview
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityPreviewQuestionBinding
;
import
io.noties.markwon.Markwon
;
import
io.noties.markwon.ext.tables.TablePlugin
;
import
io.noties.markwon.ext.tables.TableTheme
;
public
class
PreviewQuestionActivity
extends
AppCompatActivity
{
private
ActivityPreviewQuestionBinding
binding
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
binding
=
ActivityPreviewQuestionBinding
.
inflate
(
getLayoutInflater
());
setContentView
(
binding
.
getRoot
());
//取得输入页面的数据
Bundle
bundle
=
getIntent
().
getExtras
();
MarkdownPreview
markdownPreview
=
(
MarkdownPreview
)
bundle
.
getSerializable
(
"markdown"
);
//获取输入框中的文字
//标题
String
title
=
markdownPreview
.
getTitle
();
//内容
String
content
=
markdownPreview
.
getContent
();
//通过markwon解析器解析出markdown文本
final
TableTheme
tableTheme
=
TableTheme
.
emptyBuilder
()
.
tableBorderWidth
(
0
)
.
tableCellPadding
(
0
)
.
tableHeaderRowBackgroundColor
(
Color
.
WHITE
)
.
tableEvenRowBackgroundColor
(
Color
.
WHITE
)
.
tableOddRowBackgroundColor
(
Color
.
GRAY
)
.
build
();
Markwon
markwon
=
Markwon
.
builder
(
getApplicationContext
())
.
usePlugin
(
TablePlugin
.
create
(
tableTheme
))
.
build
();;
//显示标题
binding
.
questionTitle
.
setText
(
title
);
//显示问题详情
Spanned
markdownContent
=
markwon
.
toMarkdown
(
content
);
binding
.
textQuestionContent
.
setText
(
markdownContent
);
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectFileLink.java
View file @
f5a9860d
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
import
android.graphics.Color
;
import
android.graphics.drawable.Drawable
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.text.Spannable
;
import
android.text.SpannableString
;
import
android.text.style.ImageSpan
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.EditText
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.RequiresApi
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.fragment.app.Fragment
;
import
com.google.android.material.tabs.TabLayout
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.Executors
;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.adapter.PublishViewPagerAdapter
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectFileLinkBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectFileLinkBinding
;
import
cn.yunliyunwai.beyondclouds.ui.page.markdown.MarkdownButtonEnum
;
import
io.noties.markwon.AbstractMarkwonPlugin
;
import
io.noties.markwon.Markwon
;
import
io.noties.markwon.core.MarkwonTheme
;
import
io.noties.markwon.editor.MarkwonEditor
;
import
io.noties.markwon.editor.MarkwonEditorTextWatcher
;
public
class
ProjectFileLink
extends
AppCompatActivity
{
public
class
ProjectFileLink
extends
AppCompatActivity
{
...
@@ -42,196 +16,6 @@ public class ProjectFileLink extends AppCompatActivity {
...
@@ -42,196 +16,6 @@ public class ProjectFileLink extends AppCompatActivity {
binding
=
ActivityProjectFileLinkBinding
.
inflate
(
getLayoutInflater
());
binding
=
ActivityProjectFileLinkBinding
.
inflate
(
getLayoutInflater
());
setContentView
(
binding
.
getRoot
());
setContentView
(
binding
.
getRoot
());
//创建fragment的集合
List
<
Fragment
>
list
=
new
ArrayList
<>();
list
.
add
(
new
PictureFragment
());
list
.
add
(
new
EmojiFragment
());
list
.
add
(
new
FontFragment
());
list
.
add
(
new
OtherFragment
());
list
.
add
(
new
MoreFragment
());
//所有头部图片的集合
List
<
Integer
>
tabImages
=
new
ArrayList
<>();
tabImages
.
add
(
R
.
drawable
.
photo_choose
);
tabImages
.
add
(
R
.
drawable
.
emj_choose
);
tabImages
.
add
(
R
.
drawable
.
font_choose
);
tabImages
.
add
(
R
.
drawable
.
other_choose
);
tabImages
.
add
(
R
.
drawable
.
more_choose
);
binding
.
projectDocumentToolBar
.
setAdapter
(
new
PublishViewPagerAdapter
(
getSupportFragmentManager
(),
this
,
list
,
tabImages
));
binding
.
projectDocumentTabLayout
.
setupWithViewPager
(
binding
.
projectDocumentToolBar
);
binding
.
projectDocumentToolBar
.
setCurrentItem
(
0
);
binding
.
projectDocumentTabLayout
.
addOnTabSelectedListener
(
new
TabLayout
.
OnTabSelectedListener
()
{
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
LOLLIPOP
)
@Override
public
void
onTabSelected
(
TabLayout
.
Tab
tab
)
{
tab
.
setText
(
getImageSpanSelected
(
tabImages
.
get
(
tab
.
getPosition
())));
}
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
LOLLIPOP
)
@Override
public
void
onTabUnselected
(
TabLayout
.
Tab
tab
)
{
tab
.
setText
(
getImageSpanUnSelected
(
tabImages
.
get
(
tab
.
getPosition
())));
}
@Override
public
void
onTabReselected
(
TabLayout
.
Tab
tab
)
{
}
});
//markdown实时显示
final
Markwon
markwon
=
Markwon
.
builder
(
this
)
.
usePlugin
(
new
AbstractMarkwonPlugin
()
{
@Override
public
void
configureTheme
(
@NonNull
MarkwonTheme
.
Builder
builder
)
{
builder
.
codeTextColor
(
Color
.
GREEN
)
.
codeBackgroundColor
(
Color
.
GRAY
);
}
})
.
build
();
final
MarkwonEditor
editor
=
MarkwonEditor
.
create
(
markwon
);
binding
.
edtProjectDocumentText
.
addTextChangedListener
(
MarkwonEditorTextWatcher
.
withPreRender
(
editor
,
Executors
.
newCachedThreadPool
(),
binding
.
edtProjectDocumentText
));
}
//点击头部图片时改变图片颜色
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
LOLLIPOP
)
private
CharSequence
getImageSpanSelected
(
int
imageId
)
{
Drawable
dImage
=
getResources
().
getDrawable
(
imageId
);
dImage
.
setBounds
(
0
,
0
,
dImage
.
getIntrinsicWidth
()/
2
,
dImage
.
getIntrinsicHeight
()/
2
);
dImage
.
setTint
(
Color
.
parseColor
(
"#00aae6"
));
SpannableString
sp
=
new
SpannableString
(
" "
);
ImageSpan
imageSpan
=
new
ImageSpan
(
dImage
,
ImageSpan
.
ALIGN_BOTTOM
);
sp
.
setSpan
(
imageSpan
,
0
,
1
,
Spannable
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
return
sp
;
}
}
@RequiresApi
(
api
=
Build
.
VERSION_CODES
.
LOLLIPOP
)
private
CharSequence
getImageSpanUnSelected
(
int
imageId
)
{
Drawable
dImage
=
getResources
().
getDrawable
(
imageId
);
dImage
.
setBounds
(
0
,
0
,
dImage
.
getIntrinsicWidth
()/
2
,
dImage
.
getIntrinsicHeight
()/
2
);
dImage
.
setTint
(
Color
.
parseColor
(
"#999999"
));
SpannableString
sp
=
new
SpannableString
(
" "
);
ImageSpan
imageSpan
=
new
ImageSpan
(
dImage
,
ImageSpan
.
ALIGN_BOTTOM
);
sp
.
setSpan
(
imageSpan
,
0
,
1
,
Spannable
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
return
sp
;
}
//字符串拼接形成表格
private
String
createTable
()
{
//表格的列数
int
line
;
//表格的行数
int
row
;
EditText
lineEditText
=
findViewById
(
R
.
id
.
edit_text_form_line
);
if
(
lineEditText
.
getText
().
toString
().
equals
(
""
))
{
line
=
3
;
}
else
{
line
=
Integer
.
parseInt
(
lineEditText
.
getText
().
toString
());
}
EditText
rowEditText
=
findViewById
(
R
.
id
.
edit_text_form_row
);
if
(
rowEditText
.
getText
().
toString
().
equals
(
""
))
{
row
=
3
;
}
else
{
row
=
Integer
.
parseInt
(
lineEditText
.
getText
().
toString
());
}
//通过循环制表
StringBuilder
table
=
new
StringBuilder
(
"\n"
+
"|"
);
for
(
int
i
=
0
;
i
<
row
;
i
++)
{
for
(
int
j
=
0
;
j
<
line
;
j
++)
{
if
(
i
==
0
)
{
table
.
append
(
"title|"
);
}
else
if
(
i
==
1
)
{
table
.
append
(
"-|"
);
}
else
{
table
.
append
(
"content|"
);
}
}
if
(
i
<
row
-
1
)
{
table
.
append
(
"\n"
+
"|"
);
}
}
return
table
.
toString
();
}
//向输入框中添加markdown语法
private
void
addMarkdownGrammar
(
String
grammar
)
{
String
rawData
=
binding
.
edtProjectDocumentText
.
getText
().
toString
();
StringBuilder
data
=
new
StringBuilder
(
rawData
);
//将Markdown语法加入到data中并显示在页面上
data
.
append
(
grammar
);
binding
.
edtProjectDocumentText
.
setText
(
data
.
toString
());
//使页面指针停于data末尾
binding
.
edtProjectDocumentText
.
setSelection
(
binding
.
edtProjectDocumentText
.
getText
().
toString
().
length
());
}
public
void
onClick
(
View
view
)
{
String
tag
=
(
String
)
view
.
getTag
();
switch
(
MarkdownButtonEnum
.
valueOf
(
tag
))
{
case
FONT_BOLD
:
addMarkdownGrammar
(
"****"
);
break
;
case
FONT_ITALIC:
addMarkdownGrammar
(
"**"
);
break
;
case
FONT_UNDERLINE:
addMarkdownGrammar
(
"++++"
);
break
;
case
FONT_SUPERSCRIPT:
addMarkdownGrammar
(
"^^"
);
break
;
case
FONT_SUBSCRIPT:
addMarkdownGrammar
(
"~~"
);
break
;
case
FONT_STRIKE_THROUGH:
addMarkdownGrammar
(
"~~~~"
);
break
;
case
H1:
addMarkdownGrammar
(
"# "
);
break
;
case
H2:
addMarkdownGrammar
(
"## "
);
break
;
case
H3:
addMarkdownGrammar
(
"### "
);
break
;
case
H4:
addMarkdownGrammar
(
"#### "
);
break
;
case
H5:
addMarkdownGrammar
(
"##### "
);
break
;
case
H6:
addMarkdownGrammar
(
"###### "
);
break
;
case
UNORDERED_LIST:
addMarkdownGrammar
(
"+ "
);
break
;
case
CODE_BLOCK:
addMarkdownGrammar
(
"```\n\n```"
);
break
;
case
CROSS_LINE:
addMarkdownGrammar
(
"\n***\n"
);
break
;
case
TABLE:
addMarkdownGrammar
(
createTable
());
break
;
case
ORDERED_LIST:
addMarkdownGrammar
(
"\n1. \n2. \n3."
);
default
:
Log
.
d
(
"msg"
,
tag
);
}
}
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectPreviewAll.java
View file @
f5a9860d
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
import
android.graphics.Color
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.text.Spanned
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
cn.yunliyunwai.beyondclouds.data.MarkdownPreview
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPreviewAllBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPreviewAllBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPreviewPartBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPreviewPartBinding
;
import
io.noties.markwon.Markwon
;
import
io.noties.markwon.ext.tables.TablePlugin
;
import
io.noties.markwon.ext.tables.TableTheme
;
public
class
ProjectPreviewAll
extends
AppCompatActivity
{
public
class
ProjectPreviewAll
extends
AppCompatActivity
{
ActivityProjectPreviewAllBinding
binding
;
ActivityProjectPreviewAllBinding
binding
;
...
@@ -15,6 +21,38 @@ public class ProjectPreviewAll extends AppCompatActivity {
...
@@ -15,6 +21,38 @@ public class ProjectPreviewAll extends AppCompatActivity {
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
binding
=
ActivityProjectPreviewAllBinding
.
inflate
(
getLayoutInflater
());
binding
=
ActivityProjectPreviewAllBinding
.
inflate
(
getLayoutInflater
());
setContentView
(
binding
.
getRoot
());
setContentView
(
binding
.
getRoot
());
//取得输入页面的数据
Bundle
bundle
=
getIntent
().
getExtras
();
MarkdownPreview
markdownPreview
=
(
MarkdownPreview
)
bundle
.
getSerializable
(
"markdown"
);
//获取输入框中的文字
//标题
String
title
=
markdownPreview
.
getTitle
();
//简介
String
introduce
=
markdownPreview
.
getIntroduce
();
//内容
String
content
=
markdownPreview
.
getContent
();
//通过markwon解析器解析出markdown文本
final
TableTheme
tableTheme
=
TableTheme
.
emptyBuilder
()
.
tableBorderWidth
(
0
)
.
tableCellPadding
(
0
)
.
tableHeaderRowBackgroundColor
(
Color
.
WHITE
)
.
tableEvenRowBackgroundColor
(
Color
.
WHITE
)
.
tableOddRowBackgroundColor
(
Color
.
GRAY
)
.
build
();
Markwon
markwon
=
Markwon
.
builder
(
getApplicationContext
())
.
usePlugin
(
TablePlugin
.
create
(
tableTheme
))
.
build
();;
//显示标题
binding
.
title
.
setText
(
title
);
//显示简介
binding
.
sign
.
setText
(
introduce
);
//显示内容
Spanned
markdownContent
=
markwon
.
toMarkdown
(
content
);
binding
.
synopsisContent
.
setText
(
markdownContent
);
}
}
}
}
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/ProjectPublic.java
View file @
f5a9860d
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
package
cn
.
yunliyunwai
.
beyondclouds
.
ui
.
page
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.graphics.drawable.Drawable
;
import
android.graphics.drawable.Drawable
;
import
android.os.Build
;
import
android.os.Build
;
...
@@ -24,6 +25,7 @@ import java.util.concurrent.Executors;
...
@@ -24,6 +25,7 @@ import java.util.concurrent.Executors;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.adapter.PublishViewPagerAdapter
;
import
cn.yunliyunwai.beyondclouds.adapter.PublishViewPagerAdapter
;
import
cn.yunliyunwai.beyondclouds.data.MarkdownPreview
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPublicBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityProjectPublicBinding
;
import
cn.yunliyunwai.beyondclouds.ui.page.markdown.MarkdownButtonEnum
;
import
cn.yunliyunwai.beyondclouds.ui.page.markdown.MarkdownButtonEnum
;
import
io.noties.markwon.AbstractMarkwonPlugin
;
import
io.noties.markwon.AbstractMarkwonPlugin
;
...
@@ -99,6 +101,20 @@ public class ProjectPublic extends AppCompatActivity {
...
@@ -99,6 +101,20 @@ public class ProjectPublic extends AppCompatActivity {
binding
.
edtProjectText
binding
.
edtProjectText
));
));
//预览项目
binding
.
btnProjectPreview
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
Intent
intent
=
new
Intent
(
ProjectPublic
.
this
,
ProjectPreviewAll
.
class
);
MarkdownPreview
markdownPreview
=
new
MarkdownPreview
(
binding
.
edtProjectTitle
.
getText
().
toString
(),
binding
.
edtProjectIntroduction
.
getText
().
toString
(),
binding
.
edtProjectText
.
getText
().
toString
());
Bundle
bundle
=
new
Bundle
();
bundle
.
putSerializable
(
"markdown"
,
markdownPreview
);
intent
.
putExtras
(
bundle
);
startActivity
(
intent
);
}
});
}
}
//点击头部图片时改变图片颜色
//点击头部图片时改变图片颜色
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/page/PublishQuestionActivity.java
View file @
f5a9860d
...
@@ -5,6 +5,7 @@ import androidx.annotation.RequiresApi;
...
@@ -5,6 +5,7 @@ import androidx.annotation.RequiresApi;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.graphics.drawable.Drawable
;
import
android.graphics.drawable.Drawable
;
import
android.os.Build
;
import
android.os.Build
;
...
@@ -27,6 +28,7 @@ import java.util.concurrent.Executors;
...
@@ -27,6 +28,7 @@ import java.util.concurrent.Executors;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.R
;
import
cn.yunliyunwai.beyondclouds.adapter.PublishViewPagerAdapter
;
import
cn.yunliyunwai.beyondclouds.adapter.PublishViewPagerAdapter
;
import
cn.yunliyunwai.beyondclouds.data.MarkdownPreview
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityPublishQuestionBinding
;
import
cn.yunliyunwai.beyondclouds.databinding.ActivityPublishQuestionBinding
;
import
cn.yunliyunwai.beyondclouds.ui.page.markdown.MarkdownButtonEnum
;
import
cn.yunliyunwai.beyondclouds.ui.page.markdown.MarkdownButtonEnum
;
import
io.noties.markwon.AbstractMarkwonPlugin
;
import
io.noties.markwon.AbstractMarkwonPlugin
;
...
@@ -103,6 +105,21 @@ public class PublishQuestionActivity extends AppCompatActivity {
...
@@ -103,6 +105,21 @@ public class PublishQuestionActivity extends AppCompatActivity {
Executors
.
newCachedThreadPool
(),
Executors
.
newCachedThreadPool
(),
binding
.
editTextQuestionContent
binding
.
editTextQuestionContent
));
));
//跳转预览界面
binding
.
btnQuestionPreview
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
Bundle
bundle
=
new
Bundle
();
MarkdownPreview
markdownPreview
=
new
MarkdownPreview
(
binding
.
editTextQuestionTitle
.
getText
().
toString
(),
null
,
binding
.
editTextQuestionContent
.
getText
().
toString
());
bundle
.
putSerializable
(
"markdown"
,
markdownPreview
);
Intent
intent
=
new
Intent
(
PublishQuestionActivity
.
this
,
PreviewQuestionActivity
.
class
);
intent
.
putExtras
(
bundle
);
startActivity
(
intent
);
}
});
}
}
...
...
app/src/main/res/layout/activity_preview_question.xml
0 → 100644
View file @
f5a9860d
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.page.PreviewQuestionActivity"
>
<TextView
android:id=
"@+id/question_title"
android:layout_width=
"183dp"
android:layout_height=
"0dp"
android:gravity=
"center_vertical"
android:text=
"云里云外开源社区"
android:textColor=
"#333333"
android:textSize=
"21sp"
android:layout_marginTop=
"82dp"
android:layout_marginStart=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/time"
android:layout_width=
"100dp"
android:layout_height=
"15dp"
android:gravity=
"center_vertical"
android:text=
"2020-2-17 19:53:00"
android:textColor=
"#999999"
android:textSize=
"10sp"
android:layout_marginTop=
"6dp"
android:layout_marginStart=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/question_title"
/>
<TextView
android:id=
"@+id/tag"
android:layout_width=
"55dp"
android:layout_height=
"24dp"
android:gravity=
"center"
android:text=
"Web应用"
android:textColor=
"#666666"
android:textSize=
"12sp"
android:background=
"#f5f8fa"
android:layout_marginTop=
"14dp"
android:layout_marginStart=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/time"
/>
<TextView
android:id=
"@+id/tag_MRL"
android:layout_width=
"45dp"
android:layout_height=
"24dp"
android:gravity=
"center"
android:text=
"MRL"
android:textColor=
"#666666"
android:textSize=
"12sp"
android:background=
"#f5f8fa"
android:layout_marginEnd=
"8dp"
app:layout_constraintTop_toTopOf=
"@+id/tag"
app:layout_constraintBottom_toBottomOf=
"@+id/tag"
app:layout_constraintEnd_toStartOf=
"@+id/tag_java"
/>
<TextView
android:id=
"@+id/tag_java"
android:layout_width=
"45dp"
android:layout_height=
"24dp"
android:gravity=
"center"
android:text=
"java"
android:textColor=
"#666666"
android:textSize=
"12sp"
android:background=
"#f5f8fa"
android:layout_marginEnd=
"12dp"
app:layout_constraintTop_toTopOf=
"@+id/tag_MRL"
app:layout_constraintBottom_toBottomOf=
"@+id/tag_MRL"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/question_content"
android:layout_width=
"81dp"
android:layout_height=
"27dp"
android:gravity=
"center_vertical"
android:text=
"问题详情"
android:textColor=
"#2f2f2f"
android:textSize=
"18sp"
android:layout_marginTop=
"27dp"
android:layout_marginStart=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tag"
/>
<ScrollView
android:id=
"@+id/scroll_synopsis_content"
android:layout_width=
"match_parent"
android:layout_height=
"368dp"
android:layout_marginTop=
"14dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/question_content"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:id=
"@+id/text_question_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"start"
android:scrollbars=
"vertical"
android:text=
"问题详情"
android:textColor=
"#333333"
android:textSize=
"13sp"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"12dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/question_constraint_Layout"
android:layout_width=
"match_parent"
android:layout_height=
"48dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"@color/colorLine"
app:layout_constraintTop_toTopOf=
"@id/question_constraint_Layout"
/>
<EditText
android:id=
"@+id/addTag"
android:layout_width=
"0dp"
android:layout_height=
"30dp"
android:paddingLeft=
"12dp"
android:hint=
"添加标签"
android:textSize=
"10sp"
android:background=
"@color/colorToolBackground"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"12dp"
android:layout_marginTop=
"9dp"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_project_file_link.xml
View file @
f5a9860d
...
@@ -4,20 +4,16 @@
...
@@ -4,20 +4,16 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
>
android:paddingStart=
"12dp"
android:paddingEnd=
"12dp"
>
<cn.yunliyunwai.beyondclouds.view.BeyondToolBar
<cn.yunliyunwai.beyondclouds.view.BeyondToolBar
android:id=
"@+id/tool_bar"
android:id=
"@+id/tool_bar"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"24dp"
android:layout_marginEnd=
"24dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<EditText
<EditText
android:id=
"@+id/edt_project_document_text"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"150dp"
android:layout_height=
"150dp"
android:paddingStart=
"12dp"
android:paddingStart=
"12dp"
...
@@ -30,26 +26,81 @@
...
@@ -30,26 +26,81 @@
android:gravity=
"start"
android:gravity=
"start"
android:background=
"@drawable/background_project_circle_file_link"
android:background=
"@drawable/background_project_circle_file_link"
android:layout_marginTop=
"84dp"
android:layout_marginTop=
"84dp"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.viewpager.widget.ViewPager
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/project_document_tool_bar"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_height=
"44dp"
android:background=
"#efefef"
android:background=
"#f5f8fa"
app:layout_constraintTop_toBottomOf=
"@id/edt_project_document_text"
android:layout_marginBottom=
"300dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
>
app:layout_constraintBottom_toBottomOf=
"parent"
>
<com.google.android.material.tabs.TabLayout
android:id=
"@+id/project_document_tab_layout"
android:background=
"#f5f8fa"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</androidx.viewpager.widget.ViewPager>
<cn.yunliyunwai.beyondclouds.view.BeyondTextIcon
android:id=
"@+id/btn_photo_choose"
android:layout_width=
"20dp"
android:layout_height=
"22dp"
android:layout_marginStart=
"36dp"
android:text=
"@string/icon_photo_choose"
android:textColor=
"@color/colorText"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<cn.yunliyunwai.beyondclouds.view.BeyondTextIcon
android:id=
"@+id/btn_code"
android:layout_width=
"25dp"
android:layout_height=
"22dp"
android:text=
"@string/icon_code"
android:textColor=
"@color/colorText"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/btn_link"
app:layout_constraintStart_toEndOf=
"@+id/btn_photo_choose"
app:layout_constraintTop_toTopOf=
"parent"
/>
<cn.yunliyunwai.beyondclouds.view.BeyondTextIcon
android:id=
"@+id/btn_link"
android:layout_width=
"20dp"
android:layout_height=
"22dp"
android:text=
"@string/icon_link"
android:textColor=
"@color/colorText"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/btn_emj"
app:layout_constraintStart_toEndOf=
"@+id/btn_code"
app:layout_constraintTop_toTopOf=
"parent"
/>
<cn.yunliyunwai.beyondclouds.view.BeyondTextIcon
android:id=
"@+id/btn_emj"
android:layout_width=
"20dp"
android:layout_height=
"22dp"
android:text=
"@string/icon_emj_choose"
android:textColor=
"@color/colorText"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/btn_topic"
app:layout_constraintStart_toEndOf=
"@+id/btn_link"
app:layout_constraintTop_toTopOf=
"parent"
/>
<cn.yunliyunwai.beyondclouds.view.BeyondTextIcon
android:id=
"@+id/btn_topic"
android:layout_width=
"20dp"
android:layout_height=
"22dp"
android:layout_marginEnd=
"36dp"
android:text=
"@string/icon_topic_choose"
android:textColor=
"@color/colorText"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_project_public.xml
View file @
f5a9860d
...
@@ -6,8 +6,19 @@
...
@@ -6,8 +6,19 @@
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
>
>
<Button
android:id=
"@+id/btn_project_preview"
android:layout_width=
"60dp"
android:layout_height=
"40dp"
android:text=
"预览"
android:layout_marginTop=
"20dp"
android:layout_marginEnd=
"20dp"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<EditText
<EditText
android:id=
"@+id/edt_title"
android:id=
"@+id/edt_
project_
title"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"60dp"
android:layout_height=
"60dp"
android:hint=
"请输入项目名称"
android:hint=
"请输入项目名称"
...
@@ -25,7 +36,7 @@
...
@@ -25,7 +36,7 @@
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<EditText
<EditText
android:id=
"@+id/edt_introduction"
android:id=
"@+id/edt_
project_
introduction"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"43dp"
android:layout_height=
"43dp"
android:hint=
"请用一句话介绍该项目"
android:hint=
"请用一句话介绍该项目"
...
@@ -41,7 +52,7 @@
...
@@ -41,7 +52,7 @@
android:layout_marginEnd=
"12dp"
android:layout_marginEnd=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/edt_title"
/>
app:layout_constraintTop_toBottomOf=
"@+id/edt_
project_
title"
/>
<EditText
<EditText
android:id=
"@+id/edt_project_text"
android:id=
"@+id/edt_project_text"
...
@@ -59,7 +70,7 @@
...
@@ -59,7 +70,7 @@
android:layout_marginEnd=
"12dp"
android:layout_marginEnd=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/edt_introduction"
/>
app:layout_constraintTop_toBottomOf=
"@+id/edt_
project_
introduction"
/>
<androidx.viewpager.widget.ViewPager
<androidx.viewpager.widget.ViewPager
android:id=
"@+id/project_tool_bar"
android:id=
"@+id/project_tool_bar"
...
...
app/src/main/res/layout/activity_publish_question.xml
View file @
f5a9860d
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<Button
<Button
android:id=
"@+id/btn_question_preview"
android:layout_width=
"40dp"
android:layout_width=
"40dp"
android:layout_height=
"20dp"
android:layout_height=
"20dp"
android:text=
"预览"
android:text=
"预览"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment