diff --git a/Component/Channel/Channel.js b/Component/Channel/Channel.js
index 94145c2..04a1812 100644
--- a/Component/Channel/Channel.js
+++ b/Component/Channel/Channel.js
@@ -68,12 +68,14 @@ export default class Channel extends Component{
for(var i = 0;i< this.state.cateData.length;i++)
{
- if(i % 2 == 0){
+ if(i % 2 == 0 && (i + 1)<=this.state.cateData.length){
+ let data1 = (i <= this.state.cateData.length-1) ? this.state.cateData[i]:undefined;
+ let data2 = ((i + 1) <= this.state.cateData.length-1) ? this.state.cateData[i+1]:undefined;
let row = (
{/*hello*/}
-
-
-
@@ -150,7 +154,7 @@ retry() {
loadDataFromNet(){
- request.get(config.api.base + 'ysapi/v1/channel/all',{
+ request.get(config.api.base + 'seaapi/v1.Channel/getChannels',{
}).then(
(responseData)=>{
@@ -161,14 +165,12 @@ retry() {
cateData = jsonData.map(data => {
let dic={};
- dic['typeid'] = data['typeid'];
- dic['name'] = data['typename'];
+ dic['typeid'] = data['tid'];
+ dic['name'] = data['tname'];
dic['total'] = data['total'];
return dic;
})
-
-
this.setState(
{
pageLoading: false,
@@ -209,18 +211,18 @@ retry() {
class CateItem extends Component{
constructor(props) {
super(props);
- console.log('cateItem init');
+ console.log('cateitem init');
+ console.log(props);
}
render() {
-
+ if(this.props.data){
return (
-
@@ -231,14 +233,13 @@ class CateItem extends Component{
{this.props.data.total}
-
-
-
-
-
);
+ }else{
+ return
+ }
+
}
diff --git a/Component/Channel/ChannelDetail.js b/Component/Channel/ChannelDetail.js
index 9dd76f7..1c41475 100644
--- a/Component/Channel/ChannelDetail.js
+++ b/Component/Channel/ChannelDetail.js
@@ -26,6 +26,7 @@ import LoadImage from '../Until/LoadImage';
import RetryView from '../Widget/RetryView';
import LoadingView from '../Widget/LoadingView';
import Orientation from 'react-native-orientation';
+import YSNativeModule from '../Native/YSNativeModule'
var cols = 3;
var space = 8;
@@ -125,17 +126,18 @@ export default class ChannelDetail extends Component{
return(
{
- const { navigate } = this.props.navigation;
- navigate('VideoDetail',rowdata.item);
+ // const { navigate } = this.props.navigation;
+ // navigate('VideoDetail',rowdata.item);
+ YSNativeModule.goToVideoDetailWithId(rowdata.item.v_id);
} }>
-
+
8.0
- {rowdata.item.title}
+ {rowdata.item.v_name}
@@ -191,9 +193,9 @@ export default class ChannelDetail extends Component{
}
loadDataFromNet(page){
-
+
const { params } = this.props.navigation.state;
- request.post(config.api.base + 'ysapi/v1/rank/getrank',{
+ request.post(config.api.base + 'seaapi/v1.Rank/getRankByid',{
typeid:params.typeid,
page:this.cachedResults.nextPage,
pageSize:12,
diff --git a/Component/Home/AdHeader.js b/Component/Home/AdHeader.js
index ee1fba2..56ffae0 100644
--- a/Component/Home/AdHeader.js
+++ b/Component/Home/AdHeader.js
@@ -117,7 +117,7 @@ export default class AdHeader extends Component{
const { navigate } = this.props.navigation;
navigate('VideoDetail',imgItem);
} }>
-
+
);
}
diff --git a/Component/Home/ContentListCell.js b/Component/Home/ContentListCell.js
index 61c9370..bacb402 100644
--- a/Component/Home/ContentListCell.js
+++ b/Component/Home/ContentListCell.js
@@ -67,12 +67,12 @@ export default class ContentLIstCell extends Component{
navigate('VideoDetail',rowdata);
} }>
-
+
{'8分'}
- {rowdata.title}
+ {rowdata.v_name}
diff --git a/Component/Home/Home.js b/Component/Home/Home.js
index 9c52603..407f754 100644
--- a/Component/Home/Home.js
+++ b/Component/Home/Home.js
@@ -122,10 +122,10 @@ export default class Home extends Component{
Orientation.lockToPortrait();
this.loadDataFromNet();
}
- // https://localhost:8888/TP5.0/public/index.php/ysapi/v1.HomePage/getHomeData
+
loadDataFromNet(){
console.log('loadDataFromNet');
- request.get(config.api.base + 'ysapi/v1.HomePage/getHomeData',{
+ request.get(config.api.base + 'seaapi/v1.HomePage/getHomeData',{
}).then(
(responseData)=>{
@@ -155,7 +155,7 @@ export default class Home extends Component{
listDataArr.push(jsonData['tv_list']);
listDataArr.push(jsonData['arts_list']);
listDataArr.push(jsonData['comic_list']);
- listDataArr.push(jsonData['korean_iist']);
+
// 更新状态机
this.setState({
diff --git a/Component/Rank/Rank.js b/Component/Rank/Rank.js
index 9b4444e..9af2f7d 100644
--- a/Component/Rank/Rank.js
+++ b/Component/Rank/Rank.js
@@ -58,10 +58,10 @@ export default class Rank extends Component{
tabBarInactiveTextColor='#262626'
tabBarTextStyle={{fontSize: 14}}
>
-
-
-
-
+
+
+
+
@@ -229,7 +229,7 @@ class VideoList extends Component {
loadDataFromNet(page){
- request.post(config.api.base + 'ysapi/v1.Rank/getRankByid',{
+ request.post(config.api.base + 'seaapi/v1.Rank/getRankByid',{
typeid:this.props.type,
page:page
}).then(
@@ -296,15 +296,18 @@ class VideoList extends Component {
} }>
{/*左边*/}
-
+
{/*右边*/}
-
- {rowData.title}
+
+ {rowData.v_name}
-
+
+
+ {rowData.v_actor}
+
diff --git a/android/app/app-release.apk b/android/app/app-release.apk
deleted file mode 100644
index 71937e1..0000000
Binary files a/android/app/app-release.apk and /dev/null differ
diff --git a/android/app/build.gradle b/android/app/build.gradle
index b4baacf..3943b40 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,5 +1,5 @@
apply plugin: "com.android.application"
-apply plugin: 'android-apt'
+apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.mob.sdk'
import com.android.build.OutputFile
@@ -193,7 +193,7 @@ dependencies {
compile 'com.alibaba:fastjson:1.1.54.android'
//butterknife
compile "com.jakewharton:butterknife:${BUTTERKNIFE_VERSION}"
- annotationProcessor "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}"
+ apt "com.jakewharton:butterknife-compiler:${BUTTERKNIFE_VERSION}"
compile project(':giraffeplayer')
compile files('libs/picasso-2.5.2.jar')
compile files('libs/Msc.jar')
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index fc3f74a..8bdebfc 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -56,7 +56,9 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
+
+
> getSearchList(@Field("search") String searc
/**
* 详情
*/
- @GET("/detail/{id}")
- Observable> detail(@Path("id") String id);
+ @GET("seaapi/v1.Play/getPlayData")
+ Observable> detail(@Query("id") String id);
}
diff --git a/android/app/src/main/java/com/ysapp/jsmodel/VideoNativeModule.java b/android/app/src/main/java/com/ysapp/jsmodel/VideoNativeModule.java
index 28fb727..5d8dc2b 100644
--- a/android/app/src/main/java/com/ysapp/jsmodel/VideoNativeModule.java
+++ b/android/app/src/main/java/com/ysapp/jsmodel/VideoNativeModule.java
@@ -10,6 +10,7 @@
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.ysapp.entity.DetailEntity;
+import com.ysapp.ui.detail.view.DetailActivity;
import com.ysapp.ui.search.SearchActivity;
@@ -72,6 +73,29 @@ public void run() {
});
}
}
+
+ @ReactMethod
+ public void goToVideoDetailWithId(final String id){
+ final Activity currentActivity = getCurrentActivity();
+ if(null!=currentActivity) {
+ currentActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+
+
+ Intent intent = new Intent(currentActivity, DetailActivity.class);
+ intent.putExtra("id", id);
+ currentActivity.startActivity(intent);
+ }
+
+ });
+ }
+ }
+
+
+
+
+
@ReactMethod
public void getHistory()
{
diff --git a/android/app/src/main/java/com/ysapp/ui/detail/view/DetailActivity.java b/android/app/src/main/java/com/ysapp/ui/detail/view/DetailActivity.java
index 928163d..f87116a 100755
--- a/android/app/src/main/java/com/ysapp/ui/detail/view/DetailActivity.java
+++ b/android/app/src/main/java/com/ysapp/ui/detail/view/DetailActivity.java
@@ -176,6 +176,7 @@ private List- getItems(DetailEntity entity) {
lst.add(new Item("简介", fragment));
switch (entity.type) {
case 1:
+ //电影
fragment = new CommentsFragment();
fragment.setArguments(bundle);
lst.add(0, new Item("影评(" + (entity.comment_list != null ? entity.comment_list.size() : 0) + ")", fragment));
diff --git a/android/app/src/main/java/com/ysapp/widget/JustifyTextView.java b/android/app/src/main/java/com/ysapp/widget/JustifyTextView.java
new file mode 100755
index 0000000..4fbd1ba
--- /dev/null
+++ b/android/app/src/main/java/com/ysapp/widget/JustifyTextView.java
@@ -0,0 +1,118 @@
+package com.ysapp.widget;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.text.Layout;
+import android.text.StaticLayout;
+import android.text.TextPaint;
+import android.util.AttributeSet;
+import android.widget.TextView;
+
+/**
+ * @author ccheng
+ * @Date 3/18/14
+ */
+public class JustifyTextView extends TextView {
+
+ private int mLineY;
+ private int mViewWidth;
+ public static final String TWO_CHINESE_BLANK = " ";
+
+ public JustifyTextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int left, int top, int right,
+ int bottom) {
+ super.onLayout(changed, left, top, right, bottom);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ TextPaint paint = getPaint();
+ paint.setColor(getCurrentTextColor());
+ paint.drawableState = getDrawableState();
+ mViewWidth = getMeasuredWidth();
+ String text = getText().toString();
+ mLineY = 0;
+ mLineY += getTextSize();
+ Layout layout = getLayout();
+
+ // layout.getLayout()在4.4.3出现NullPointerException
+ if (layout == null) {
+ return;
+ }
+
+ Paint.FontMetrics fm = paint.getFontMetrics();
+
+ int textHeight = (int) (Math.ceil(fm.descent - fm.ascent));
+ textHeight = (int) (textHeight * layout.getSpacingMultiplier() + layout
+ .getSpacingAdd());
+
+ for (int i = 0; i < layout.getLineCount(); i++) {
+ int lineStart = layout.getLineStart(i);
+ int lineEnd = layout.getLineEnd(i);
+ float width = StaticLayout.getDesiredWidth(text, lineStart,
+ lineEnd, getPaint());
+ String line = text.substring(lineStart, lineEnd);
+ if (needScale(line)) {
+ if (i == layout.getLineCount() - 1) {
+ canvas.drawText(line, 0, mLineY, paint);
+ } else {
+ drawScaledText(canvas, lineStart, line, width);
+ }
+ } else {
+ canvas.drawText(line, 0, mLineY, paint);
+ }
+ mLineY += textHeight;
+ }
+ }
+
+ private void drawScaledText(Canvas canvas, int lineStart, String line,
+ float lineWidth) {
+ float x = 0;
+ if (isFirstLineOfParagraph(lineStart, line)) {
+ String blanks = " ";
+ canvas.drawText(blanks, x, mLineY, getPaint());
+ float bw = StaticLayout.getDesiredWidth(blanks, getPaint());
+ x += bw;
+
+ line = line.substring(3);
+ }
+
+ int gapCount = line.length() - 1;
+ int i = 0;
+ if (line.length() > 2 && line.charAt(0) == 12288
+ && line.charAt(1) == 12288) {
+ String substring = line.substring(0, 2);
+ float cw = StaticLayout.getDesiredWidth(substring, getPaint());
+ canvas.drawText(substring, x, mLineY, getPaint());
+ x += cw;
+ i += 2;
+ }
+
+ float d = (mViewWidth - lineWidth) / gapCount;
+ for (; i < line.length(); i++) {
+ String c = String.valueOf(line.charAt(i));
+ float cw = StaticLayout.getDesiredWidth(c, getPaint());
+ canvas.drawText(c, x, mLineY, getPaint());
+ x += cw + d;
+ }
+ }
+
+ private boolean isFirstLineOfParagraph(int lineStart, String line) {
+ return line.length() > 3 && line.charAt(0) == ' '
+ && line.charAt(1) == ' ';
+ }
+
+ private boolean needScale(String line) {
+ if (line == null || line.length() == 0) {
+ return false;
+ } else {
+ return line.charAt(line.length() - 1) != '\n';
+ }
+ }
+
+}
diff --git a/android/app/src/main/res/layout/activity_detail.xml b/android/app/src/main/res/layout/activity_detail.xml
index 2f1a87e..c136d45 100755
--- a/android/app/src/main/res/layout/activity_detail.xml
+++ b/android/app/src/main/res/layout/activity_detail.xml
@@ -81,7 +81,7 @@
android:paddingLeft="14dp"
android:paddingRight="14dp">
-
-
@@ -157,7 +157,7 @@
android:textSize="12dp" />
-
-
-
-
-