Browse Source

1.移除播放器
2.修改登录问题

FailedToRead 3 năm trước cách đây
mục cha
commit
1f6c18c8aa
27 tập tin đã thay đổi với 169 bổ sung4577 xóa
  1. 4 14
      app/build.gradle
  2. 12 20
      app/src/main/AndroidManifest.xml
  3. 0 88
      app/src/main/java/com/edufound/android/xyyf/activity/DialogActivity.java
  4. 0 208
      app/src/main/java/com/edufound/android/xyyf/activity/IJKPlayerActivity.java
  5. 9 2
      app/src/main/java/com/edufound/android/xyyf/activity/PhoneNumLoginActivity.java
  6. 0 203
      app/src/main/java/com/edufound/android/xyyf/activity/VideoActivity.java
  7. 0 251
      app/src/main/java/com/edufound/android/xyyf/adapter/WindowVideoAdapter.java
  8. 36 79
      app/src/main/java/com/edufound/android/xyyf/config/FullPortConfig.java
  9. 0 167
      app/src/main/java/com/edufound/android/xyyf/fragment/VideoFragment.java
  10. 0 103
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/application/Settings.java
  11. 0 57
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/FileMediaDataSource.java
  12. 0 42
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IMediaController.java
  13. 0 87
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IRenderView.java
  14. 0 1150
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IjkVideoView.java
  15. 0 215
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/MeasureHelper.java
  16. 0 288
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/SurfaceRenderView.java
  17. 0 370
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/TextureRenderView.java
  18. 0 63
      app/src/main/java/com/edufound/android/xyyf/ijkplayer/services/MediaPlayerService.java
  19. 16 54
      app/src/main/java/com/edufound/android/xyyf/interfaces/JsInterfaces.java
  20. 3 3
      app/src/main/java/com/edufound/android/xyyf/util/OKHttpUtil.java
  21. 0 31
      app/src/main/java/com/edufound/android/xyyf/video/VideoAView.java
  22. 0 15
      app/src/main/java/com/edufound/android/xyyf/video/VideoModel.java
  23. 0 906
      app/src/main/java/com/edufound/android/xyyf/video/VideoPersenter.java
  24. 1 1
      app/src/main/res/drawable/shape_corner.xml
  25. 85 157
      app/src/main/res/layout/activity_privacypolicy.xml
  26. 2 2
      app/src/main/res/values/projectstring.xml
  27. 1 1
      push/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties

+ 4 - 14
app/build.gradle

@@ -1,7 +1,7 @@
 apply plugin: "com.android.application"
 
 def releaseTime() {
-    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
+    return new Date().format("yyyyMMddHHmmss")
 }
 
 android {
@@ -10,8 +10,8 @@ android {
         applicationId "com.edufound.android.xyyf"
         minSdkVersion 16
         targetSdkVersion 28
-        versionCode 10000
-        versionName "1.0.0.0"
+        versionCode 10001
+        versionName "1.0.0.1"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         multiDexEnabled true
         flavorDimensions "versionCode"
@@ -144,7 +144,7 @@ android {
         //华为
         channel_huawei {
             signingConfig signingConfigs.efunbox
-            applicationIdSuffix ".hw"
+//            applicationIdSuffix ".hw"
             manifestPlaceholders = [
                     appCode: "2005",
                     appIcon: "@drawable/icon",
@@ -167,16 +167,6 @@ dependencies {
     implementation "com.android.support:appcompat-v7:28.0.0"
     implementation "android.arch.navigation:navigation-fragment:1.0.0"
     implementation "android.arch.navigation:navigation-ui:1.0.0"
-    // required, enough for most devices.
-    api "tv.danmaku.ijk.media:ijkplayer-java:0.8.2"
-    api "tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.2"
-    // Other ABIs: optional
-    api "tv.danmaku.ijk.media:ijkplayer-armv5:0.8.2"
-    api "tv.danmaku.ijk.media:ijkplayer-arm64:0.8.2"
-    api "tv.danmaku.ijk.media:ijkplayer-x86:0.8.2"
-    api "tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.2"
-    // ExoPlayer as IMediaPlayer: optional, experimental
-    api "tv.danmaku.ijk.media:ijkplayer-exo:0.8.2"
     api files("libs/codec.jar")
     api files("libs/commons-codec-1.7.jar")
     api files("libs/commons-lang-2.2.jar")

+ 12 - 20
app/src/main/AndroidManifest.xml

@@ -15,7 +15,6 @@
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 切换网络通道 -->
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 开关wifi状态,解决国内机型移动网络权限问题需要 -->
-    <uses-sdk tools:overrideLibrary="tv.danmaku.ijk.media.player_arm64,tv.danmaku.ijk.media.player_x86_64" />
 
     <application
             android:name="com.edufound.android.xyyf.application.EApplication"
@@ -23,10 +22,10 @@
             android:icon="${icon}"
             android:label="@string/app_name"
             android:networkSecurityConfig="@xml/network_security_config"
-            android:usesCleartextTraffic="true"
             android:resizeableActivity="true"
             android:supportsRtl="true"
             android:theme="@style/NoTitle"
+            android:usesCleartextTraffic="true"
             tools:replace="allowBackup">
 
         <meta-data
@@ -47,11 +46,6 @@
                 android:screenOrientation="landscape"
                 android:theme="@style/AppStartTheme">
             <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-            <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
 
                 <category android:name="android.intent.category.DEFAULT" />
@@ -64,22 +58,20 @@
             </intent-filter>
         </activity>
         <activity
-                android:name="com.edufound.android.xyyf.activity.IJKPlayerActivity"
-                android:configChanges="orientation|screenSize"
-                android:screenOrientation="landscape"
-                android:theme="@style/NoTitle"></activity>
-        <activity
-                android:name="com.edufound.android.xyyf.activity.VideoActivity"
-                android:configChanges="orientation|screenSize"
-                android:screenOrientation="landscape"
-                android:theme="@style/NoTitle"></activity>
+                android:name="com.edufound.android.xyyf.activity.AgreementActivity"
+                android:maxAspectRatio="2.1"
+                android:resizeableActivity="true"
+                android:screenOrientation="portrait">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
 
-        <activity
-                android:name=".activity.DialogActivity"
-                android:screenOrientation="landscape"
-                android:theme="@style/dialog"></activity>
         <activity
                 android:name=".activity.PhoneNumLoginActivity"
+                android:launchMode="singleInstance"
                 android:screenOrientation="portrait"
                 android:theme="@style/NoTitle"></activity>
         <!--友盟start-->

+ 0 - 88
app/src/main/java/com/edufound/android/xyyf/activity/DialogActivity.java

@@ -1,88 +0,0 @@
-package com.edufound.android.xyyf.activity;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Process;
-import android.support.annotation.Nullable;
-import android.util.DisplayMetrics;
-import android.view.View;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.base.BaseActivity;
-import com.edufound.android.xyyf.util.SPutil;
-
-public class DialogActivity extends BaseActivity {
-    private static DisplayMetrics metric = new DisplayMetrics();
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-//        int widht = getWidth(this);
-//        int height = getHeight(this);
-//        initDesignSize(this, widht, height);
-        View bv = this.findViewById(android.R.id.title);
-        bv.setVisibility(View.GONE);
-        setFinishOnTouchOutside(false);
-        setContentView(R.layout.activity_privacypolicy);
-        findViewById(R.id.activity_dialog_cancel).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                android.os.Process.killProcess(Process.myPid());
-            }
-        });
-
-        findViewById(R.id.activity_dialog_ok).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                SPutil.setPrefBoolean(DialogActivity.this, "privacyOK", true);
-                finish();
-            }
-        });
-
-    }
-
-    /**
-     * 获取宽度
-     */
-    public int getWidth(Activity context) {
-        context.getWindowManager().getDefaultDisplay().getMetrics(metric);
-        return metric.widthPixels; // 屏幕宽度(像素)
-    }
-
-    /**
-     * 获取宽度
-     */
-    public int getHeight(Activity context) {
-        context.getWindowManager().getDefaultDisplay().getMetrics(metric);
-        return metric.heightPixels; // 屏幕高度(像素)
-    }
-
-
-    public void initDesignSize(Context context, int screenWidth, int screenHeight) {
-        int designWidth = 1280;
-        int designHeight = 720;
-        float ds = 1.0f * designWidth / designHeight;
-        float ts = 1.0f * screenWidth / screenHeight;
-        float designScale = 0.0f;
-        if (ds >= ts) {
-            int targetWidth = screenWidth;
-            designScale = 1.0f * targetWidth / designWidth;
-
-        } else {
-            int targetHeight = screenHeight;
-            designScale = 1.0f * targetHeight / designHeight;
-
-        }
-        setDisplay(context, designScale);
-    }
-
-    private void setDisplay(Context context, float designScale) {
-        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
-        displayMetrics.density = designScale;
-        displayMetrics.scaledDensity = displayMetrics.density;
-        displayMetrics.xdpi = displayMetrics.density * 160;
-        displayMetrics.ydpi = displayMetrics.xdpi;
-        displayMetrics.densityDpi = Float.valueOf(displayMetrics.xdpi).intValue();
-    }
-}

+ 0 - 208
app/src/main/java/com/edufound/android/xyyf/activity/IJKPlayerActivity.java

@@ -1,208 +0,0 @@
-package com.edufound.android.xyyf.activity;
-
-import android.app.Activity;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.base.BaseActivity;
-import com.edufound.android.xyyf.ijkplayer.media.IjkVideoView;
-import com.edufound.android.xyyf.util.ContextUtil;
-import com.edufound.android.xyyf.video.VideoAView;
-import com.edufound.android.xyyf.video.VideoPersenter;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-import tv.danmaku.ijk.media.player.IjkMediaPlayer;
-
-public class IJKPlayerActivity extends BaseActivity implements VideoAView {
-
-    VideoPersenter mPersenter;
-    IjkVideoView mVideoView;
-    FrameLayout mFrameLayout;
-    IJKPlayerActivity mActivity;
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        setContentView(R.layout.activity_player);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        // init player
-        IjkMediaPlayer.loadLibrariesOnce(null);
-        IjkMediaPlayer.native_profileBegin("libijkplayer.so");
-        mPersenter = new VideoPersenter(this);
-        super.onCreate(savedInstanceState);
-    }
-
-
-    @Override
-    protected void initVew() {
-        super.initVew();
-        mFrameLayout = findViewById(R.id.player_frame);
-        mVideoView = new IjkVideoView(ContextUtil.getContext());
-        mVideoView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
-        mVideoView.setOnCompletionListener(new IMediaPlayer.OnCompletionListener() {
-            @Override
-            public void onCompletion(IMediaPlayer iMediaPlayer) {
-                mPersenter.onCompletion();
-            }
-        });
-        mVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
-            @Override
-            public void onPrepared(IMediaPlayer iMediaPlayer) {
-                mPersenter.onPrepared();
-            }
-        });
-        mVideoView.setOnInfoListener(new IMediaPlayer.OnInfoListener() {
-            @Override
-            public boolean onInfo(IMediaPlayer iMediaPlayer, int what, int extra) {
-                mPersenter.onInfo(what, extra);
-                return true;
-            }
-        });
-        mVideoView.setOnErrorListener(new IMediaPlayer.OnErrorListener() {
-            @Override
-            public boolean onError(IMediaPlayer iMediaPlayer, int what, int extra) {
-
-                return mPersenter.onError(what, extra);
-            }
-        });
-        mFrameLayout.addView(mVideoView);
-        mFrameLayout.addView(mPersenter.getPlayerController());
-        mPersenter.loadVideo(getIntent());
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        return mPersenter.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
-        return mPersenter.onKeyUp(keyCode, event);
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        activityFinish();
-
-    }
-
-    @Override
-    public void setVideoUri(Uri uri) {
-        mVideoView.setVideoURI(uri);
-    }
-
-    @Override
-    public void start() {
-        mVideoView.start();
-    }
-
-    @Override
-    public void pause() {
-        mVideoView.pause();
-    }
-
-    @Override
-    public void stop() {
-        mVideoView.stopPlayback();
-    }
-
-    @Override
-    public void releaseVideo() {
-        mVideoView.stopPlayback();
-        mVideoView.resume();
-        mVideoView.release(true);
-    }
-
-    @Override
-    public void seek(int seek) {
-        mVideoView.seekTo(seek);
-    }
-
-    @Override
-    public boolean isPlaying() {
-        return mVideoView.isPlaying();
-    }
-
-    @Override
-    public int getDuration() {
-        return mVideoView.getDuration();
-    }
-
-    @Override
-    public int getCurrent() {
-        return mVideoView.getCurrentPosition();
-    }
-
-    @Override
-    public void activityFinish() {
-        if (mVideoView != null) {
-            mVideoView.stopPlayback();
-        }
-        mVideoView = null;
-        mPersenter.destroy();
-        finish();
-//        System.exit(0);
-    }
-
-
-    @Override
-    public void showData(String text) {
-
-    }
-
-    @Override
-    public void DisconnNetWork() {
-        super.DisconnNetWork();
-        if (getLocalPckClas().equals(getTopActivity(this))) {
-            mPersenter.onDisConnNetWork();
-        }
-    }
-
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        return mPersenter.onTouchEvent(event);
-    }
-
-    @Override
-    public void ConnNeWork() {
-        super.ConnNeWork();
-        if (getLocalPckClas().equals(getTopActivity(this))) {
-            mPersenter.onConnNetWork();
-        }
-    }
-
-    @Override
-    public Activity getActivity() {
-        if (mActivity == null) {
-            mActivity = this;
-        }
-        return mActivity;
-    }
-
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-//        super.onSaveInstanceState(outState);
-        mPersenter.onSaveInstanceState(outState);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-//        super.onRestoreInstanceState(savedInstanceState);
-        mPersenter.onRestoreInstanceState(savedInstanceState);
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        mPersenter.onResume();
-    }
-}

+ 9 - 2
app/src/main/java/com/edufound/android/xyyf/activity/PhoneNumLoginActivity.java

@@ -10,6 +10,7 @@ import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.os.Process;
 import android.support.annotation.Nullable;
 import android.view.Gravity;
 import android.view.KeyEvent;
@@ -25,6 +26,7 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.edufound.android.xyyf.R;
+import com.edufound.android.xyyf.application.EApplication;
 import com.edufound.android.xyyf.base.BaseActivity;
 import com.edufound.android.xyyf.config.AppUtils;
 import com.edufound.android.xyyf.phonelogin.PhoneLoginPersenter;
@@ -72,7 +74,7 @@ public class PhoneNumLoginActivity extends BaseActivity implements PhoneLoginVie
         setTextSize(phonenumber_getverifcation, 6);
         setTextSize(phonenumber_login, 6);
         change_text.setText("切换一键登录");
-        if (getIntent().getStringExtra("code") != null && getIntent().getStringExtra("code").equals("600015")) {
+        if (getIntent().getStringExtra("code") != null) {
             change_text.setVisibility(View.GONE);
             haveError = true;
         }
@@ -217,8 +219,13 @@ public class PhoneNumLoginActivity extends BaseActivity implements PhoneLoginVie
         switch (keyCode) {
             case KeyEvent.KEYCODE_BACK:
             case KeyEvent.KEYCODE_ESCAPE:
+                Logger.e("haveError:" + haveError);
                 if (haveError) {
-                    MainActivity.getInstance().mPersenter.getJsInterfaces().closeApp();
+                    EApplication.clearActivity();
+                    System.exit(0);
+                    android.os.Process.killProcess(Process.myPid());
+                } else {
+                    finish();
                 }
                 break;
         }

+ 0 - 203
app/src/main/java/com/edufound/android/xyyf/activity/VideoActivity.java

@@ -1,203 +0,0 @@
-package com.edufound.android.xyyf.activity;
-
-import android.app.Activity;
-import android.media.MediaPlayer;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
-import android.view.Gravity;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-import android.widget.VideoView;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.base.BaseActivity;
-import com.edufound.android.xyyf.util.ContextUtil;
-import com.edufound.android.xyyf.video.VideoAView;
-import com.edufound.android.xyyf.video.VideoPersenter;
-
-public class VideoActivity extends BaseActivity implements VideoAView {
-
-    VideoActivity mActivity;
-    VideoPersenter mPersenter;
-    VideoView mVideoView;
-    FrameLayout mFrameLayout;
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        setContentView(R.layout.activity_player);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        mPersenter = new VideoPersenter(this);
-        super.onCreate(savedInstanceState);
-    }
-
-    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
-    @Override
-    protected void initVew() {
-        super.initVew();
-        mFrameLayout = findViewById(R.id.player_frame);
-        mVideoView = new VideoView(ContextUtil.getContext());
-        mVideoView.resume();
-        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
-        params.gravity = Gravity.CENTER;
-        mVideoView.setLayoutParams(params);
-        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
-            @Override
-            public void onCompletion(MediaPlayer mp) {
-                mPersenter.onCompletion();
-            }
-        });
-        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
-            @Override
-            public void onPrepared(MediaPlayer mp) {
-                mPersenter.onPrepared();
-            }
-        });
-        mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
-            @Override
-            public boolean onInfo(MediaPlayer mp, int what, int extra) {
-                mPersenter.onInfo(what, extra);
-                return true;
-            }
-        });
-        mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
-            @Override
-            public boolean onError(MediaPlayer mp, int what, int extra) {
-                return mPersenter.onError(what, extra);
-            }
-        });
-        mFrameLayout.addView(mVideoView);
-        mFrameLayout.addView(mPersenter.getPlayerController());
-        mPersenter.loadVideo(getIntent());
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        return mPersenter.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
-        return mPersenter.onKeyUp(keyCode, event);
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        activityFinish();
-
-    }
-
-    @Override
-    public void setVideoUri(Uri uri) {
-        mVideoView.setVideoURI(uri);
-    }
-
-    @Override
-    public void start() {
-        mVideoView.start();
-    }
-
-    @Override
-    public void pause() {
-        mVideoView.pause();
-    }
-
-    @Override
-    public void stop() {
-        mVideoView.stopPlayback();
-    }
-
-    @Override
-    public void releaseVideo() {
-        mVideoView.stopPlayback();
-        mVideoView.resume();
-    }
-
-    @Override
-    public void seek(int seek) {
-        mVideoView.seekTo(seek);
-    }
-
-    @Override
-    public boolean isPlaying() {
-        return mVideoView.isPlaying();
-    }
-
-    @Override
-    public int getDuration() {
-        return mVideoView.getDuration();
-    }
-
-    @Override
-    public int getCurrent() {
-        return mVideoView.getCurrentPosition();
-    }
-
-    @Override
-    public void activityFinish() {
-        if (mVideoView != null) {
-            mVideoView.stopPlayback();
-        }
-        mVideoView = null;
-        mPersenter.destroy();
-        finish();
-    }
-
-
-    @Override
-    public void showData(String text) {
-
-    }
-
-    @Override
-    public void DisconnNetWork() {
-        super.DisconnNetWork();
-        if (getLocalPckClas().equals(getTopActivity(this))) {
-            mPersenter.onDisConnNetWork();
-        }
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        return mPersenter.onTouchEvent(event);
-    }
-
-    @Override
-    public void ConnNeWork() {
-        super.ConnNeWork();
-        if (getLocalPckClas().equals(getTopActivity(this))) {
-        }
-    }
-
-    @Override
-    public Activity getActivity() {
-        if (mActivity == null) {
-            mActivity = this;
-        }
-        return mActivity;
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-//        super.onSaveInstanceState(outState);
-        mPersenter.onSaveInstanceState(outState);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-//        super.onRestoreInstanceState(savedInstanceState);
-        mPersenter.onRestoreInstanceState(savedInstanceState);
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        mPersenter.onResume();
-    }
-}

+ 0 - 251
app/src/main/java/com/edufound/android/xyyf/adapter/WindowVideoAdapter.java

@@ -1,251 +0,0 @@
-package com.edufound.android.xyyf.adapter;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.drawable.Drawable;
-import android.media.MediaMetadataRetriever;
-import android.media.ThumbnailUtils;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Handler;
-import android.os.Message;
-import android.provider.MediaStore;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.CardView;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.ijkplayer.media.IjkVideoView;
-import com.edufound.android.xyyf.util.Logger;
-import com.edufound.android.xyyf.video.VideoPersenter;
-
-import java.util.HashMap;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-
-public class WindowVideoAdapter extends RecyclerView.Adapter<WindowVideoAdapter.WindowVideoApapterHolder> {
-    private LayoutInflater mLayoutInflater;
-    private Context mContext;
-    private VideoPersenter.VideoJsonBean[] mVideoBean;
-    private HashMap<String, Drawable> mVideoBitmap;
-    Message holderMsg;
-
-    public WindowVideoAdapter(Context context, VideoPersenter.VideoJsonBean[] beans, HashMap<String, Drawable> map) {
-        mContext = context;
-        mVideoBean = beans;
-        mVideoBitmap = map;
-        mLayoutInflater = LayoutInflater.from(context);
-//        loadVideoBitmap();
-    }
-
-
-    @NonNull
-    @Override
-    public WindowVideoApapterHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
-        Logger.e("WindowVideoApapterHolder");
-        return new WindowVideoApapterHolder(LayoutInflater.from(mContext).inflate(R.layout.fragment_video, viewGroup, false));
-    }
-
-    @Override
-    public void onViewAttachedToWindow(@NonNull WindowVideoApapterHolder holder) {
-        super.onViewAttachedToWindow(holder);
-        holder.showImage();
-        return;
-    }
-
-    @Override
-    public void onViewDetachedFromWindow(@NonNull WindowVideoApapterHolder holder) {
-        holder.mVideoView.stopPlayback();
-//        holder.mVideoView.seekTo(0);
-        return;
-    }
-
-    @Override
-    public void onBindViewHolder(@NonNull final WindowVideoApapterHolder holder, int i) {
-        try {
-            Logger.e("onBindViewHolder");
-//            String url = AesUtil.Decrypt(mVideoBean[i].videourl);
-            final String url = mVideoBean[i].videourl;
-//            String url = "http://efunimgs.ai160.com/ott/test/002tPr2Xlx07oP7B4ro40104120022hP0k010.mp4";
-//            String url = "https://www.apple.com/105/media/cn/iphone-x/2017/01df5b43-28e4-4848-bf20-490c34a926a7/films/feature/iphone-x-feature-cn-20170912_1280x720h.mp4";
-            holder.mVideoView.setVideoURI(Uri.parse(url));
-            Logger.e("url:" + url);
-            holder.mVideoName = mVideoBean[i].videoname;
-            holder.url = url;
-            holder.mImageFrame.setBackground(mVideoBitmap.get(mVideoBean[i].videoid));
-            holder.mImageFrame.setTag(mVideoBitmap.get(mVideoBean[i].videoid));
-//            if (holder.mImageFrame.getTag() != null) {
-//                holder.mImageFrame.setBackground((Drawable) holder.mImageFrame.getTag());
-//            } else {
-//                new Thread() {
-//                    @Override
-//                    public void run() {
-//                        super.run();
-//                        Drawable drawable = new BitmapDrawable(createVideoThumbnail(url, 200, 200));
-//                        holder.mImageFrame.setTag(drawable);
-//                        holderMsg = new Message();
-//                        holderMsg.what = 2;
-//                        holderMsg.obj = holder;
-//                        handler.sendMessage(holderMsg);
-//                    }
-//                }.start();
-//            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
-    public Bitmap createVideoThumbnail(String url, int width, int height) {
-        Bitmap bitmap = null;
-        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
-        int kind = MediaStore.Video.Thumbnails.MINI_KIND;
-        try {
-            if (Build.VERSION.SDK_INT >= 14) {
-                retriever.setDataSource(url, new HashMap<String, String>());
-            } else {
-                retriever.setDataSource(url);
-            }
-            bitmap = retriever.getFrameAtTime(1000);
-        } catch (IllegalArgumentException ex) {
-            // Assume this is a corrupt video file
-        } catch (RuntimeException ex) {
-            // Assume this is a corrupt video file.
-        } finally {
-            try {
-                retriever.release();
-            } catch (RuntimeException ex) {
-                // Ignore failures while cleaning up.
-            }
-        }
-        if (kind == MediaStore.Images.Thumbnails.MICRO_KIND && bitmap != null) {
-            bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
-                    ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
-        }
-        return bitmap;
-    }
-
-    Handler handler = new Handler(new Handler.Callback() {
-        @Override
-        public boolean handleMessage(Message msg) {
-            switch (msg.what) {
-                case 1:
-//                    WindowVideoApapterHolder holder = (WindowVideoApapterHolder) msg.obj;
-//                    if (holder.mImageFrame.getTag() != null) {
-//                        holder.mImageFrame.setBackground((Drawable) holder.mImageFrame.getTag());
-//                    } else {
-//                        Drawable drawable = new BitmapDrawable(createVideoThumbnail(holder.url, 200, 200));
-//                        holder.mImageFrame.setTag(drawable);
-//                        holder.mImageFrame.setBackground(drawable);
-//                    }
-                    break;
-                case 2:
-                    WindowVideoApapterHolder holder = (WindowVideoApapterHolder) msg.obj;
-                    Logger.e("设置--" + holder.mVideoName + "---图片");
-                    holder.mImageFrame.setBackground((Drawable) holder.mImageFrame.getTag());
-                    break;
-            }
-            return false;
-        }
-    });
-
-
-    @Override
-    public int getItemCount() {
-        return mVideoBean.length;
-    }
-
-    public class WindowVideoApapterHolder extends RecyclerView.ViewHolder {
-
-        String url;
-        CardView mVideoCardView;
-        IjkVideoView mVideoView;
-        ImageView mImageFrame;
-        String mVideoName;
-
-
-        WindowVideoApapterHolder(View itemView) {
-            super(itemView);
-            mVideoCardView = itemView.findViewById(R.id.fragment_cardview);
-            mVideoCardView.setRadius(50);
-            mVideoView = itemView.findViewById(R.id.fragment_video);
-            mVideoView.setRender(IjkVideoView.RENDER_TEXTURE_VIEW);
-            mImageFrame = itemView.findViewById(R.id.fragment_image_frame);
-            mImageFrame.setVisibility(View.GONE);
-            mVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
-                @Override
-                public void onPrepared(IMediaPlayer mp) {
-                    Logger.e("加载--" + mVideoName + "--完成了");
-//                    showImage();
-//                    mVideoView.start();
-//                    mVideoView.pause();
-//                    handler.sendEmptyMessageDelayed(1, 0);
-                }
-            });
-            mVideoView.setOnErrorListener(new IMediaPlayer.OnErrorListener() {
-                @Override
-                public boolean onError(IMediaPlayer mp, int what, int extra) {
-                    Logger.e("WindowVideoAdapter---WindowVideoApapterHolder-onError");
-                    return false;
-                }
-            });
-            mVideoView.setOnCompletionListener(new IMediaPlayer.OnCompletionListener() {
-                @Override
-                public void onCompletion(IMediaPlayer mp) {
-                    Logger.e("WindowVideoAdapter---WindowVideoApapterHolder-onCompletion");
-                }
-            });
-        }
-
-        Handler handler = new Handler(new Handler.Callback() {
-            @Override
-            public boolean handleMessage(Message msg) {
-                switch (msg.what) {
-                    case 1:
-                        if (mVideoView.isPlaying() == false) {
-                            mVideoView.start();
-                        }
-                        if (mVideoView.getCurrentPosition() > 500) {
-                            mImageFrame.setVisibility(View.GONE);
-                        } else {
-                            handler.sendEmptyMessageDelayed(1, 0);
-                        }
-
-                        break;
-                }
-                return false;
-            }
-        });
-
-        public void sendHanlder(int what) {
-            handler.sendEmptyMessage(what);
-        }
-
-        public void start() {
-            Logger.e("WindowVideoAdapter---WindowVideoApapterHolder--start");
-            mVideoView.start();
-        }
-
-        public void stop() {
-            Logger.e("WindowVideoAdapter---WindowVideoApapterHolder--stop");
-            mVideoView.stopPlayback();
-        }
-
-        public void hideImage() {
-            Logger.e("WindowVideoAdapter---WindowVideoApapterHolder--hideImage");
-//            mImageFrame.setVisibility(View.GONE);
-            handler.sendEmptyMessageDelayed(1, 1000);
-        }
-
-        public void showImage() {
-            Logger.e("WindowVideoAdapter---WindowVideoApapterHolder--showImage");
-            mImageFrame.setVisibility(View.VISIBLE);
-        }
-    }
-}

+ 36 - 79
app/src/main/java/com/edufound/android/xyyf/config/FullPortConfig.java

@@ -114,88 +114,45 @@ public class FullPortConfig extends BaseUIConfig {
         if (Build.VERSION.SDK_INT == 26) {
             authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
         }
-        AuthUIConfig authUIConfig = null;
-        if (EApplication.getAppCode().equals("2007")) {
-            authUIConfig = new AuthUIConfig.Builder()
-                    .setAppPrivacyOne("《APP用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/protocol.htm")
+        AuthUIConfig authUIConfig = new AuthUIConfig.Builder()
+                .setAppPrivacyOne("《隐私权限和用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/protocol.htm")
 //                .setAppPrivacyTwo("《百度》", "https://www.baidu.com")
-                    .setPrivacyState(false)
-                    .setAppPrivacyColor(Color.parseColor("#0B0B0B"), Color.parseColor("#2CBCFF"))
-                    //隐藏默认切换其他登录方式
-                    .setSwitchAccHidden(true)
-                    //隐藏默认Toast
-                    .setLogBtnToastHidden(false)
-                    //沉浸式状态栏
-                    .setStatusBarHidden(false)
-                    .setStatusBarColor(Color.WHITE)
-                    .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
-                    .setLightColor(true)
-                    .setWebNavTextSize(20)
-                    //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
+                .setPrivacyState(false)
+                .setAppPrivacyColor(Color.parseColor("#0B0B0B"), Color.parseColor("#2CBCFF"))
+                //隐藏默认切换其他登录方式
+                .setSwitchAccHidden(true)
+                //隐藏默认Toast
+                .setLogBtnToastHidden(false)
+                //沉浸式状态栏
+                .setStatusBarHidden(false)
+                .setStatusBarColor(Color.WHITE)
+                .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
+                .setLightColor(true)
+                .setWebNavTextSize(20)
+                //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
 //                .setAuthPageActIn("in_activity", "out_activity")
 //                .setAuthPageActOut("in_activity", "out_activity")
-                    .setVendorPrivacyPrefix("《")
-                    .setVendorPrivacySuffix("》")
-                    .setPageBackgroundPath("page_background_color")
-                    .setLogoImgPath("icon")
-                    //一键登录按钮三种状态背景示例login_btn_bg.xml
-                    .setLogBtnBackgroundPath("login_btn_bg")
-                    .setLogBtnTextSize(AppUtils.dp2px(mContext, 6))
-                    .setLogBtnOffsetY(AppUtils.dp2px(mContext, 100))
-                    .setScreenOrientation(authPageOrientation)
-                    .setNavText("")
-                    .setNavReturnHidden(true)
-                    .setNavColor(Color.WHITE)
-                    .setSloganHidden(true)
-                    .setSwitchAccText("其他手机号登录")
-                    .setSwitchAccTextColor(Color.parseColor("#0B0B0B"))
-                    .setProtocolLayoutGravity(Gravity.TOP)
-                    .setUncheckedImgPath("logincheck")
-                    .setCheckedImgPath("logincheck_selected")
-                    .setPrivacyTextSize(12)
-                    .setProtocolGravity(Gravity.TOP)
-                    .create();
-        } else {
-            authUIConfig = new AuthUIConfig.Builder()
-                    .setAppPrivacyOne("《APP用户协议》", "http://m-xyyf-web.ai160.com/res/protocol/protocol.htm")
-//                .setAppPrivacyTwo("《百度》", "https://www.baidu.com")
-                    .setPrivacyState(true)
-                    .setAppPrivacyColor(Color.parseColor("#0B0B0B"), Color.parseColor("#2CBCFF"))
-                    //隐藏默认切换其他登录方式
-                    .setSwitchAccHidden(true)
-                    //隐藏默认Toast
-                    .setLogBtnToastHidden(false)
-                    //沉浸式状态栏
-                    .setStatusBarHidden(false)
-                    .setStatusBarColor(Color.WHITE)
-                    .setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
-                    .setLightColor(true)
-                    .setWebNavTextSize(20)
-                    //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
-//                .setAuthPageActIn("in_activity", "out_activity")
-//                .setAuthPageActOut("in_activity", "out_activity")
-                    .setVendorPrivacyPrefix("《")
-                    .setVendorPrivacySuffix("》")
-                    .setPageBackgroundPath("page_background_color")
-                    .setLogoImgPath("icon")
-                    //一键登录按钮三种状态背景示例login_btn_bg.xml
-                    .setLogBtnBackgroundPath("login_btn_bg")
-                    .setLogBtnTextSize(AppUtils.dp2px(mContext, 6))
-                    .setLogBtnOffsetY(AppUtils.dp2px(mContext, 100))
-                    .setScreenOrientation(authPageOrientation)
-                    .setNavText("")
-                    .setNavReturnHidden(true)
-                    .setNavColor(Color.WHITE)
-                    .setSloganHidden(true)
-                    .setSwitchAccText("其他手机号登录")
-                    .setSwitchAccTextColor(Color.parseColor("#0B0B0B"))
-                    .setProtocolLayoutGravity(Gravity.TOP)
-                    .setUncheckedImgPath("logincheck")
-                    .setCheckedImgPath("logincheck_selected")
-                    .setPrivacyTextSize(12)
-                    .setProtocolGravity(Gravity.TOP)
-                    .create();
-        }
+                .setVendorPrivacyPrefix("《")
+                .setVendorPrivacySuffix("》")
+                .setPageBackgroundPath("page_background_color")
+                .setLogoImgPath("icon")
+                //一键登录按钮三种状态背景示例login_btn_bg.xml
+                .setLogBtnBackgroundPath("login_btn_bg")
+                .setLogBtnTextSize(AppUtils.dp2px(mContext, 6))
+                .setLogBtnOffsetY(AppUtils.dp2px(mContext, 100))
+                .setScreenOrientation(authPageOrientation)
+                .setNavText("")
+                .setNavReturnHidden(true)
+                .setNavColor(Color.WHITE)
+                .setSloganHidden(true)
+                .setSwitchAccText("其他手机号登录")
+                .setSwitchAccTextColor(Color.parseColor("#0B0B0B"))
+                .setProtocolLayoutGravity(Gravity.TOP)
+                .setUncheckedImgPath("logincheck")
+                .setCheckedImgPath("logincheck_selected")
+                .setPrivacyTextSize(12)
+                .setProtocolGravity(Gravity.TOP)
+                .create();
         mAuthHelper.setAuthUIConfig(authUIConfig);
     }
 

+ 0 - 167
app/src/main/java/com/edufound/android/xyyf/fragment/VideoFragment.java

@@ -1,167 +0,0 @@
-package com.edufound.android.xyyf.fragment;
-
-import android.app.Fragment;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.CardView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.video.VideoAView;
-import com.edufound.android.xyyf.video.VideoPersenter;
-import com.edufound.android.xyyf.view.CusVideoView;
-import com.google.gson.Gson;
-
-public class VideoFragment extends Fragment implements VideoAView {
-
-    FrameLayout mFragmentView;
-    CusVideoView mVideoView;
-    CardView mCardView;
-    VideoPersenter mPersenter;
-    private Gson mGson;
-    int mPlayIndex;
-    int mPlayType;
-    String mPlayingId;
-    String mPlayNeedPost;
-    String mPlayerModuleType;
-    private VideoPersenter.VideoJsonBean[] mVideoBean;
-    int mPlayStartTime;
-    //单独播放,播放完成直接关闭
-    final int TYPE_SEPARATELY_PLAY = 0;
-    //单独循环播放,一直循环
-    final int TYPE_SINGLECYCLE_PLAY = 1;
-    //列表播放,播放完列表关闭
-    final int TYPE_LIST_PLAY = 2;
-    String SINGLECYCLE_URL = "";
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        initOther();
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
-        mFragmentView = (FrameLayout) inflater.inflate(R.layout.fragment_video, null);
-        mCardView = mFragmentView.findViewById(R.id.fragment_cardview);
-        mVideoView = mFragmentView.findViewById(R.id.fragment_video);
-        mVideoView.setVideoURI(Uri.parse("https://www.apple.com/105/media/cn/iphone-x/2017/01df5b43-28e4-4848-bf20-490c34a926a7/films/feature/iphone-x-feature-cn-20170912_1280x720h.mp4"));
-        mVideoView.start();
-        try {
-//            initVideo();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return mFragmentView;
-    }
-
-    @Nullable
-    @Override
-    public View getView() {
-        return mFragmentView;
-    }
-
-    void initOther() {
-        mGson = new Gson();
-        mPersenter = new VideoPersenter(this);
-    }
-
-    public CardView getmCardView() {
-        return mCardView;
-    }
-
-    void initVideo() throws Exception {
-        Bundle bundle = getArguments();
-        Intent intent = new Intent();
-        intent.putExtra("play_jsons", bundle.getString("play_jsons"));
-        intent.putExtra("play_index", bundle.getInt("play_index", 0));
-        intent.putExtra("play_type", bundle.getInt("play_type", 0));
-        intent.putExtra("play_moduletype", bundle.getString("play_moduletype"));
-        mPersenter.loadVideo(intent);
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        mFragmentView = null;
-        mVideoView.stopPlayback();
-        mVideoView.resume();
-        mVideoView = null;
-    }
-
-    @Override
-    public void setVideoUri(Uri uri) {
-
-    }
-
-    @Override
-    public void start() {
-
-    }
-
-    @Override
-    public void pause() {
-
-    }
-
-    @Override
-    public void stop() {
-
-    }
-
-    @Override
-    public void releaseVideo() {
-
-    }
-
-    @Override
-    public void seek(int seek) {
-
-    }
-
-    @Override
-    public boolean isPlaying() {
-        return false;
-    }
-
-    @Override
-    public int getDuration() {
-        return 0;
-    }
-
-    @Override
-    public int getCurrent() {
-        return 0;
-    }
-
-    @Override
-    public void activityFinish() {
-
-    }
-
-    @Override
-    public void showData(String text) {
-
-    }
-
-    @Override
-    public void DisconnNetWork() {
-
-    }
-
-    @Override
-    public void ConnNeWork() {
-
-    }
-}

+ 0 - 103
app/src/main/java/com/edufound/android/xyyf/ijkplayer/application/Settings.java

@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.application;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-
-import com.edufound.android.xyyf.R;
-
-public class Settings {
-    private Context mAppContext;
-    private SharedPreferences mSharedPreferences;
-
-    public static final int PV_PLAYER__AndroidMediaPlayer = 1;
-    public static final int PV_PLAYER__IjkMediaPlayer = 2;
-    public static final int PV_PLAYER__IjkExoMediaPlayer = 3;
-
-    public Settings(Context context) {
-        mAppContext = context.getApplicationContext();
-        mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(mAppContext);
-    }
-
-    public boolean getEnableBackgroundPlay() {
-        String key = mAppContext.getString(R.string.pref_key_enable_background_play);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public int getPlayer() {
-        String key = mAppContext.getString(R.string.pref_key_player);
-        String value = mSharedPreferences.getString(key, "");
-        try {
-            return Integer.valueOf(value).intValue();
-        } catch (NumberFormatException e) {
-            return 0;
-        }
-    }
-
-    public boolean getUsingMediaCodec() {
-        String key = mAppContext.getString(R.string.pref_key_using_media_codec);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getUsingMediaCodecAutoRotate() {
-        String key = mAppContext.getString(R.string.pref_key_using_media_codec_auto_rotate);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getMediaCodecHandleResolutionChange() {
-        String key = mAppContext.getString(R.string.pref_key_media_codec_handle_resolution_change);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getUsingOpenSLES() {
-        String key = mAppContext.getString(R.string.pref_key_using_opensl_es);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public String getPixelFormat() {
-        String key = mAppContext.getString(R.string.pref_key_pixel_format);
-        return mSharedPreferences.getString(key, "");
-    }
-
-    public boolean getEnableNoView() {
-        String key = mAppContext.getString(R.string.pref_key_enable_no_view);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getEnableSurfaceView() {
-        String key = mAppContext.getString(R.string.pref_key_enable_surface_view);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getEnableTextureView() {
-        String key = mAppContext.getString(R.string.pref_key_enable_texture_view);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getEnableDetachedSurfaceTextureView() {
-        String key = mAppContext.getString(R.string.pref_key_enable_detached_surface_texture);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-
-    public boolean getUsingMediaDataSource() {
-        String key = mAppContext.getString(R.string.pref_key_using_mediadatasource);
-        return mSharedPreferences.getBoolean(key, false);
-    }
-}

+ 0 - 57
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/FileMediaDataSource.java

@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-import tv.danmaku.ijk.media.player.misc.IMediaDataSource;
-
-public class FileMediaDataSource implements IMediaDataSource {
-    private RandomAccessFile mFile;
-    private long mFileSize;
-
-    public FileMediaDataSource(File file) throws IOException {
-        mFile = new RandomAccessFile(file, "r");
-        mFileSize = mFile.length();
-    }
-
-    @Override
-    public int readAt(long position, byte[] buffer, int offset, int size) throws IOException {
-        if (mFile.getFilePointer() != position)
-            mFile.seek(position);
-
-        if (size == 0)
-            return 0;
-
-        return mFile.read(buffer, 0, size);
-    }
-
-    @Override
-    public long getSize() throws IOException {
-        return mFileSize;
-    }
-
-    @Override
-    public void close() throws IOException {
-        mFileSize = 0;
-        mFile.close();
-        mFile = null;
-    }
-}

+ 0 - 42
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IMediaController.java

@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import android.view.View;
-import android.widget.MediaController;
-
-public interface IMediaController {
-    void hide();
-
-    boolean isShowing();
-
-    void setAnchorView(View view);
-
-    void setEnabled(boolean enabled);
-
-    void setMediaPlayer(MediaController.MediaPlayerControl player);
-
-    void show(int timeout);
-
-    void show();
-
-    //----------
-    // Extends
-    //----------
-    void showOnce(View view);
-}

+ 0 - 87
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IRenderView.java

@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import android.graphics.SurfaceTexture;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.View;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-
-public interface IRenderView {
-    int AR_ASPECT_FIT_PARENT = 0; // without clip
-    int AR_ASPECT_FILL_PARENT = 1; // may clip
-    int AR_ASPECT_WRAP_CONTENT = 2;
-    int AR_MATCH_PARENT = 3;
-    int AR_16_9_FIT_PARENT = 4;
-    int AR_4_3_FIT_PARENT = 5;
-
-    View getView();
-
-    boolean shouldWaitForResize();
-
-    void setVideoSize(int videoWidth, int videoHeight);
-
-    void setVideoSampleAspectRatio(int videoSarNum, int videoSarDen);
-
-    void setVideoRotation(int degree);
-
-    void setAspectRatio(int aspectRatio);
-
-    void addRenderCallback(@NonNull IRenderCallback callback);
-
-    void removeRenderCallback(@NonNull IRenderCallback callback);
-
-    interface ISurfaceHolder {
-        void bindToMediaPlayer(IMediaPlayer mp);
-
-        @NonNull
-        IRenderView getRenderView();
-
-        @Nullable
-        SurfaceHolder getSurfaceHolder();
-
-        @Nullable
-        Surface openSurface();
-
-        @Nullable
-        SurfaceTexture getSurfaceTexture();
-    }
-
-    interface IRenderCallback {
-        /**
-         * @param holder
-         * @param width  could be 0
-         * @param height could be 0
-         */
-        void onSurfaceCreated(@NonNull ISurfaceHolder holder, int width, int height);
-
-        /**
-         * @param holder
-         * @param format could be 0
-         * @param width
-         * @param height
-         */
-        void onSurfaceChanged(@NonNull ISurfaceHolder holder, int format, int width, int height);
-
-        void onSurfaceDestroyed(@NonNull ISurfaceHolder holder);
-    }
-}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1150
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/IjkVideoView.java


+ 0 - 215
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/MeasureHelper.java

@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import android.view.View;
-
-import java.lang.ref.WeakReference;
-
-public final class MeasureHelper {
-    private WeakReference<View> mWeakView;
-
-    private int mVideoWidth;
-    private int mVideoHeight;
-    private int mVideoSarNum;
-    private int mVideoSarDen;
-
-    private int mVideoRotationDegree;
-
-    private int mMeasuredWidth;
-    private int mMeasuredHeight;
-
-    private int mCurrentAspectRatio = IRenderView.AR_ASPECT_FIT_PARENT;
-
-    public MeasureHelper(View view) {
-        mWeakView = new WeakReference<View>(view);
-    }
-
-    public View getView() {
-        if (mWeakView == null)
-            return null;
-        return mWeakView.get();
-    }
-
-    public void setVideoSize(int videoWidth, int videoHeight) {
-        mVideoWidth = videoWidth;
-        mVideoHeight = videoHeight;
-    }
-
-    public void setVideoSampleAspectRatio(int videoSarNum, int videoSarDen) {
-        mVideoSarNum = videoSarNum;
-        mVideoSarDen = videoSarDen;
-    }
-
-    public void setVideoRotation(int videoRotationDegree) {
-        mVideoRotationDegree = videoRotationDegree;
-    }
-
-    /**
-     * Must be called by View.onMeasure(int, int)
-     *
-     * @param widthMeasureSpec
-     * @param heightMeasureSpec
-     */
-    public void doMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        //Log.i("@@@@", "onMeasure(" + MeasureSpec.toString(widthMeasureSpec) + ", "
-        //        + MeasureSpec.toString(heightMeasureSpec) + ")");
-        if (mVideoRotationDegree == 90 || mVideoRotationDegree == 270) {
-            int tempSpec = widthMeasureSpec;
-            widthMeasureSpec  = heightMeasureSpec;
-            heightMeasureSpec = tempSpec;
-        }
-
-        int width = View.getDefaultSize(mVideoWidth, widthMeasureSpec);
-        int height = View.getDefaultSize(mVideoHeight, heightMeasureSpec);
-        if (mCurrentAspectRatio == IRenderView.AR_MATCH_PARENT) {
-            width = widthMeasureSpec;
-            height = heightMeasureSpec;
-        } else if (mVideoWidth > 0 && mVideoHeight > 0) {
-            int widthSpecMode = View.MeasureSpec.getMode(widthMeasureSpec);
-            int widthSpecSize = View.MeasureSpec.getSize(widthMeasureSpec);
-            int heightSpecMode = View.MeasureSpec.getMode(heightMeasureSpec);
-            int heightSpecSize = View.MeasureSpec.getSize(heightMeasureSpec);
-
-            if (widthSpecMode == View.MeasureSpec.AT_MOST && heightSpecMode == View.MeasureSpec.AT_MOST) {
-                float specAspectRatio = (float) widthSpecSize / (float) heightSpecSize;
-                float displayAspectRatio;
-                switch (mCurrentAspectRatio) {
-                    case IRenderView.AR_16_9_FIT_PARENT:
-                        displayAspectRatio = 16.0f / 9.0f;
-                        if (mVideoRotationDegree == 90 || mVideoRotationDegree == 270)
-                            displayAspectRatio = 1.0f / displayAspectRatio;
-                        break;
-                    case IRenderView.AR_4_3_FIT_PARENT:
-                        displayAspectRatio = 4.0f / 3.0f;
-                        if (mVideoRotationDegree == 90 || mVideoRotationDegree == 270)
-                            displayAspectRatio = 1.0f / displayAspectRatio;
-                        break;
-                    case IRenderView.AR_ASPECT_FIT_PARENT:
-                    case IRenderView.AR_ASPECT_FILL_PARENT:
-                    case IRenderView.AR_ASPECT_WRAP_CONTENT:
-                    default:
-                        displayAspectRatio = (float) mVideoWidth / (float) mVideoHeight;
-                        if (mVideoSarNum > 0 && mVideoSarDen > 0)
-                            displayAspectRatio = displayAspectRatio * mVideoSarNum / mVideoSarDen;
-                        break;
-                }
-                boolean shouldBeWider = displayAspectRatio > specAspectRatio;
-
-                switch (mCurrentAspectRatio) {
-                    case IRenderView.AR_ASPECT_FIT_PARENT:
-                    case IRenderView.AR_16_9_FIT_PARENT:
-                    case IRenderView.AR_4_3_FIT_PARENT:
-                        if (shouldBeWider) {
-                            // too wide, fix width
-                            width = widthSpecSize;
-                            height = (int) (width / displayAspectRatio);
-                        } else {
-                            // too high, fix height
-                            height = heightSpecSize;
-                            width = (int) (height * displayAspectRatio);
-                        }
-                        break;
-                    case IRenderView.AR_ASPECT_FILL_PARENT:
-                        if (shouldBeWider) {
-                            // not high enough, fix height
-                            height = heightSpecSize;
-                            width = (int) (height * displayAspectRatio);
-                        } else {
-                            // not wide enough, fix width
-                            width = widthSpecSize;
-                            height = (int) (width / displayAspectRatio);
-                        }
-                        break;
-                    case IRenderView.AR_ASPECT_WRAP_CONTENT:
-                    default:
-                        if (shouldBeWider) {
-                            // too wide, fix width
-                            width = Math.min(mVideoWidth, widthSpecSize);
-                            height = (int) (width / displayAspectRatio);
-                        } else {
-                            // too high, fix height
-                            height = Math.min(mVideoHeight, heightSpecSize);
-                            width = (int) (height * displayAspectRatio);
-                        }
-                        break;
-                }
-            } else if (widthSpecMode == View.MeasureSpec.EXACTLY && heightSpecMode == View.MeasureSpec.EXACTLY) {
-                // the size is fixed
-                width = widthSpecSize;
-                height = heightSpecSize;
-
-                // for compatibility, we adjust size based on aspect ratio
-                if (mVideoWidth * height < width * mVideoHeight) {
-                    //Log.i("@@@", "image too wide, correcting");
-                    width = height * mVideoWidth / mVideoHeight;
-                } else if (mVideoWidth * height > width * mVideoHeight) {
-                    //Log.i("@@@", "image too tall, correcting");
-                    height = width * mVideoHeight / mVideoWidth;
-                }
-            } else if (widthSpecMode == View.MeasureSpec.EXACTLY) {
-                // only the width is fixed, adjust the height to match aspect ratio if possible
-                width = widthSpecSize;
-                height = width * mVideoHeight / mVideoWidth;
-                if (heightSpecMode == View.MeasureSpec.AT_MOST && height > heightSpecSize) {
-                    // couldn't match aspect ratio within the constraints
-                    height = heightSpecSize;
-                }
-            } else if (heightSpecMode == View.MeasureSpec.EXACTLY) {
-                // only the height is fixed, adjust the width to match aspect ratio if possible
-                height = heightSpecSize;
-                width = height * mVideoWidth / mVideoHeight;
-                if (widthSpecMode == View.MeasureSpec.AT_MOST && width > widthSpecSize) {
-                    // couldn't match aspect ratio within the constraints
-                    width = widthSpecSize;
-                }
-            } else {
-                // neither the width nor the height are fixed, try to use actual video size
-                width = mVideoWidth;
-                height = mVideoHeight;
-                if (heightSpecMode == View.MeasureSpec.AT_MOST && height > heightSpecSize) {
-                    // too tall, decrease both width and height
-                    height = heightSpecSize;
-                    width = height * mVideoWidth / mVideoHeight;
-                }
-                if (widthSpecMode == View.MeasureSpec.AT_MOST && width > widthSpecSize) {
-                    // too wide, decrease both width and height
-                    width = widthSpecSize;
-                    height = width * mVideoHeight / mVideoWidth;
-                }
-            }
-        } else {
-            // no size yet, just adopt the given spec sizes
-        }
-
-        mMeasuredWidth = width;
-        mMeasuredHeight = height;
-    }
-
-    public int getMeasuredWidth() {
-        return mMeasuredWidth;
-    }
-
-    public int getMeasuredHeight() {
-        return mMeasuredHeight;
-    }
-
-    public void setAspectRatio(int aspectRatio) {
-        mCurrentAspectRatio = aspectRatio;
-    }
-}

+ 0 - 288
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/SurfaceRenderView.java

@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.graphics.SurfaceTexture;
-import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.lang.ref.WeakReference;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-import tv.danmaku.ijk.media.player.ISurfaceTextureHolder;
-
-public class SurfaceRenderView extends SurfaceView implements IRenderView {
-    private MeasureHelper mMeasureHelper;
-
-    public SurfaceRenderView(Context context) {
-        super(context);
-        initView(context);
-    }
-
-    public SurfaceRenderView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        initView(context);
-    }
-
-    public SurfaceRenderView(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        initView(context);
-    }
-
-    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
-    public SurfaceRenderView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        initView(context);
-    }
-
-    private void initView(Context context) {
-        mMeasureHelper = new MeasureHelper(this);
-        mSurfaceCallback = new SurfaceCallback(this);
-        getHolder().addCallback(mSurfaceCallback);
-        //noinspection deprecation
-        getHolder().setType(SurfaceHolder.SURFACE_TYPE_NORMAL);
-    }
-
-    @Override
-    public View getView() {
-        return this;
-    }
-
-    @Override
-    public boolean shouldWaitForResize() {
-        return true;
-    }
-
-    //--------------------
-    // Layout & Measure
-    //--------------------
-    @Override
-    public void setVideoSize(int videoWidth, int videoHeight) {
-        if (videoWidth > 0 && videoHeight > 0) {
-            mMeasureHelper.setVideoSize(videoWidth, videoHeight);
-            getHolder().setFixedSize(videoWidth, videoHeight);
-            requestLayout();
-        }
-    }
-
-    @Override
-    public void setVideoSampleAspectRatio(int videoSarNum, int videoSarDen) {
-        if (videoSarNum > 0 && videoSarDen > 0) {
-            mMeasureHelper.setVideoSampleAspectRatio(videoSarNum, videoSarDen);
-            requestLayout();
-        }
-    }
-
-    @Override
-    public void setVideoRotation(int degree) {
-        Log.e("", "SurfaceView doesn't support rotation (" + degree + ")!\n");
-    }
-
-    @Override
-    public void setAspectRatio(int aspectRatio) {
-        mMeasureHelper.setAspectRatio(aspectRatio);
-        requestLayout();
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        mMeasureHelper.doMeasure(widthMeasureSpec, heightMeasureSpec);
-        setMeasuredDimension(mMeasureHelper.getMeasuredWidth(), mMeasureHelper.getMeasuredHeight());
-    }
-
-    //--------------------
-    // SurfaceViewHolder
-    //--------------------
-
-    private static final class InternalSurfaceHolder implements ISurfaceHolder {
-        private SurfaceRenderView mSurfaceView;
-        private SurfaceHolder mSurfaceHolder;
-
-        public InternalSurfaceHolder(@NonNull SurfaceRenderView surfaceView,
-                                     @Nullable SurfaceHolder surfaceHolder) {
-            mSurfaceView = surfaceView;
-            mSurfaceHolder = surfaceHolder;
-        }
-
-        public void bindToMediaPlayer(IMediaPlayer mp) {
-            if (mp != null) {
-                if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) &&
-                        (mp instanceof ISurfaceTextureHolder)) {
-                    ISurfaceTextureHolder textureHolder = (ISurfaceTextureHolder) mp;
-                    textureHolder.setSurfaceTexture(null);
-                }
-                mp.setDisplay(mSurfaceHolder);
-            }
-        }
-
-        @NonNull
-        @Override
-        public IRenderView getRenderView() {
-            return mSurfaceView;
-        }
-
-        @Nullable
-        @Override
-        public SurfaceHolder getSurfaceHolder() {
-            return mSurfaceHolder;
-        }
-
-        @Nullable
-        @Override
-        public SurfaceTexture getSurfaceTexture() {
-            return null;
-        }
-
-        @Nullable
-        @Override
-        public Surface openSurface() {
-            if (mSurfaceHolder == null)
-                return null;
-            return mSurfaceHolder.getSurface();
-        }
-    }
-
-    //-------------------------
-    // SurfaceHolder.Callback
-    //-------------------------
-
-    @Override
-    public void addRenderCallback(IRenderCallback callback) {
-        mSurfaceCallback.addRenderCallback(callback);
-    }
-
-    @Override
-    public void removeRenderCallback(IRenderCallback callback) {
-        mSurfaceCallback.removeRenderCallback(callback);
-    }
-
-    private SurfaceCallback mSurfaceCallback;
-
-    private static final class SurfaceCallback implements SurfaceHolder.Callback {
-        private SurfaceHolder mSurfaceHolder;
-        private boolean mIsFormatChanged;
-        private int mFormat;
-        private int mWidth;
-        private int mHeight;
-
-        private WeakReference<SurfaceRenderView> mWeakSurfaceView;
-        private Map<IRenderCallback, Object> mRenderCallbackMap = new ConcurrentHashMap<IRenderCallback, Object>();
-
-        public SurfaceCallback(@NonNull SurfaceRenderView surfaceView) {
-            mWeakSurfaceView = new WeakReference<SurfaceRenderView>(surfaceView);
-        }
-
-        public void addRenderCallback(@NonNull IRenderCallback callback) {
-            mRenderCallbackMap.put(callback, callback);
-
-            ISurfaceHolder surfaceHolder = null;
-            if (mSurfaceHolder != null) {
-                if (surfaceHolder == null)
-                    surfaceHolder = new InternalSurfaceHolder(mWeakSurfaceView.get(), mSurfaceHolder);
-                callback.onSurfaceCreated(surfaceHolder, mWidth, mHeight);
-            }
-
-            if (mIsFormatChanged) {
-                if (surfaceHolder == null)
-                    surfaceHolder = new InternalSurfaceHolder(mWeakSurfaceView.get(), mSurfaceHolder);
-                callback.onSurfaceChanged(surfaceHolder, mFormat, mWidth, mHeight);
-            }
-        }
-
-        public void removeRenderCallback(@NonNull IRenderCallback callback) {
-            mRenderCallbackMap.remove(callback);
-        }
-
-        @Override
-        public void surfaceCreated(SurfaceHolder holder) {
-            mSurfaceHolder = holder;
-            mIsFormatChanged = false;
-            mFormat = 0;
-            mWidth = 0;
-            mHeight = 0;
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakSurfaceView.get(), mSurfaceHolder);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
-            }
-        }
-
-        @Override
-        public void surfaceDestroyed(SurfaceHolder holder) {
-            mSurfaceHolder = null;
-            mIsFormatChanged = false;
-            mFormat = 0;
-            mWidth = 0;
-            mHeight = 0;
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakSurfaceView.get(), mSurfaceHolder);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceDestroyed(surfaceHolder);
-            }
-        }
-
-        @Override
-        public void surfaceChanged(SurfaceHolder holder, int format,
-                                   int width, int height) {
-            mSurfaceHolder = holder;
-            mIsFormatChanged = true;
-            mFormat = format;
-            mWidth = width;
-            mHeight = height;
-
-            // mMeasureHelper.setVideoSize(width, height);
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakSurfaceView.get(), mSurfaceHolder);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceChanged(surfaceHolder, format, width, height);
-            }
-        }
-    }
-
-    //--------------------
-    // Accessibility
-    //--------------------
-
-    @Override
-    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
-        super.onInitializeAccessibilityEvent(event);
-        event.setClassName(SurfaceRenderView.class.getName());
-    }
-
-    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
-    @Override
-    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
-        super.onInitializeAccessibilityNodeInfo(info);
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            info.setClassName(SurfaceRenderView.class.getName());
-        }
-    }
-}

+ 0 - 370
app/src/main/java/com/edufound/android/xyyf/ijkplayer/media/TextureRenderView.java

@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.media;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.graphics.SurfaceTexture;
-import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.TextureView;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.lang.ref.WeakReference;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-import tv.danmaku.ijk.media.player.ISurfaceTextureHolder;
-import tv.danmaku.ijk.media.player.ISurfaceTextureHost;
-
-@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
-public class TextureRenderView extends TextureView implements IRenderView {
-    private static final String TAG = "TextureRenderView";
-    private MeasureHelper mMeasureHelper;
-
-    public TextureRenderView(Context context) {
-        super(context);
-        initView(context);
-    }
-
-    public TextureRenderView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        initView(context);
-    }
-
-    public TextureRenderView(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        initView(context);
-    }
-
-    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
-    public TextureRenderView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        initView(context);
-    }
-
-    private void initView(Context context) {
-        mMeasureHelper = new MeasureHelper(this);
-        mSurfaceCallback = new SurfaceCallback(this);
-        setSurfaceTextureListener(mSurfaceCallback);
-    }
-
-    @Override
-    public View getView() {
-        return this;
-    }
-
-    @Override
-    public boolean shouldWaitForResize() {
-        return false;
-    }
-
-    @Override
-    protected void onDetachedFromWindow() {
-        mSurfaceCallback.willDetachFromWindow();
-        super.onDetachedFromWindow();
-        mSurfaceCallback.didDetachFromWindow();
-    }
-
-    //--------------------
-    // Layout & Measure
-    //--------------------
-    @Override
-    public void setVideoSize(int videoWidth, int videoHeight) {
-        if (videoWidth > 0 && videoHeight > 0) {
-            mMeasureHelper.setVideoSize(videoWidth, videoHeight);
-            requestLayout();
-        }
-    }
-
-    @Override
-    public void setVideoSampleAspectRatio(int videoSarNum, int videoSarDen) {
-        if (videoSarNum > 0 && videoSarDen > 0) {
-            mMeasureHelper.setVideoSampleAspectRatio(videoSarNum, videoSarDen);
-            requestLayout();
-        }
-    }
-
-    @Override
-    public void setVideoRotation(int degree) {
-        mMeasureHelper.setVideoRotation(degree);
-        setRotation(degree);
-    }
-
-    @Override
-    public void setAspectRatio(int aspectRatio) {
-        mMeasureHelper.setAspectRatio(aspectRatio);
-        requestLayout();
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        mMeasureHelper.doMeasure(widthMeasureSpec, heightMeasureSpec);
-        setMeasuredDimension(mMeasureHelper.getMeasuredWidth(), mMeasureHelper.getMeasuredHeight());
-    }
-
-    //--------------------
-    // TextureViewHolder
-    //--------------------
-
-    public ISurfaceHolder getSurfaceHolder() {
-        return new InternalSurfaceHolder(this, mSurfaceCallback.mSurfaceTexture, mSurfaceCallback);
-    }
-
-    private static final class InternalSurfaceHolder implements ISurfaceHolder {
-        private TextureRenderView mTextureView;
-        private SurfaceTexture mSurfaceTexture;
-        private ISurfaceTextureHost mSurfaceTextureHost;
-
-        public InternalSurfaceHolder(@NonNull TextureRenderView textureView,
-                                     @Nullable SurfaceTexture surfaceTexture,
-                                     @NonNull ISurfaceTextureHost surfaceTextureHost) {
-            mTextureView = textureView;
-            mSurfaceTexture = surfaceTexture;
-            mSurfaceTextureHost = surfaceTextureHost;
-        }
-
-        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
-        public void bindToMediaPlayer(IMediaPlayer mp) {
-            if (mp == null)
-                return;
-
-            if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) &&
-                    (mp instanceof ISurfaceTextureHolder)) {
-                ISurfaceTextureHolder textureHolder = (ISurfaceTextureHolder) mp;
-                mTextureView.mSurfaceCallback.setOwnSurfaceTexture(false);
-
-                SurfaceTexture surfaceTexture = textureHolder.getSurfaceTexture();
-                if (surfaceTexture != null) {
-                    mTextureView.setSurfaceTexture(surfaceTexture);
-                } else {
-                    textureHolder.setSurfaceTexture(mSurfaceTexture);
-                    textureHolder.setSurfaceTextureHost(mTextureView.mSurfaceCallback);
-                }
-            } else {
-                mp.setSurface(openSurface());
-            }
-        }
-
-        @NonNull
-        @Override
-        public IRenderView getRenderView() {
-            return mTextureView;
-        }
-
-        @Nullable
-        @Override
-        public SurfaceHolder getSurfaceHolder() {
-            return null;
-        }
-
-        @Nullable
-        @Override
-        public SurfaceTexture getSurfaceTexture() {
-            return mSurfaceTexture;
-        }
-
-        @Nullable
-        @Override
-        public Surface openSurface() {
-            if (mSurfaceTexture == null)
-                return null;
-            return new Surface(mSurfaceTexture);
-        }
-    }
-
-    //-------------------------
-    // SurfaceHolder.Callback
-    //-------------------------
-
-    @Override
-    public void addRenderCallback(IRenderCallback callback) {
-        mSurfaceCallback.addRenderCallback(callback);
-    }
-
-    @Override
-    public void removeRenderCallback(IRenderCallback callback) {
-        mSurfaceCallback.removeRenderCallback(callback);
-    }
-
-    private SurfaceCallback mSurfaceCallback;
-
-    private static final class SurfaceCallback implements SurfaceTextureListener, ISurfaceTextureHost {
-        private SurfaceTexture mSurfaceTexture;
-        private boolean mIsFormatChanged;
-        private int mWidth;
-        private int mHeight;
-
-        private boolean mOwnSurfaceTexture = true;
-        private boolean mWillDetachFromWindow = false;
-        private boolean mDidDetachFromWindow = false;
-
-        private WeakReference<TextureRenderView> mWeakRenderView;
-        private Map<IRenderCallback, Object> mRenderCallbackMap = new ConcurrentHashMap<IRenderCallback, Object>();
-
-        public SurfaceCallback(@NonNull TextureRenderView renderView) {
-            mWeakRenderView = new WeakReference<TextureRenderView>(renderView);
-        }
-
-        public void setOwnSurfaceTexture(boolean ownSurfaceTexture) {
-            mOwnSurfaceTexture = ownSurfaceTexture;
-        }
-
-        public void addRenderCallback(@NonNull IRenderCallback callback) {
-            mRenderCallbackMap.put(callback, callback);
-
-            ISurfaceHolder surfaceHolder = null;
-            if (mSurfaceTexture != null) {
-                if (surfaceHolder == null)
-                    surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), mSurfaceTexture, this);
-                callback.onSurfaceCreated(surfaceHolder, mWidth, mHeight);
-            }
-
-            if (mIsFormatChanged) {
-                if (surfaceHolder == null)
-                    surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), mSurfaceTexture, this);
-                callback.onSurfaceChanged(surfaceHolder, 0, mWidth, mHeight);
-            }
-        }
-
-        public void removeRenderCallback(@NonNull IRenderCallback callback) {
-            mRenderCallbackMap.remove(callback);
-        }
-
-        @Override
-        public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
-            mSurfaceTexture = surface;
-            mIsFormatChanged = false;
-            mWidth = 0;
-            mHeight = 0;
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
-            }
-        }
-
-        @Override
-        public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
-            mSurfaceTexture = surface;
-            mIsFormatChanged = true;
-            mWidth = width;
-            mHeight = height;
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceChanged(surfaceHolder, 0, width, height);
-            }
-        }
-
-        @Override
-        public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
-            mSurfaceTexture = surface;
-            mIsFormatChanged = false;
-            mWidth = 0;
-            mHeight = 0;
-
-            ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(mWeakRenderView.get(), surface, this);
-            for (IRenderCallback renderCallback : mRenderCallbackMap.keySet()) {
-                renderCallback.onSurfaceDestroyed(surfaceHolder);
-            }
-
-            Log.d(TAG, "onSurfaceTextureDestroyed: destroy: " + mOwnSurfaceTexture);
-            return mOwnSurfaceTexture;
-        }
-
-        @Override
-        public void onSurfaceTextureUpdated(SurfaceTexture surface) {
-        }
-
-        //-------------------------
-        // ISurfaceTextureHost
-        //-------------------------
-
-        @Override
-        public void releaseSurfaceTexture(SurfaceTexture surfaceTexture) {
-            if (surfaceTexture == null) {
-                Log.d(TAG, "releaseSurfaceTexture: null");
-            } else if (mDidDetachFromWindow) {
-                if (surfaceTexture != mSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): release different SurfaceTexture");
-                    surfaceTexture.release();
-                } else if (!mOwnSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): release detached SurfaceTexture");
-                    surfaceTexture.release();
-                } else {
-                    Log.d(TAG, "releaseSurfaceTexture: didDetachFromWindow(): already released by TextureView");
-                }
-            } else if (mWillDetachFromWindow) {
-                if (surfaceTexture != mSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): release different SurfaceTexture");
-                    surfaceTexture.release();
-                } else if (!mOwnSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): re-attach SurfaceTexture to TextureView");
-                    setOwnSurfaceTexture(true);
-                } else {
-                    Log.d(TAG, "releaseSurfaceTexture: willDetachFromWindow(): will released by TextureView");
-                }
-            } else {
-                if (surfaceTexture != mSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: alive: release different SurfaceTexture");
-                    surfaceTexture.release();
-                } else if (!mOwnSurfaceTexture) {
-                    Log.d(TAG, "releaseSurfaceTexture: alive: re-attach SurfaceTexture to TextureView");
-                    setOwnSurfaceTexture(true);
-                } else {
-                    Log.d(TAG, "releaseSurfaceTexture: alive: will released by TextureView");
-                }
-            }
-        }
-
-        public void willDetachFromWindow() {
-            Log.d(TAG, "willDetachFromWindow()");
-            mWillDetachFromWindow = true;
-        }
-
-        public void didDetachFromWindow() {
-            Log.d(TAG, "didDetachFromWindow()");
-            mDidDetachFromWindow = true;
-        }
-    }
-
-    //--------------------
-    // Accessibility
-    //--------------------
-
-    @Override
-    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
-        super.onInitializeAccessibilityEvent(event);
-        event.setClassName(TextureRenderView.class.getName());
-    }
-
-    @Override
-    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
-        super.onInitializeAccessibilityNodeInfo(info);
-        info.setClassName(TextureRenderView.class.getName());
-    }
-}

+ 0 - 63
app/src/main/java/com/edufound/android/xyyf/ijkplayer/services/MediaPlayerService.java

@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2015 Bilibili
- * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.edufound.android.xyyf.ijkplayer.services;
-
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.IBinder;
-import android.support.annotation.Nullable;
-
-import tv.danmaku.ijk.media.player.IMediaPlayer;
-
-public class MediaPlayerService extends Service {
-    private static IMediaPlayer sMediaPlayer;
-
-    public static Intent newIntent(Context context) {
-        Intent intent = new Intent(context, MediaPlayerService.class);
-        return intent;
-    }
-
-    public static void intentToStart(Context context) {
-        context.startService(newIntent(context));
-    }
-
-    public static void intentToStop(Context context) {
-        context.stopService(newIntent(context));
-    }
-
-    @Nullable
-    @Override
-    public IBinder onBind(Intent intent) {
-        return null;
-    }
-
-    public static void setMediaPlayer(IMediaPlayer mp) {
-        if (sMediaPlayer != null && sMediaPlayer != mp) {
-            if (sMediaPlayer.isPlaying())
-                sMediaPlayer.stop();
-            sMediaPlayer.release();
-            sMediaPlayer = null;
-        }
-        sMediaPlayer = mp;
-    }
-
-    public static IMediaPlayer getMediaPlayer() {
-        return sMediaPlayer;
-    }
-}

+ 16 - 54
app/src/main/java/com/edufound/android/xyyf/interfaces/JsInterfaces.java

@@ -9,13 +9,10 @@ import android.media.MediaPlayer;
 import android.util.Base64;
 import android.view.KeyEvent;
 import android.webkit.JavascriptInterface;
-import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.activity.IJKPlayerActivity;
 import com.edufound.android.xyyf.activity.PhoneNumLoginActivity;
-import com.edufound.android.xyyf.activity.VideoActivity;
 import com.edufound.android.xyyf.application.EApplication;
 import com.edufound.android.xyyf.bean.MessageDialogBean;
 import com.edufound.android.xyyf.bean.UpgradeBean;
@@ -37,7 +34,6 @@ import com.google.gson.Gson;
 import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
 import com.mobile.auth.gatewayauth.ResultCode;
 import com.mobile.auth.gatewayauth.TokenResultListener;
-import com.mobile.auth.gatewayauth.model.InitResult;
 import com.mobile.auth.gatewayauth.model.TokenRet;
 import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
 import com.tencent.mm.opensdk.modelmsg.SendAuth;
@@ -134,37 +130,6 @@ public class JsInterfaces {
     }
 
 
-    /*
-     * 播放视频方法
-     * */
-    @JavascriptInterface
-    public void playVideo(String play_jsons, int play_index, int play_type, String moduleType) {
-        //可能要改播放器的逻辑
-        Logger.e("play_jsons:" + play_jsons);
-        Logger.e("play_index:" + play_index);
-        Logger.e("play_type:" + play_type);
-        Logger.e("moduleType:" + moduleType);
-        Intent intent = new Intent();
-        int selectid = SPutil.getPrefInt(mView.getActivity(), SPutil.videoType, 0);
-        switch (selectid) {
-            case SPutil.VIDEO_VIDEOVIEW:
-                intent.setClass(mView.getActivity(), VideoActivity.class);
-                break;
-            case SPutil.VIDEO_IJKPLAYER:
-                intent.setClass(mView.getActivity(), IJKPlayerActivity.class);
-                break;
-            default:
-                intent.setClass(mView.getActivity(), IJKPlayerActivity.class);
-                break;
-        }
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.putExtra("play_jsons", play_jsons);
-        intent.putExtra("play_index", play_index);
-        intent.putExtra("play_type", play_type);
-        intent.putExtra("play_moduletype", moduleType);
-        mView.getActivity().startActivity(intent);
-    }
-
     //JS调用方法,设置播放器
     @JavascriptInterface
     public void setPlayType(int type) {
@@ -462,24 +427,21 @@ public class JsInterfaces {
 
         @Override
         public void onTokenFailed(String s) {
-            Logger.e("失败了:" + s);
 //            ToastUtil.showToast("失败了:" + s);
-            //{"carrierFailedResultData":"","code":"700000","msg":"用户取消登录","requestCode":0,"requestId":"41aa0bdf-1e6b-4d06-956d-c354500dab60","vendorName":"CUCC"}
             String code = JSON.parseObject(s).get("code").toString();
             Logger.e("code:" + code);
             Intent intent = new Intent(mView.getActivity(), PhoneNumLoginActivity.class);
-            if (code.equals("600015")) {
-                intent.putExtra("code", "600015");
-                mView.getActivity().startActivity(intent);
-                ToastUtil.showToast("一键登录响应超时,切换手机号登录");
-                return;
-            } else if (code.equals("600005")) {
-                intent.putExtra("code", "600015");
+            if (code.equals("700000")) {
+                mView.loadJsMehtod("closeLogin(" + code + ")");
+            } else {
+                intent.putExtra("code", code);
                 mView.getActivity().startActivity(intent);
                 ToastUtil.showToast(JSON.parseObject(s).get("msg").toString());
-                return;
+                mView.getActivity().startActivity(intent);
+                mPhoneNumberAuthHelperl.quitLoginPage();
             }
-            mView.loadJsMehtod("closeLogin(" + code + ")");
+            return;
+
         }
 
 
@@ -488,14 +450,14 @@ public class JsInterfaces {
 
     @JavascriptInterface
     public void setScreenOriention(int oriention) {
-//        switch (oriention) {
-//            case 0:
-//                mView.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
-//                break;
-//            case 1:
-//                mView.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-//                break;
-//        }
+        switch (oriention) {
+            case 0:
+                mView.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+                break;
+            case 1:
+                mView.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+                break;
+        }
     }
 
     @JavascriptInterface

+ 3 - 3
app/src/main/java/com/edufound/android/xyyf/util/OKHttpUtil.java

@@ -486,15 +486,15 @@ public class OKHttpUtil {
         JSONObject obj = new JSONObject();
         obj.put("channel", EApplication.getAppCode());
         long runtime = System.currentTimeMillis() - EApplication.APP_START_TIME;
-        obj.put("timeAcc", String.valueOf(runtime));
-        obj.put("deviceCode", DeviceUuidFactory.getUuid().toString());
-        Logger.e("user_phone:" + SPutil.getPrefString(ContextUtil.getContext(), "user_phone", ""));
         String userphone = SPutil.getPrefString(ContextUtil.getContext(), "user_phone", "");
         userphone = new String(Base64.decode(userphone.getBytes(), Base64.DEFAULT));
         if (TextUtils.isEmpty(userphone)) {
             Logger.e("没有用户");
             return;
         }
+        obj.put("timeAcc", String.valueOf(runtime));
+        obj.put("deviceCode", DeviceUuidFactory.getUuid().toString());
+
         obj.put("mobile", userphone);
         String json = obj.toJSONString();
         MediaType JSON = MediaType.parse("application/json;charset=utf-8");

+ 0 - 31
app/src/main/java/com/edufound/android/xyyf/video/VideoAView.java

@@ -1,31 +0,0 @@
-package com.edufound.android.xyyf.video;
-
-import android.net.Uri;
-
-import com.edufound.android.xyyf.base.BaseView;
-
-
-public interface VideoAView extends BaseView {
-
-    void setVideoUri(Uri uri);
-
-    void start();
-
-    void pause();
-
-    void stop();
-
-    void releaseVideo();
-
-    void seek(int seek);
-
-    boolean isPlaying();
-
-    int getDuration();
-
-    int getCurrent();
-
-    void activityFinish();
-
-
-}

+ 0 - 15
app/src/main/java/com/edufound/android/xyyf/video/VideoModel.java

@@ -1,15 +0,0 @@
-package com.edufound.android.xyyf.video;
-
-import com.edufound.android.xyyf.base.BaseModel;
-
-public class VideoModel implements BaseModel {
-
-    public VideoModel() {
-    }
-
-
-    @Override
-    public void LoadData(LoadDataBack callback) {
-
-    }
-}

+ 0 - 906
app/src/main/java/com/edufound/android/xyyf/video/VideoPersenter.java

@@ -1,906 +0,0 @@
-package com.edufound.android.xyyf.video;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Color;
-import android.graphics.drawable.AnimationDrawable;
-import android.graphics.drawable.Drawable;
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.view.Display;
-import android.view.GestureDetector;
-import android.view.Gravity;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-import com.edufound.android.xyyf.R;
-import com.edufound.android.xyyf.application.EApplication;
-import com.edufound.android.xyyf.base.BaseModel;
-import com.edufound.android.xyyf.base.BasePersenter;
-import com.edufound.android.xyyf.util.AesUtil;
-import com.edufound.android.xyyf.util.ContextUtil;
-import com.edufound.android.xyyf.util.DeviceUtil;
-import com.edufound.android.xyyf.util.DrawableUtil;
-import com.edufound.android.xyyf.util.EduFoundUtil;
-import com.edufound.android.xyyf.util.Logger;
-import com.edufound.android.xyyf.util.ToastUtil;
-import com.edufound.android.xyyf.view.ErrorView;
-import com.google.gson.Gson;
-import com.warkiz.widget.IndicatorSeekBar;
-import com.warkiz.widget.TickMarkType;
-
-public class VideoPersenter implements VideoIPersenter, GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
-
-    private VideoPersenter mPersenter;
-    private VideoAView mView = null;
-    private VideoModel mModel = null;
-    private FrameLayout mFrameController;
-    private LinearLayout mPlayerController;
-    private FrameLayout mOtherFrame;
-    private ImageView mPlayerBack;
-    private ImageView mPlayerLoading;
-    public ImageView mPlayerStatus;
-    private Gson mGson;
-    private VideoJsonBean[] mVideoBean;
-    private TextView mVideoName;
-    private ImageView mLittleIcon;
-    private TextView mCurrent;
-    private SeekBar mSeekbar;
-    private int SEEK_COUNT = 1; //用来控制长按快进的seek_progress
-    final int SEEK_PROGRESS = 1000;
-    final int HIDE_CONTROLLER_TIME = 5000;
-    final int SET_INFO = 0x7891;
-    final int SHOW_CONTROLLER = 0x7892;
-    final int HIDE_CONTROLLER = 0x7893;
-    final int STATUS_PLAY = 0x8891;
-    final int STATUS_PAUSE = 0x8892;
-    final int STATUS_FORWARD = 0x8893;
-    final int STATUS_REWIND = 0x8894;
-    final int SHOW_STATUS_IMAGE = 0x8895;
-    final int HIDE_STATUS_IMAGE = 0x8896;
-    final int PLAY_NEXT = 0x8897;
-    final int DISCONNECT_NETWORK = 0x8898;
-    final int CONNECT_NETWORK = 0x9989;
-    final int SHOW_TOUCHVIEW = 0x8899;
-    final int HIDE_TOUCHVIEW = 0x8890;
-    //单独播放,播放完成直接关闭
-    final int TYPE_SEPARATELY_PLAY = 0;
-    //单独循环播放,一直循环
-    final int TYPE_SINGLECYCLE_PLAY = 1;
-    //列表播放,播放完列表关闭
-    final int TYPE_LIST_PLAY = 2;
-    AnimationDrawable mLoadingAnim;
-    private int mStatusCode;
-    Bitmap mStatusPlayBitmap;
-    Bitmap mLittleIconPlayBitmap;
-    Bitmap mLittleIconPauseBitmap;
-    int mPlayIndex;
-    int mPlayType;
-    String mPlayingId;
-    String mPlayNeedPost;
-    int mPlayStartTime;
-    String SINGLECYCLE_URL = "";
-    ErrorView mErrorView;
-    Dialog mErrorViewDialog;
-    int mPlayerBackTime;
-    String mPlayerModuleType;
-    int mNetWorkErrorTime;
-    boolean isPrepared = false;
-    boolean isControllerShow = true;
-    private GestureDetector gestureDetector;
-    DeviceUtil deviceUtil;
-    IndicatorSeekBar mTouchSeek;
-    FrameLayout mTouchView;
-    TextView mTouchText;
-    ImageView mTouchIcon;
-    boolean isSaveState = false;
-    int oneVolume = 0;
-
-    public VideoPersenter(VideoAView view) {
-        mPersenter = this;
-        mView = view;
-        mModel = new VideoModel();
-        mGson = new Gson();
-        audiomanager = (AudioManager) mView.getActivity().getSystemService(Context.AUDIO_SERVICE);
-        maxVolume = audiomanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); // 获取系统最大音量
-        currentVolume = audiomanager.getStreamVolume(AudioManager.STREAM_MUSIC); // 获取当前值
-        oneVolume = maxVolume / 10;
-        deviceUtil = new DeviceUtil();
-        playerWidth = deviceUtil.getWidth(mView.getActivity());
-        gestureDetector = new GestureDetector(mView.getActivity(), this);
-        gestureDetector.setIsLongpressEnabled(true);
-        mFrameController = (FrameLayout) LayoutInflater.from(ContextUtil.getContext()).inflate(R.layout.player_controller, null);
-        mOtherFrame = mFrameController.findViewById(R.id.player_other_frame);
-        mPlayerController = mFrameController.findViewById(R.id.player_controller_layout);
-        mPlayerBack = mPlayerController.findViewById(R.id.player_back);
-        mVideoName = mFrameController.findViewById(R.id.player_name);
-        mLittleIcon = mFrameController.findViewById(R.id.player_little_icon);
-        mCurrent = mFrameController.findViewById(R.id.player_current);
-        mSeekbar = mFrameController.findViewById(R.id.player_seekbar);
-        Drawable drawable = DrawableUtil.getNewDrawable(mView.getActivity(), R.drawable.seekbar_thumb, 36 * 2, 60 * 2);
-        mSeekbar.setThumb(drawable);
-        mPlayerStatus = mFrameController.findViewById(R.id.player_status);
-        mPlayerLoading = mFrameController.findViewById(R.id.player_loading);
-        mLoadingAnim = (AnimationDrawable) mPlayerLoading.getBackground();
-        mLoadingAnim.start();
-        mSeekbar.setFocusable(true);
-        mStatusPlayBitmap = BitmapFactory.decodeResource(ContextUtil.getContext().getResources(), R.drawable.edufound_player_play);
-        mLittleIconPlayBitmap = BitmapFactory.decodeResource(ContextUtil.getContext().getResources(), R.drawable.player_little_icon_play);
-        mLittleIconPauseBitmap = BitmapFactory.decodeResource(ContextUtil.getContext().getResources(), R.drawable.player_little_icon_pause);
-        mTouchView = (FrameLayout) LayoutInflater.from(mView.getActivity()).inflate(R.layout.player_touch_view, null);
-        mTouchText = (TextView) mTouchView.findViewById(R.id.player_touch_text);
-        mTouchIcon = (ImageView) mTouchView.findViewById(R.id.player_touch_icon);
-        FrameLayout mTouchSeekFrame = (FrameLayout) mTouchView.findViewById(R.id.player_touch_seekbar_frame);
-        mTouchSeek = IndicatorSeekBar
-                .with(mView.getActivity())
-                .max(10)
-                .min(0)
-                .progress(0)
-                .tickCount(11)
-                .showTickMarksType(TickMarkType.DIVIDER)
-                .tickMarksColor(mView.getActivity().getResources().getColor(R.color.result_view))
-                .tickMarksSize(10)//dp
-                .tickMarksEndsHide(true)
-                .trackProgressColor(mView.getActivity().getResources().getColor(R.color.white))
-                .trackProgressSize(10)
-                .trackBackgroundColor(mView.getActivity().getResources().getColor(R.color.gray))
-                .trackBackgroundSize(10)
-                .thumbSize(0)
-                .build();
-        FrameLayout.LayoutParams touch_seek_params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        touch_seek_params.gravity = Gravity.CENTER;
-        mTouchSeek.setLayoutParams(touch_seek_params);
-        FrameLayout.LayoutParams touch_params = new FrameLayout.LayoutParams(deviceUtil.getWidth(mView.getActivity()) / 4, deviceUtil.getHeight(mView.getActivity()) / 3);
-        touch_params.gravity = Gravity.CENTER;
-        mTouchView.setLayoutParams(touch_params);
-        mTouchSeekFrame.addView(mTouchSeek);
-        mOtherFrame.addView(mTouchView);
-        mTouchView.setVisibility(View.GONE);
-        setListener();
-    }
-
-    void setListener() {
-
-        mPlayerBack.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                removeHandler();
-                mView.activityFinish();
-            }
-        });
-        mLittleIcon.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mView.isPlaying()) {
-                    mView.pause();
-                    checkStatus(STATUS_PLAY);
-                    mVideoHandler.sendEmptyMessage(SHOW_STATUS_IMAGE);
-                    mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-                } else {
-                    mView.start();
-                    checkStatus(STATUS_PAUSE);
-                    mPlayerStatus.setVisibility(View.INVISIBLE);
-                    mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-                }
-            }
-        });
-        mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-            @Override
-            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-                mVideoHandler.removeMessages(SET_INFO);
-                mCurrent.setText(EduFoundUtil.getTime(progress) + "/" + EduFoundUtil.getTime(mView.getDuration()));
-            }
-
-            @Override
-            public void onStartTrackingTouch(SeekBar seekBar) {
-                mVideoHandler.removeMessages(SHOW_CONTROLLER);
-                mVideoHandler.removeMessages(HIDE_CONTROLLER);
-            }
-
-            @Override
-            public void onStopTrackingTouch(SeekBar seekBar) {
-                if (seekBar.getProgress() >= mView.getDuration()) {
-                    playerCompletion();
-                    return;
-                }
-                mView.seek(seekBar.getProgress());
-                mCurrent.setText(EduFoundUtil.getTime(mView.getCurrent()) + "/" + EduFoundUtil.getTime(mView.getDuration()));
-                mVideoHandler.sendEmptyMessage(SET_INFO);
-                mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-            }
-        });
-        mPlayerStatus.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                mView.start();
-                checkStatus(STATUS_PAUSE);
-                mPlayerStatus.setVisibility(View.INVISIBLE);
-                mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-            }
-        });
-    }
-
-    @Override
-    public void loadData() {
-        mModel.LoadData(new BaseModel.LoadDataBack() {
-            @Override
-            public void success(String datajson) {
-                Logger.DebugE("datajson:" + datajson);
-                mView.showData(datajson);
-            }
-
-            @Override
-            public void failure() {
-                Logger.e("failure");
-            }
-        });
-    }
-
-    @Override
-    public void onDisConnNetWork() {
-//        ToastUtil.showToast("播放器界面断网了...");
-        mView.stop();
-        mNetWorkErrorTime = mSeekbar.getProgress();
-        mVideoHandler.sendEmptyMessage(DISCONNECT_NETWORK);
-    }
-
-    @Override
-    public void onConnNetWork() {
-        mVideoHandler.removeMessages(DISCONNECT_NETWORK);
-    }
-
-
-    @Override
-    public void loadVideo(Intent intent) {
-        try {
-            String play_jsons = intent.getStringExtra("play_jsons");
-            mPlayIndex = intent.getIntExtra("play_index", 0);
-            mPlayType = intent.getIntExtra("play_type", 0);
-            mPlayerModuleType = intent.getStringExtra("play_moduletype");
-            mVideoBean = mGson.fromJson(play_jsons, VideoJsonBean[].class);
-//            mVideoBean = mGson.fromJson(video_json, VideoJsonBean.class);
-            mPlayingId = mVideoBean[mPlayIndex].videoid;
-            mPlayNeedPost = mVideoBean[mPlayIndex].videoneedpost;
-            mPlayStartTime = Integer.valueOf(mVideoBean[mPlayIndex].videoplaytime);
-            if (mVideoBean[mPlayIndex].videourl == null || mVideoBean[mPlayIndex].videourl.equals("") || mVideoBean[mPlayIndex].videourl.length() == 0) {
-                ToastUtil.showToast("URL是空的");
-                mView.activityFinish();
-                return;
-            }
-//            Logger.DebugE("mVideoBean[mPlayIndex].videourl:" + mVideoBean[mPlayIndex].videourl);
-            String decrypt = AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl);
-//            Logger.DebugE("解密:" + decrypt);
-            if (mPlayType == TYPE_SINGLECYCLE_PLAY) {
-                SINGLECYCLE_URL = decrypt;
-            }
-//            decrypt = "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4";
-            if (decrypt == null || !decrypt.contains("http")) {
-                ToastUtil.showToast("视频格式出现问题");
-//                mView.activityFinish();
-                return;
-            }
-            mView.setVideoUri(Uri.parse(decrypt));
-            mVideoName.setText(mVideoBean[mPlayIndex].videoname);
-            mVideoHandler.sendEmptyMessage(SET_INFO);
-            if (mPlayStartTime > 0) {
-                mView.seek(mPlayStartTime);
-            }
-            mView.start();
-            mVideoHandler.sendEmptyMessageDelayed(HIDE_CONTROLLER, HIDE_CONTROLLER_TIME);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-    @Override
-    public boolean onKeyDown(int keycode, KeyEvent event) {
-        if (!isPrepared || (mView.getDuration() == 0) || mSeekbar.getMax() == 0) {
-            if (keycode == KeyEvent.KEYCODE_BACK || keycode == KeyEvent.KEYCODE_ESCAPE) {
-
-            }
-            return true;
-        }
-        switch (keycode) {
-            case KeyEvent.KEYCODE_BACK:
-            case KeyEvent.KEYCODE_ESCAPE:
-
-                return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onKeyUp(int keycode, KeyEvent event) {
-        if (!isPrepared || (mView.getDuration() == 0) || mSeekbar.getMax() == 0) {
-            if (keycode == KeyEvent.KEYCODE_BACK || keycode == KeyEvent.KEYCODE_ESCAPE) {
-                mView.activityFinish();
-            }
-            return true;
-        }
-        switch (keycode) {
-            case KeyEvent.KEYCODE_BACK:
-            case KeyEvent.KEYCODE_ESCAPE:
-                removeHandler();
-                mView.activityFinish();
-                return true;
-        }
-        return false;
-    }
-
-    @Override
-    public void removeHandler() {
-        mVideoHandler.removeMessages(SET_INFO);
-        mVideoHandler.removeMessages(SHOW_CONTROLLER);
-        mVideoHandler.removeMessages(HIDE_CONTROLLER);
-    }
-
-    @Override
-    public View getPlayerController() {
-        return mFrameController;
-    }
-
-    @Override
-    public void showController() {
-        mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-    }
-
-    @Override
-    public void hideController() {
-        mVideoHandler.sendEmptyMessage(HIDE_CONTROLLER);
-    }
-
-    @Override
-    public boolean isShowController() {
-        return isControllerShow;
-    }
-
-    @Override
-    public void onCompletion() {
-        playerCompletion();
-    }
-
-    @Override
-    public void onPrepared() {
-        mLoadingAnim.stop();
-        isPrepared = true;
-        mPlayerLoading.setVisibility(View.INVISIBLE);
-    }
-
-    @Override
-    public void onInfo(int what, int extra) {
-        switch (what) {
-            case MediaPlayer.MEDIA_INFO_BUFFERING_START:
-                mLoadingAnim.start();
-                mPlayerLoading.setVisibility(View.VISIBLE);
-
-                break;
-            case MediaPlayer.MEDIA_INFO_BUFFERING_END:
-                mLoadingAnim.stop();
-                mPlayerLoading.setVisibility(View.INVISIBLE);
-                break;
-        }
-    }
-
-    @Override
-    public boolean onError(int what, int extra) {
-        switch (what) {
-            case -10000:
-                mVideoHandler.sendEmptyMessage(DISCONNECT_NETWORK);
-                ToastUtil.showToast("网络出现异常");
-                break;
-            default:
-                mView.stop();
-                ToastUtil.showToast("视频异常--what:" + what + "--extra:" + extra);
-                mVideoHandler.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mView.activityFinish();
-                    }
-                }, 2000);
-                break;
-        }
-        return true;
-    }
-
-    @Override
-    public void destroy() {
-        NotificationWebPlayerTime();
-        if (mStatusPlayBitmap != null && !mStatusPlayBitmap.isRecycled()) {
-            // 回收并且置为null
-            mStatusPlayBitmap.recycle();
-            mLittleIconPauseBitmap.recycle();
-            mLittleIconPlayBitmap.recycle();
-            mStatusPlayBitmap = null;
-            mLittleIconPauseBitmap = null;
-            mLittleIconPlayBitmap = null;
-        }
-        System.gc();
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        if (event.getAction() == MotionEvent.ACTION_UP) {
-            GESTURE_FLAG = 0;// 手指离开屏幕后,重置调节音量或进度的标志
-            mVideoHandler.sendEmptyMessageDelayed(HIDE_TOUCHVIEW, 3000);
-        }
-        return gestureDetector.onTouchEvent(event);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        //保存
-//        removeHandler();
-        mView.pause();
-        isSaveState = true;
-        Logger.e("onSaveInstanceState");
-    }
-
-    @Override
-    public void onRestoreInstanceState(Bundle savedInstanceState) {
-        //重新读取
-    }
-
-    @Override
-    public void onResume() {
-        if (isSaveState && (mErrorViewDialog.isShowing() == false)) {
-            mView.start();
-            checkStatus(STATUS_PAUSE);
-            mPlayerStatus.setVisibility(View.INVISIBLE);
-            mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-        }
-    }
-
-    Handler mVideoHandler = new Handler(new Handler.Callback() {
-        @Override
-        public boolean handleMessage(Message msg) {
-            switch (msg.what) {
-                case SET_INFO:
-                    mPlayerBackTime = mView.getCurrent();
-                    mSeekbar.setProgress(mView.getCurrent());
-                    mSeekbar.setMax(mView.getDuration());
-                    mCurrent.setText(EduFoundUtil.getTime(mView.getCurrent()) + "/" + EduFoundUtil.getTime(mView.getDuration()));
-                    mVideoHandler.sendEmptyMessageDelayed(SET_INFO, 1000);
-                    break;
-                case SHOW_CONTROLLER:
-                    isControllerShow = true;
-                    mVideoHandler.removeMessages(HIDE_CONTROLLER);
-                    mPlayerController.setVisibility(View.VISIBLE);
-                    mVideoHandler.sendEmptyMessageDelayed(HIDE_CONTROLLER, HIDE_CONTROLLER_TIME);
-                    break;
-                case HIDE_CONTROLLER:
-                    isControllerShow = false;
-                    mPlayerController.setVisibility(View.INVISIBLE);
-                    break;
-                case SHOW_STATUS_IMAGE:
-                    mPlayerStatus.setVisibility(View.VISIBLE);
-                    break;
-                case HIDE_STATUS_IMAGE:
-                    mPlayerStatus.setVisibility(View.INVISIBLE);
-                    break;
-                case PLAY_NEXT:
-                    removeHandler();
-                    mPlayIndex++;
-                    if (mPlayIndex > mVideoBean.length - 1) {
-                        mView.activityFinish();
-                    } else {
-                        try {
-                            ToastUtil.showToast("即将为您播放下一个:" + mVideoBean[mPlayIndex].videoname);
-                            mVideoName.setText(mVideoBean[mPlayIndex].videoname);
-                            mPlayingId = mVideoBean[mPlayIndex].videoid;
-                            mPlayNeedPost = mVideoBean[mPlayIndex].videoneedpost;
-                            mPlayStartTime = Integer.valueOf(mVideoBean[mPlayIndex].videoplaytime);
-                            if (Uri.parse(AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl)) == null || Uri.parse(AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl)).equals("")) {
-                                //可能是没权限,直接退出
-                                mView.activityFinish();
-//                                return true;
-                            } else {
-                                mVideoHandler.sendEmptyMessage(SET_INFO);
-                                mView.setVideoUri(Uri.parse(AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl)));
-                                mVideoHandler.sendEmptyMessage(SHOW_CONTROLLER);
-                                mVideoHandler.sendEmptyMessage(SHOW_STATUS_IMAGE);
-                                mVideoHandler.sendEmptyMessageDelayed(HIDE_STATUS_IMAGE, 500);
-                                mView.start();
-                            }
-
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                            mView.activityFinish();
-                        }
-                    }
-                    break;
-                case DISCONNECT_NETWORK:
-                    mVideoHandler.post(new Runnable() {
-                        @Override
-                        public void run() {
-                            showDisConnNeWorkWindow();
-                        }
-                    });
-                    break;
-                case CONNECT_NETWORK:
-                    try {
-                        if (mErrorViewDialog != null) {
-                            mErrorViewDialog.dismiss();
-                        }
-                        mView.stop();
-                        mView.releaseVideo();
-                        mView.setVideoUri(Uri.parse(AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl)));
-                        mErrorViewDialog.dismiss();
-                        mView.seek(mNetWorkErrorTime);
-                        mView.start();
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    break;
-                case SHOW_TOUCHVIEW:
-                    mTouchView.setVisibility(View.VISIBLE);
-                    break;
-                case HIDE_TOUCHVIEW:
-                    mTouchView.setVisibility(View.GONE);
-                    break;
-            }
-            return false;
-        }
-    });
-
-
-    /*
-     * 切换status图片
-     * */
-    void checkStatus(final int status) {
-        mLittleIcon.post(new Runnable() {
-            @Override
-            public void run() {
-                switch (status) {
-                    case STATUS_PLAY:
-                        if (mStatusCode != STATUS_PLAY) {
-                            mStatusCode = STATUS_PLAY;
-                            mPlayerStatus.setImageBitmap(mStatusPlayBitmap);
-                            mLittleIcon.setImageBitmap(mLittleIconPlayBitmap);
-                        }
-                        break;
-                    case STATUS_PAUSE:
-                        if (mStatusCode != STATUS_PAUSE) {
-                            mStatusCode = STATUS_PAUSE;
-                            mLittleIcon.setImageBitmap(mLittleIconPauseBitmap);
-                        }
-                        break;
-                    case STATUS_FORWARD:
-                        if (mStatusCode != STATUS_FORWARD) {
-                            mStatusCode = STATUS_FORWARD;
-                        }
-                        break;
-                    case STATUS_REWIND:
-                        if (mStatusCode != STATUS_REWIND) {
-                            mStatusCode = STATUS_REWIND;
-                        }
-                        break;
-                }
-            }
-        });
-
-    }
-
-    void showDisConnNeWorkWindow() {
-        if (mErrorView == null) {
-            mErrorViewDialog = new Dialog(mView.getActivity());
-            try {
-                int dividerID = mView.getActivity().getResources().getIdentifier("android:id/titleDivider", null, null);
-                View divider = mErrorViewDialog.findViewById(dividerID);
-                divider.setBackgroundColor(Color.TRANSPARENT);
-            } catch (Exception e) {
-                //上面的代码,是用来去除Holo主题的蓝色线条
-                e.printStackTrace();
-            }
-            mErrorView = new ErrorView(mView);
-            mErrorView.setBtnClickListener(new ErrorView.BtnClickListener() {
-                @Override
-                public void clickRelase() {
-//                    mView.start();
-                    try {
-                        if (ContextUtil.getNetWorkState()) {
-                            mView.stop();
-                            mView.releaseVideo();
-                            mView.setVideoUri(Uri.parse(AesUtil.Decrypt(mVideoBean[mPlayIndex].videourl)));
-                            mErrorViewDialog.dismiss();
-                            mView.seek(mNetWorkErrorTime);
-                            mView.start();
-                        } else {
-                            ToastUtil.showToast("请检查网络连接状况");
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-
-                @Override
-                public void clickExit() {
-                    mErrorViewDialog.dismiss();
-                    EApplication.clearActivity();
-                    Intent intent_restart = new Intent(ContextUtil.CLOSE_ACTIVITY_MAIN);
-                    mView.getActivity().sendBroadcast(intent_restart);
-                    System.exit(0);
-                }
-            });
-            mErrorViewDialog.setCancelable(false);
-            mErrorViewDialog.setContentView(mErrorView);
-            Window dialogWindow = mErrorViewDialog.getWindow();
-            dialogWindow.setGravity(Gravity.CENTER);
-            dialogWindow.getDecorView().setPadding(0, 0, 0, 0);
-            dialogWindow.getDecorView().setBackgroundColor(Color.parseColor("#80000000"));
-            WindowManager m = mView.getActivity().getWindowManager();
-            Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
-            WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
-            p.height = (int) (d.getHeight() * 1);
-            p.width = WindowManager.LayoutParams.MATCH_PARENT;
-            p.horizontalMargin = 0;
-            dialogWindow.setAttributes(p);
-        }
-        if (!mErrorViewDialog.isShowing()) {
-            mErrorViewDialog.show();
-        }
-    }
-
-
-    void playerCompletion() {
-        mPlayerBackTime = 0;
-        switch (mPlayType) {
-            case TYPE_SEPARATELY_PLAY:
-                ToastUtil.showToast("播放完成");
-                removeHandler();
-                mView.activityFinish();
-                break;
-            case TYPE_SINGLECYCLE_PLAY:
-                ToastUtil.showToast("重新播放");
-                removeHandler();
-                mVideoHandler.sendEmptyMessage(SET_INFO);
-                mView.seek(0);
-                mView.start();
-                return;
-            case TYPE_LIST_PLAY:
-                NotificationWebPlayerTime();
-                mVideoHandler.sendEmptyMessage(PLAY_NEXT);
-                return;
-        }
-    }
-
-
-    public void NotificationWebPlayerTime() {
-        Intent intent = new Intent(ContextUtil.NOTIFICATION_WEB_PLAYERTIME);
-        intent.putExtra("over_time", String.valueOf(mPlayerBackTime));
-        intent.putExtra("over_id", String.valueOf(mPlayingId));
-        intent.putExtra("over_neetpost", mPlayNeedPost);
-        intent.putExtra("over_moduletype", mPlayerModuleType);
-        mView.getActivity().sendBroadcast(intent);
-    }
-
-    private boolean firstScroll = false;
-    private int GESTURE_FLAG = 0;// 1,调节进度,2,调节音量,3.调节亮度
-    private static final int GESTURE_MODIFY_PROGRESS = 1;
-    private static final int GESTURE_MODIFY_VOLUME = 2;
-    private static final int GESTURE_MODIFY_BRIGHT = 3;
-    private int playerWidth;
-    private int maxVolume, currentVolume;
-    private AudioManager audiomanager;
-    private float mBrightness = -1f; // 亮度
-    private static final float STEP_PROGRESS = 3f;// 设定进度滑动时的步长,避免每次滑动都改变,导致改变过快
-    private static final float STEP_VOLUME = 3f;// 协调音量滑动时的步长,避免每次滑动都改变,导致改变过快
-
-    @Override
-    public boolean onDown(MotionEvent e) {
-        firstScroll = true;// 设定是触摸屏幕后第一次scroll的标志
-        return false;
-    }
-
-    @Override
-    public void onShowPress(MotionEvent e) {
-
-    }
-
-    @Override
-    public boolean onSingleTapUp(MotionEvent e) {
-        return true;
-    }
-
-
-    @Override
-    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
-        // TODO Auto-generated method stub
-        mVideoHandler.removeMessages(HIDE_TOUCHVIEW);
-        float mOldX = e1.getX(), mOldY = e1.getY();
-        int y = (int) e2.getRawY();
-        if (firstScroll) {// 以触摸屏幕后第一次滑动为标准,避免在屏幕上操作切换混乱
-            // 横向的距离变化大则调整进度,纵向的变化大则调整音量
-            if (Math.abs(distanceX) >= Math.abs(distanceY)) {
-                GESTURE_FLAG = GESTURE_MODIFY_PROGRESS;
-            } else {
-                if (mOldX > playerWidth / 2.0f) {// 音量
-                    GESTURE_FLAG = GESTURE_MODIFY_VOLUME;
-                } else if (mOldX < playerWidth / 2.0f) {// 亮度
-                    GESTURE_FLAG = GESTURE_MODIFY_BRIGHT;
-                }
-            }
-        }
-        // 如果每次触摸屏幕后第一次scroll是调节进度,那之后的scroll事件都处理音量进度,直到离开屏幕执行下一次操作
-        if (GESTURE_FLAG == GESTURE_MODIFY_PROGRESS) {
-
-        }
-        // 如果每次触摸屏幕后第一次scroll是调节音量,那之后的scroll事件都处理音量调节,直到离开屏幕执行下一次操作
-        else if (GESTURE_FLAG == GESTURE_MODIFY_VOLUME) {
-            currentVolume = audiomanager.getStreamVolume(AudioManager.STREAM_MUSIC); // 获取当前值
-            mTouchSeek.setProgress(currentVolume);
-            if (Math.abs(distanceY) > Math.abs(distanceX)) {// 纵向移动大于横向移动
-                if (distanceY >= dip2px(STEP_VOLUME)) {// 音量调大,注意横屏时的坐标体系,尽管左上角是原点,但横向向上滑动时distanceY为正
-                    if (currentVolume < maxVolume) {// 为避免调节过快,distanceY应大于一个设定值
-                        currentVolume = currentVolume + oneVolume;
-                    }
-//                    gesture_iv_player_volume.setImageResource(R.drawable.souhu_player_volume);
-                } else if (distanceY <= -dip2px(STEP_VOLUME)) {// 音量调小
-                    if (currentVolume > 0) {
-                        currentVolume = currentVolume - oneVolume;
-                        if (currentVolume == 0) {// 静音,设定静音独有的图片
-//                            gesture_iv_player_volume
-//                                    .setImageResource(R.drawable.souhu_player_silence);
-                        }
-                    }
-                }
-//                geture_tv_volume_percentage.setText(percentage + "%");
-                mTouchText.setText("音量");
-                mTouchIcon.setImageBitmap(BitmapFactory.decodeResource(mView.getActivity().getResources(), R.drawable.player_volume_icon));
-                mVideoHandler.sendEmptyMessage(SHOW_TOUCHVIEW);
-                mTouchSeek.setProgress((currentVolume));
-                audiomanager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume, 0);
-            }
-        }
-        // 如果每次触摸屏幕后第一次scroll是调节亮度,那之后的scroll事件都处理亮度调节,直到离开屏幕执行下一次操作
-        else if (GESTURE_FLAG == GESTURE_MODIFY_BRIGHT) {
-            Logger.e("亮度....");
-            WindowManager.LayoutParams lpa = mView.getActivity().getWindow().getAttributes();
-//            gesture_iv_player_bright.setImageResource(R.drawable.souhu_player_bright);
-            mTouchSeek.setProgress(lpa.screenBrightness);
-            if (mBrightness < 0) {
-                mBrightness = mView.getActivity().getWindow().getAttributes().screenBrightness;
-                if (mBrightness <= 0.00f)
-                    mBrightness = 0.00f;
-            }
-            if (Math.abs(distanceY) > Math.abs(distanceX)) {// 纵向移动大于横向移动
-                if (distanceY >= dip2px(STEP_VOLUME)) {
-                    if (mBrightness < 1.0f) {// 为避免调节过快,distanceY应大于一个设定值
-                        mBrightness += 0.1f;
-                    }
-                } else if (distanceY <= -dip2px(STEP_VOLUME)) {
-                    if (mBrightness > 0) {
-                        mBrightness -= 0.1f;
-                    }
-                }
-            }
-            if (mBrightness > 1.0f) {
-                mBrightness = 1.0f;
-            } else if (mBrightness < 0.01f) {
-                mBrightness = 0.01f;
-            }
-            lpa.screenBrightness = mBrightness;
-            mTouchText.setText("亮度");
-            mTouchIcon.setImageBitmap(BitmapFactory.decodeResource(mView.getActivity().getResources(), R.drawable.player_brightness_icon));
-            mVideoHandler.sendEmptyMessage(SHOW_TOUCHVIEW);
-            mTouchSeek.setProgress((mBrightness * 10));
-            mView.getActivity().getWindow().setAttributes(lpa);
-//            geture_tv_bright_percentage.setText((int) (lpa.screenBrightness * 100) + "%");
-        }
-
-        firstScroll = false;// 第一次scroll执行完成,修改标志
-        return false;
-    }
-
-    public int dip2px(float dpValue) {
-        final float scale = mView.getActivity().getResources().getDisplayMetrics().density;
-        return (int) (dpValue * scale + 0.5f);
-    }
-
-    @Override
-    public void onLongPress(MotionEvent e) {
-
-    }
-
-    @Override
-    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
-        return false;
-    }
-
-    @Override
-    public boolean onSingleTapConfirmed(MotionEvent e) {
-        Logger.e("onSingleTapConfirmed");
-        if (mPersenter.isShowController()) {
-            mPersenter.hideController();
-        } else {
-            mPersenter.showController();
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onDoubleTap(MotionEvent e) {
-        Logger.e("onDoubleTap");
-        if (mView.isPlaying()) {
-            mView.pause();
-            mPersenter.checkStatus(mPersenter.STATUS_PLAY);
-            mPersenter.mVideoHandler.sendEmptyMessage(mPersenter.SHOW_STATUS_IMAGE);
-            mPersenter.mVideoHandler.sendEmptyMessage(mPersenter.SHOW_CONTROLLER);
-        } else {
-            mView.start();
-            mPersenter.checkStatus(mPersenter.STATUS_PAUSE);
-            mPersenter.mPlayerStatus.setVisibility(View.INVISIBLE);
-            mPersenter.mVideoHandler.sendEmptyMessage(mPersenter.SHOW_CONTROLLER);
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onDoubleTapEvent(MotionEvent e) {
-        return false;
-    }
-
-    public class VideoJsonBean {
-        public String videourl;
-        public String videoname;
-        public String videoid;
-        public String videoplaytime;
-        public String videoneedpost;
-    }
-}
-
-
-interface VideoIPersenter extends BasePersenter {
-    void loadVideo(Intent intent);
-
-    boolean onKeyDown(int keycode, KeyEvent event);
-
-    boolean onKeyUp(int keycode, KeyEvent event);
-
-    void removeHandler();
-
-    View getPlayerController();
-
-    void showController();
-
-    void hideController();
-
-    boolean isShowController();
-
-    void onCompletion();
-
-    void onPrepared();
-
-    void onInfo(int what, int extra);
-
-    boolean onError(int what, int extra);
-
-    void destroy();
-
-    boolean onTouchEvent(MotionEvent event);
-
-    void onSaveInstanceState(Bundle outState);
-
-    void onRestoreInstanceState(Bundle savedInstanceState);
-
-    void onResume();
-
-}
-

+ 1 - 1
app/src/main/res/drawable/shape_corner.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <solid android:color="#ffffff" />
-    <corners android:radius="20dp" />
+    <corners android:radius="5dp" />
     <stroke
             android:width="1dp"
             android:color="#ffffff" />

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 85 - 157
app/src/main/res/layout/activity_privacypolicy.xml


+ 2 - 2
app/src/main/res/values/projectstring.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <!--8.0生产环境前端地址 http://ott80-web.ai160.com/stage/index/index.html-->
-<!--    <string name="default_url">http://192.168.1.126:8080/efunbox-xyyf-web/1.0.0/stage/index/index.html</string>-->
-        <string name="default_url">http://m-xyyf-web.ai160.com/stage/index/index.html</string>
+    <!--    <string name="default_url">http://192.168.1.126:8080/efunbox-xyyf-web/1.0.0/stage/index/index.html</string>-->
+    <string name="default_url">http://m-xyyf-web.ai160.com/stage/index/index.html</string>
     <!--义方渠道-->
     <string name="app_code_yf">2006</string>
     <!--应用宝-->

+ 1 - 1
push/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties

@@ -1,3 +1,3 @@
-#Mon Jan 18 17:08:36 CST 2021
+#Tue Jan 26 09:26:18 CST 2021
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_bar_image_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\release\\layout\\upush_bar_image_notification.xml
 G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\res\\layout\\upush_notification.xml=G\:\\WorkSpace\\Git_WorkSpace\\efunbox-xyyf-mobile-android\\efunbox-xyyf-mobile-android-master\\push\\build\\intermediates\\packaged_res\\release\\layout\\upush_notification.xml